Repository: mete0r/pyhwp Branch: master Commit: 83239f0d3bdf Files: 811 Total size: 11.1 MB Directory structure: gitextract_0w5mfwgg/ ├── .gitattributes ├── .github/ │ └── dependabot.yml ├── .gitignore ├── .travis.yml ├── CHANGES ├── COPYING ├── MANIFEST.in ├── Makefile ├── README ├── VERSION.txt ├── buildout.cfg ├── buildouts/ │ ├── components/ │ │ ├── jxml.cfg │ │ ├── virtualenv-1.9.1.cfg │ │ ├── virtualenv-jython.cfg │ │ ├── xalan-j-2.7.1.cfg │ │ └── xalan-j-2.7.2.cfg │ ├── developer.cfg │ ├── maintainer.cfg │ ├── tester.cfg │ ├── translator.cfg │ └── user.cfg ├── classifiers.txt ├── docs/ │ ├── .gitignore │ ├── Makefile │ ├── conf.py │ ├── converters.rst │ ├── hacking/ │ │ ├── directory-layout/ │ │ │ ├── bin.rst │ │ │ └── root.rst │ │ ├── directory-layout.rst │ │ ├── hack-n-test.rst │ │ ├── index.rst │ │ └── setup-env.rst │ ├── hwp5.rst │ ├── hwp5proc.rst │ ├── index.rst │ ├── static/ │ │ └── .gitignore │ ├── templates/ │ │ └── .gitignore │ └── translated/ │ ├── en/ │ │ └── LC_MESSAGES/ │ │ ├── converters.po │ │ ├── hwp5proc.po │ │ ├── index.po │ │ └── intro.po │ └── ko/ │ └── LC_MESSAGES/ │ ├── converters.po │ ├── hwp5proc.po │ ├── index.po │ └── intro.po ├── etc/ │ ├── pylint.rc │ └── testlog.conf ├── ez_setup.py ├── misc/ │ ├── cleanup-pyc.py │ ├── copylxml.py │ ├── docs-upload │ ├── fix-coverage.py │ ├── install-lxml.py.in │ ├── mkdir.py │ ├── oxt-build.in │ ├── prepare-hwp5-xsl-fixtures.py │ ├── redirect.py │ ├── test-cli.in │ ├── test-cli.py │ ├── test-coverage │ ├── test-for-bisect │ ├── test-in-lo.py │ ├── test-pypi.in │ ├── test-sdist │ ├── test-sdist.in │ ├── test-upload.in │ ├── test-xsl.in │ └── upload ├── notebooks/ │ └── .gitignore ├── oxt/ │ ├── Addons.xcu │ ├── Filter.xcu │ ├── META-INF/ │ │ └── manifest.xml │ ├── Makefile │ ├── Types.xcu │ ├── components.py │ ├── description/ │ │ ├── desc_en.txt │ │ └── desc_ko.txt │ ├── description.xml │ ├── doc/ │ │ └── references.txt │ └── registration/ │ └── COPYING.txt ├── pyhwp_uno/ │ ├── hwp5_uno/ │ │ ├── __init__.py │ │ └── tests/ │ │ ├── __init__.py │ │ └── test_hwp5_uno.py │ └── setup.py ├── release-hooks/ │ ├── prerelease.after/ │ │ └── 10-docs-build │ ├── prerelease.before/ │ │ └── 0-docs-update-po │ ├── release.after/ │ │ ├── 10-test-pypi │ │ └── 20-docs-upload │ └── release.before/ │ └── 20-upload-to-testpypi ├── requirements/ │ ├── dev.in │ ├── dev.txt │ ├── docs.in │ ├── docs.txt │ ├── lint.in │ ├── lint.txt │ ├── test.in │ └── test.txt ├── requirements.in ├── requirements.txt ├── setup.cfg ├── setup.py ├── src/ │ ├── README.rst │ └── hwp5/ │ ├── __init__.py │ ├── binmodel/ │ │ ├── __init__.py │ │ ├── _shared.py │ │ ├── controlchar.py │ │ ├── controls/ │ │ │ ├── __init__.py │ │ │ ├── _shared.py │ │ │ ├── bookmark_control.py │ │ │ ├── columns_def.py │ │ │ ├── common_controls.py │ │ │ ├── dutmal.py │ │ │ ├── field.py │ │ │ ├── gshape_object_control.py │ │ │ ├── header_footer.py │ │ │ ├── hidden_comment.py │ │ │ ├── index_marker.py │ │ │ ├── note.py │ │ │ ├── numbering.py │ │ │ ├── page_hide.py │ │ │ ├── page_number_position.py │ │ │ ├── page_odd_even.py │ │ │ ├── section_def.py │ │ │ ├── table_control.py │ │ │ └── tcps_control.py │ │ ├── tagid16_document_properties.py │ │ ├── tagid17_id_mappings.py │ │ ├── tagid18_bin_data.py │ │ ├── tagid19_face_name.py │ │ ├── tagid20_border_fill.py │ │ ├── tagid21_char_shape.py │ │ ├── tagid22_tab_def.py │ │ ├── tagid23_numbering.py │ │ ├── tagid24_bullet.py │ │ ├── tagid25_para_shape.py │ │ ├── tagid26_style.py │ │ ├── tagid27_doc_data.py │ │ ├── tagid28_distribute_doc_data.py │ │ ├── tagid30_compatible_document.py │ │ ├── tagid31_layout_compatibility.py │ │ ├── tagid32_unknown.py │ │ ├── tagid50_para_header.py │ │ ├── tagid51_para_text.py │ │ ├── tagid52_para_char_shape.py │ │ ├── tagid53_para_line_seg.py │ │ ├── tagid54_para_range_tag.py │ │ ├── tagid55_ctrl_header.py │ │ ├── tagid56_list_header.py │ │ ├── tagid57_page_def.py │ │ ├── tagid58_footnote_shape.py │ │ ├── tagid59_page_border_fill.py │ │ ├── tagid60_shape_component.py │ │ ├── tagid61_table.py │ │ ├── tagid62_shape_component_line.py │ │ ├── tagid63_shape_component_rectangle.py │ │ ├── tagid64_shape_component_ellipse.py │ │ ├── tagid65_shape_component_arc.py │ │ ├── tagid66_shape_component_polygon.py │ │ ├── tagid67_shape_component_curve.py │ │ ├── tagid68_shape_component_ole.py │ │ ├── tagid69_shape_component_picture.py │ │ ├── tagid70_shape_component_container.py │ │ ├── tagid71_ctrl_data.py │ │ ├── tagid72_ctrl_eqedit.py │ │ ├── tagid74_shape_component_textart.py │ │ ├── tagid75_form_object.py │ │ ├── tagid76_memo_shape.py │ │ ├── tagid77_memo_list.py │ │ ├── tagid78_forbidden_char.py │ │ ├── tagid79_chart_data.py │ │ └── tagid99_shape_component_unknown.py │ ├── binspec.py │ ├── bintype.py │ ├── charsets.py │ ├── cli.py │ ├── compressed.py │ ├── dataio.py │ ├── distdoc.py │ ├── errors.py │ ├── filestructure.py │ ├── hwp5html.py │ ├── hwp5odt.py │ ├── hwp5proc.py │ ├── hwp5txt.py │ ├── hwp5view.py │ ├── importhelper.py │ ├── locale/ │ │ ├── hwp5html.pot │ │ ├── hwp5odt.pot │ │ ├── hwp5proc.pot │ │ ├── hwp5txt.pot │ │ ├── hwp5view.pot │ │ └── ko/ │ │ └── LC_MESSAGES/ │ │ ├── hwp5html.po │ │ ├── hwp5odt.po │ │ ├── hwp5proc.po │ │ ├── hwp5txt.po │ │ └── hwp5view.po │ ├── msoleprops.py │ ├── odf-relaxng/ │ │ ├── OpenDocument-manifest-schema-v1.0-os.rng │ │ ├── OpenDocument-manifest-schema-v1.1.rng │ │ ├── OpenDocument-schema-v1.0-os.rng │ │ ├── OpenDocument-schema-v1.1.rng │ │ ├── OpenDocument-strict-schema-v1.1.rng │ │ ├── OpenDocument-v1.2-os-dsig-schema.rng │ │ ├── OpenDocument-v1.2-os-manifest-schema.rng │ │ ├── OpenDocument-v1.2-os-metadata.owl │ │ ├── OpenDocument-v1.2-os-package-metadata.owl │ │ └── OpenDocument-v1.2-os-schema.rng │ ├── plat/ │ │ ├── __init__.py │ │ ├── _lxml.py │ │ ├── _uno/ │ │ │ ├── __init__.py │ │ │ ├── adapters.py │ │ │ ├── services.py │ │ │ └── ucb.py │ │ ├── gir_gsf.py │ │ ├── javax_transform.py │ │ ├── jython_poifs.py │ │ ├── olefileio.py │ │ ├── xmllint.py │ │ └── xsltproc.py │ ├── proc/ │ │ ├── __init__.py │ │ ├── cat.py │ │ ├── diststream.py │ │ ├── find.py │ │ ├── header.py │ │ ├── ls.py │ │ ├── models.py │ │ ├── rawunz.py │ │ ├── records.py │ │ ├── summaryinfo.py │ │ ├── unpack.py │ │ ├── version.py │ │ └── xml.py │ ├── recordstream.py │ ├── storage/ │ │ ├── __init__.py │ │ ├── fs.py │ │ └── ole.py │ ├── summaryinfo.py │ ├── tagids.py │ ├── transforms/ │ │ └── __init__.py │ ├── treeop.py │ ├── utils.py │ ├── xmldump_flat.py │ ├── xmlformat.py │ ├── xmlmodel.py │ ├── xsl/ │ │ ├── binspec2html.xsl │ │ ├── hwp5css-common.xsl │ │ ├── hwp5css.xsl │ │ ├── hwp5fodt.xsl │ │ ├── hwp5html.xsl │ │ ├── odt/ │ │ │ ├── common.xsl │ │ │ ├── content.xsl │ │ │ ├── document.xsl │ │ │ └── styles.xsl │ │ └── plaintext.xsl │ └── zlib_raw_codec.py ├── stdeb.cfg ├── tests/ │ ├── README.rst │ ├── cli_tests/ │ │ ├── hwp5html.txt │ │ ├── hwp5odt.txt │ │ ├── hwp5proc.txt │ │ └── hwp5txt.txt │ ├── hwp5_cli_tests.sh │ ├── hwp5_tests/ │ │ ├── __init__.py │ │ ├── fixtures/ │ │ │ ├── 5006-controldata.record │ │ │ ├── __init__.py │ │ │ ├── aligns.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── aligns.hwp │ │ │ ├── aligns.hwp.bodytext.section0.json │ │ │ ├── aligns.hwp.docinfo.json │ │ │ ├── aligns.hwp.formatted.xml │ │ │ ├── aligns.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── borderfill.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── borderfill.hwp │ │ │ ├── borderfill.hwp.bodytext.section0.json │ │ │ ├── borderfill.hwp.docinfo.json │ │ │ ├── borderfill.hwp.formatted.xml │ │ │ ├── borderfill.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── charshape.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── charshape.hwp │ │ │ ├── charshape.hwp.bodytext.section0.json │ │ │ ├── charshape.hwp.docinfo.json │ │ │ ├── charshape.hwp.formatted.xml │ │ │ ├── charshape.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── charstyle.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── charstyle.hwp │ │ │ ├── charstyle.hwp.bodytext.section0.json │ │ │ ├── charstyle.hwp.docinfo.json │ │ │ ├── charstyle.hwp.formatted.xml │ │ │ ├── charstyle.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── facename.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── facename.hwp │ │ │ ├── facename.hwp.bodytext.section0.json │ │ │ ├── facename.hwp.docinfo.json │ │ │ ├── facename.hwp.formatted.xml │ │ │ ├── facename.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── facename2.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── facename2.hwp │ │ │ ├── facename2.hwp.bodytext.section0.json │ │ │ ├── facename2.hwp.docinfo.json │ │ │ ├── facename2.hwp.formatted.xml │ │ │ ├── facename2.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── footnote-endnote.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── footnote-endnote.hwp │ │ │ ├── footnote-endnote.hwp.bodytext.section0.json │ │ │ ├── footnote-endnote.hwp.docinfo.json │ │ │ ├── footnote-endnote.hwp.formatted.xml │ │ │ ├── footnote-endnote.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── headerfooter.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── headerfooter.hwp │ │ │ ├── headerfooter.hwp.bodytext.section0.json │ │ │ ├── headerfooter.hwp.docinfo.json │ │ │ ├── headerfooter.hwp.formatted.xml │ │ │ ├── headerfooter.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── issue144-fields-crossing-lineseg-boundary.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── issue144-fields-crossing-lineseg-boundary.hwp │ │ │ ├── issue144-fields-crossing-lineseg-boundary.hwp.bodytext.section0.json │ │ │ ├── issue144-fields-crossing-lineseg-boundary.hwp.docinfo.json │ │ │ ├── issue144-fields-crossing-lineseg-boundary.hwp.formatted.xml │ │ │ ├── issue144-fields-crossing-lineseg-boundary.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── issue30.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── issue30.hwp │ │ │ ├── issue30.hwp.bodytext.section0.json │ │ │ ├── issue30.hwp.docinfo.json │ │ │ ├── issue30.hwp.formatted.xml │ │ │ ├── issue30.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── linespacing.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── linespacing.hwp │ │ │ ├── linespacing.hwp.bodytext.section0.json │ │ │ ├── linespacing.hwp.docinfo.json │ │ │ ├── linespacing.hwp.formatted.xml │ │ │ ├── linespacing.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── lists-bullet.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── lists-bullet.hwp │ │ │ ├── lists-bullet.hwp.bodytext.section0.json │ │ │ ├── lists-bullet.hwp.docinfo.json │ │ │ ├── lists-bullet.hwp.formatted.xml │ │ │ ├── lists-bullet.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── lists.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── lists.hwp │ │ │ ├── lists.hwp.bodytext.section0.json │ │ │ ├── lists.hwp.docinfo.json │ │ │ ├── lists.hwp.formatted.xml │ │ │ ├── lists.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── matrix.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── matrix.hwp │ │ │ ├── matrix.hwp.bodytext.section0.json │ │ │ ├── matrix.hwp.docinfo.json │ │ │ ├── matrix.hwp.formatted.xml │ │ │ ├── matrix.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── multicolumns-in-common-controls.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── multicolumns-in-common-controls.hwp │ │ │ ├── multicolumns-in-common-controls.hwp.bodytext.section0.json │ │ │ ├── multicolumns-in-common-controls.hwp.docinfo.json │ │ │ ├── multicolumns-in-common-controls.hwp.formatted.xml │ │ │ ├── multicolumns-in-common-controls.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── multicolumns-layout.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── multicolumns-layout.hwp │ │ │ ├── multicolumns-layout.hwp.bodytext.section0.json │ │ │ ├── multicolumns-layout.hwp.docinfo.json │ │ │ ├── multicolumns-layout.hwp.formatted.xml │ │ │ ├── multicolumns-layout.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── multicolumns-widths.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── multicolumns-widths.hwp │ │ │ ├── multicolumns-widths.hwp.bodytext.section0.json │ │ │ ├── multicolumns-widths.hwp.docinfo.json │ │ │ ├── multicolumns-widths.hwp.formatted.xml │ │ │ ├── multicolumns-widths.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── multicolumns.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── multicolumns.hwp │ │ │ ├── multicolumns.hwp.bodytext.section0.json │ │ │ ├── multicolumns.hwp.docinfo.json │ │ │ ├── multicolumns.hwp.formatted.xml │ │ │ ├── multicolumns.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── nonhwp5stg/ │ │ │ │ └── dummy │ │ │ ├── nonole.txt │ │ │ ├── pagedefs.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── pagedefs.hwp │ │ │ ├── pagedefs.hwp.bodytext.section0.json │ │ │ ├── pagedefs.hwp.docinfo.json │ │ │ ├── pagedefs.hwp.formatted.xml │ │ │ ├── pagedefs.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── paragraph-split-page.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── paragraph-split-page.hwp │ │ │ ├── paragraph-split-page.hwp.bodytext.section0.json │ │ │ ├── paragraph-split-page.hwp.docinfo.json │ │ │ ├── paragraph-split-page.hwp.formatted.xml │ │ │ ├── paragraph-split-page.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── parashape.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── parashape.hwp │ │ │ ├── parashape.hwp.bodytext.section0.json │ │ │ ├── parashape.hwp.docinfo.json │ │ │ ├── parashape.hwp.formatted.xml │ │ │ ├── parashape.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── password-12345.hwp │ │ │ ├── sample-5017-pics.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── sample-5017-pics.hwp │ │ │ ├── sample-5017-pics.hwp.bodytext.section0.json │ │ │ ├── sample-5017-pics.hwp.docinfo.json │ │ │ ├── sample-5017-pics.hwp.formatted.xml │ │ │ ├── sample-5017-pics.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── sample-5017.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── sample-5017.hwp │ │ │ ├── sample-5017.hwp.bodytext.section0.json │ │ │ ├── sample-5017.hwp.docinfo.json │ │ │ ├── sample-5017.hwp.formatted.xml │ │ │ ├── sample-5017.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── shapecomponent-rect-fill.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── shapecomponent-rect-fill.hwp │ │ │ ├── shapecomponent-rect-fill.hwp.bodytext.section0.json │ │ │ ├── shapecomponent-rect-fill.hwp.docinfo.json │ │ │ ├── shapecomponent-rect-fill.hwp.formatted.xml │ │ │ ├── shapecomponent-rect-fill.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── shapecontainer-2.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── shapecontainer-2.hwp │ │ │ ├── shapecontainer-2.hwp.bodytext.section0.json │ │ │ ├── shapecontainer-2.hwp.docinfo.json │ │ │ ├── shapecontainer-2.hwp.formatted.xml │ │ │ ├── shapecontainer-2.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── shapeline.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── shapeline.hwp │ │ │ ├── shapeline.hwp.bodytext.section0.json │ │ │ ├── shapeline.hwp.docinfo.json │ │ │ ├── shapeline.hwp.formatted.xml │ │ │ ├── shapeline.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── shapepict-scaled.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── shapepict-scaled.hwp │ │ │ ├── shapepict-scaled.hwp.bodytext.section0.json │ │ │ ├── shapepict-scaled.hwp.docinfo.json │ │ │ ├── shapepict-scaled.hwp.formatted.xml │ │ │ ├── shapepict-scaled.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── shaperect.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── shaperect.hwp │ │ │ ├── shaperect.hwp.bodytext.section0.json │ │ │ ├── shaperect.hwp.docinfo.json │ │ │ ├── shaperect.hwp.formatted.xml │ │ │ ├── shaperect.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── tabdef.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── tabdef.hwp │ │ │ ├── tabdef.hwp.bodytext.section0.json │ │ │ ├── tabdef.hwp.docinfo.json │ │ │ ├── tabdef.hwp.formatted.xml │ │ │ ├── tabdef.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── table-caption.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── table-caption.hwp │ │ │ ├── table-caption.hwp.bodytext.section0.json │ │ │ ├── table-caption.hwp.docinfo.json │ │ │ ├── table-caption.hwp.formatted.xml │ │ │ ├── table-caption.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── table-position.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── table-position.hwp │ │ │ ├── table-position.hwp.bodytext.section0.json │ │ │ ├── table-position.hwp.docinfo.json │ │ │ ├── table-position.hwp.formatted.xml │ │ │ ├── table-position.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── table.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── table.hwp │ │ │ ├── table.hwp.bodytext.section0.json │ │ │ ├── table.hwp.docinfo.json │ │ │ ├── table.hwp.formatted.xml │ │ │ ├── table.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── textbox.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── textbox.hwp │ │ │ ├── textbox.hwp.bodytext.section0.json │ │ │ ├── textbox.hwp.docinfo.json │ │ │ ├── textbox.hwp.formatted.xml │ │ │ ├── textbox.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── underline-styles.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── underline-styles.hwp │ │ │ ├── underline-styles.hwp.bodytext.section0.json │ │ │ ├── underline-styles.hwp.docinfo.json │ │ │ ├── underline-styles.hwp.formatted.xml │ │ │ ├── underline-styles.odt.d/ │ │ │ │ ├── META-INF/ │ │ │ │ │ └── manifest.xml │ │ │ │ ├── content.xml │ │ │ │ ├── manifest.rdf │ │ │ │ ├── mimetype │ │ │ │ └── styles.xml │ │ │ ├── viewtext.html.d/ │ │ │ │ ├── index.formatted.xhtml │ │ │ │ ├── index.xhtml │ │ │ │ └── styles.css │ │ │ ├── viewtext.hwp │ │ │ ├── viewtext.hwp.bodytext.section0.json │ │ │ ├── viewtext.hwp.docinfo.json │ │ │ ├── viewtext.hwp.formatted.xml │ │ │ └── viewtext.odt.d/ │ │ │ ├── META-INF/ │ │ │ │ └── manifest.xml │ │ │ ├── content.xml │ │ │ ├── manifest.rdf │ │ │ ├── mimetype │ │ │ └── styles.xml │ │ ├── mixin_olestg.py │ │ ├── mixin_relaxng.py │ │ ├── mixin_xslt.py │ │ ├── test_binmodel.py │ │ ├── test_bintype.py │ │ ├── test_compressed.py │ │ ├── test_dataio.py │ │ ├── test_distdoc.py │ │ ├── test_filestructure.py │ │ ├── test_hwp5html.py │ │ ├── test_hwp5odt.py │ │ ├── test_odtxsl.py │ │ ├── test_ole.py │ │ ├── test_plat_gir_gsf.py │ │ ├── test_plat_javax_transform.py │ │ ├── test_plat_jython_poifs.py │ │ ├── test_plat_lxml.py │ │ ├── test_plat_olefileio.py │ │ ├── test_plat_uno.py │ │ ├── test_plat_xmllint.py │ │ ├── test_plat_xsltproc.py │ │ ├── test_recordstream.py │ │ ├── test_storage.py │ │ ├── test_treeop.py │ │ ├── test_utils.py │ │ ├── test_xmlformat.py │ │ └── test_xmlmodel.py │ ├── hwp5_xsl_tests/ │ │ ├── odt-common.xml │ │ ├── odt-content.xml │ │ └── odt-styles.xml │ └── setup.py ├── tools/ │ ├── README.rst │ ├── constants/ │ │ ├── pyhwp_dev_constants.py │ │ └── setup.py │ ├── discover.lo/ │ │ ├── discover_lo.py │ │ └── setup.py │ ├── discover.lxml/ │ │ ├── discover_lxml.py │ │ └── setup.py │ ├── discover.python/ │ │ ├── discover_python.py │ │ └── setup.py │ ├── download/ │ │ ├── pyhwp_download.py │ │ └── setup.py │ ├── egg.path/ │ │ ├── egg_path.py │ │ └── setup.py │ ├── gpl/ │ │ ├── gpl/ │ │ │ ├── Pysec.py │ │ │ ├── __init__.py │ │ │ ├── parsers.py │ │ │ └── tests/ │ │ │ ├── __init__.py │ │ │ └── test_gpl.py │ │ └── setup.py │ ├── jingodf/ │ │ ├── jingodf/ │ │ │ ├── __init__.py │ │ │ └── schema/ │ │ │ ├── OpenDocument-manifest-schema-v1.0-os.rng │ │ │ ├── OpenDocument-manifest-schema-v1.1.rng │ │ │ ├── OpenDocument-schema-v1.0-os.rng │ │ │ ├── OpenDocument-schema-v1.1.rng │ │ │ ├── OpenDocument-strict-schema-v1.1.rng │ │ │ ├── OpenDocument-v1.2-os-dsig-schema.rng │ │ │ ├── OpenDocument-v1.2-os-manifest-schema.rng │ │ │ ├── OpenDocument-v1.2-os-metadata.owl │ │ │ ├── OpenDocument-v1.2-os-package-metadata.owl │ │ │ └── OpenDocument-v1.2-os-schema.rng │ │ └── setup.py │ ├── jxml/ │ │ ├── jxml/ │ │ │ ├── __init__.py │ │ │ └── etree/ │ │ │ └── __init__.py │ │ ├── jxml.coverage/ │ │ │ ├── jxml_coverage.py │ │ │ └── setup.py │ │ ├── lxml/ │ │ │ ├── lxml/ │ │ │ │ ├── __init__.py │ │ │ │ └── etree/ │ │ │ │ └── __init__.py │ │ │ └── setup.py │ │ ├── setup.py │ │ └── tests/ │ │ ├── Makefile │ │ ├── hello.xml │ │ ├── sample.xml │ │ ├── test_jaxp.py │ │ ├── test_lxml.py │ │ ├── text-output.xsl │ │ └── xsl/ │ │ ├── import-test.xsl │ │ └── imported.xsl │ ├── oxt.tool/ │ │ ├── oxt_tool/ │ │ │ ├── __init__.py │ │ │ ├── backend.py │ │ │ ├── description.py │ │ │ ├── manifest.py │ │ │ ├── package.py │ │ │ ├── remote.py │ │ │ ├── storage/ │ │ │ │ ├── __init__.py │ │ │ │ ├── _zipfile.py │ │ │ │ ├── fs.py │ │ │ │ └── path.py │ │ │ └── tests/ │ │ │ ├── __init__.py │ │ │ ├── mixin_storage.py │ │ │ ├── test_fs.py │ │ │ ├── test_package.py │ │ │ ├── test_storage_path.py │ │ │ └── test_zipfile.py │ │ └── setup.py │ ├── pyhwp.zestreleaser.cmds/ │ │ ├── CHANGES │ │ ├── COPYING │ │ ├── README.rst │ │ ├── pyhwp_zestreleaser_cmds.py │ │ └── setup.py │ ├── unpack/ │ │ ├── pyhwp_unpack.py │ │ └── setup.py │ └── xsltest/ │ ├── setup.py │ └── xsltest/ │ ├── __init__.py │ └── xmltool/ │ ├── __init__.py │ ├── subtree.py │ ├── wrap.py │ └── xslt.py ├── tox.ini ├── tox.ini.in └── unokit/ ├── setup.py └── unokit/ ├── __init__.py ├── adapters.py ├── configuration.py ├── contexts.py ├── services.py ├── singletons.py ├── tests/ │ ├── __init__.py │ ├── test_configuration.py │ ├── test_singletons.py │ └── test_ucb.py ├── ucb.py └── util.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ pyhwp/hwp5/_version.py export-subst ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: "pip" directory: "/" schedule: interval: "daily" target-branch: "develop" ================================================ FILE: .gitignore ================================================ *$py.class *.egg-info *.log *.mo *.po~ *.pyc .*.sw? .coverage* /*.egg /.eggs /.installed.cfg /.jip /.jip_index /.tox /.venv /bin /build /develop-eggs /data/pom.tpl /dist /docs/.build /downloads /eggs /include /javalib /lib /local /oxt/pyhwp.egg.record /oxt/pyhwp.oxt /oxt/pythonpath /parts /pip-selfcheck.json /pyhwp/build /pyhwp/dist /pyhwp/localtest.py /pyhwp/pyhwp.egg-info /releases /samples.local /share /test-xsl /testpypi /venv /xsltcoverage.xml coverage-original.xml coverage.xml deb_dist pep8.out pylint.out ================================================ FILE: .travis.yml ================================================ language: python python: - "2.7" env: - TOXENV=py27 matrix: include: - python: "3.8" env: TOXENV=lint - python: "2.7" env: TOXENV=py27 - python: "3.5" env: TOXENV=py35 - python: "3.6" env: TOXENV=py36 - python: "3.7" env: TOXENV=py37 dist: xenial sudo: yes - python: "3.8" env: TOXENV=py38 dist: xenial sudo: yes - python: "pypy" env: TOXENV=pypy - python: "pypy3" env: TOXENV=pypy3 - python: "2.7" env: TOXENV=jy27 allow_failures: - python: "pypy" env: TOXENV=pypy - python: "pypy3" env: TOXENV=pypy3 - python: "2.7" env: TOXENV=jy27 before_install: - sudo apt-get -qq update - sudo apt-get install -y libxml2-utils xsltproc install: - pip install -U setuptools pip wheel jip - pip install -U zc.buildout tox coverage python-coveralls - buildout - tox --version - sort --version - env | sort - if [ "$TOXENV" == "jy27" ]; then make install-jython; fi script: - tox after_success: - coverage combine .tox/*/tmp - coverage report - coveralls ================================================ FILE: CHANGES ================================================ CHANGES ======= 0.1b16 (unreleased) ------------------- - [CVE-2023-0286] Depends on cryptography >= 40.0.1 - [CVE-2022-2309] Depends on lxml >= 4.9,2 0.1b15 (2020-05-30) ------------------- - Unknown Numbering.Kind value of 6, which is not described in the official specification docs, has been added. See #177. 0.1b14 (2020-05-17) ------------------- - Fix xmldump_flat for Python 3.8 0.1b13 (2020-05-17) ------------------- - Replace docopt with argparse. - Workaround for BinData decompression (#175, #176) 0.1b12 (2019-04-08) ------------------- - Add Python 3.x support. - Add an optional dependency on colorlog for colorful logging - Remove dependency on hypua2jamo, resulting no automatic conversion of Hanyang PUA to Hangul Jamo 0.1b11 (2019-03-21) ------------------- - Remove dependency on PyCrypto. - [CVE-2013-7458], [CVE-2018-6594] - Add dependency on cryptography. 0.1b10 (2019-03-21) ------------------- - Drop support for Python 2.5, 2.6. - Prefer 'olefile' to 'OleFileIO_PL'. - Fix 'Dutmal' control attribute names. - hwp5html: represent path names in bytes - Declare some dependencies with environment markers: olefile, lxml, pycrypto - Update dependency on hypua2jamo >= 0.4.4 0.1b9 (2016-02-26) ------------------ - hwp5html: serveral improvements - lang-* classes of span elements and associated css font-family - horizontal page layouts - Single page layout - enhance horizontal positioning of TableControl, GShapeObject - distdoc: fix sha1offset (by Hodong Kim) 0.1b8 (2014-11-03) ------------------ - hwp5view: experimental viewer with webkitgtk+ - hwp5proc: xml --formats ("flat", "nested") - hwp5proc: models --events (experimental) - hwp5proc: models --seqno --format (incompatible changes) - hwp5proc: find --from-stdin - hwp5proc: find --format - binmodels: GShapeObjectCaption - olestorage: Gsf implementation through python-gi - olestorage: use new olefile instead of OleFileIO_PL 0.1b7 (2014-01-31) ------------------ - support distribution docs. (based on `Changwoo Ryu's algorithm `_) 0.1b6 (2014-01-20) ------------------ - binmodel: change type of TableCell dimensions to signed integer - hwp5odt: fix NCName for style:name (close #140) - hwp5proc: fix with-statement in 'xml' command for Python 2.5 - hwp5proc: mark 'xml' command experimental 0.1b5 (2013-10-29) ------------------ - close #134 - hwp5html generates .xhtml instead of .html - hwp5proc: new '--no-xml-decl' option - hwp5odt: fix to not use '/' in resulting style names - hwp5proc: IdMappings.memoshape only if version > 5.0.1.6 0.1b4 (2013-07-03) ------------------ - hwp5proc records: new option '--raw-header' - hwp5odt: new '--document' option produces single ODT XML files (``*.fodt``) - hwp5odt: new '--styles', '--content' option produces styles/content XML files - ODT XSL files restructured 0.1b3 (2013-06-18) ------------------ - Fix IdMappings (#125) - hwp5proc records: new option '--raw-payload' - hwp5proc xml: FlagsType as xsd:hexBinary - Various binary/xml models changes 0.1b2 (2013-06-08) ------------------ - Add PyPy support ================================================ FILE: COPYING ================================================ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . ================================================ FILE: MANIFEST.in ================================================ include .coveragerc include CHANGES include COPYING include LICENSE include Makefile include VERSION.txt include README include README.rst include buildout.cfg include classifiers.txt include ez_setup.py exclude notebooks include src/README.rst include src/hwp5/COPYING include src/hwp5/README include src/hwp5/VERSION.txt include src/hwp5/xsl/*.xsl include src/hwp5/xsl/odt/* include requirements.in include requirements.txt include requirements/dev.in include requirements/dev.txt include requirements/docs.in include requirements/docs.txt include requirements/lint.in include requirements/lint.txt include requirements/test.in include requirements/test.txt exclude samples include stdeb.cfg include tox.ini include tox.ini.in recursive-include src/hwp5/locale *.po recursive-include src/hwp5/locale *.pot prune buildouts prune docs prune etc prune misc prune oxt prune release-hooks prune tests prune tools prune unokit prune src/hwp5/odf-relaxng include src/hwp5/odf-relaxng/OpenDocument-v1.2-os-*.rng prune pyhwp_uno ================================================ FILE: Makefile ================================================ define ALL update-requirements install-jython endef ALL:=$(shell echo $(ALL)) # to remove line-feeds define REQUIREMENTS_FILES requirements/dev.txt requirements/docs.txt requirements/lint.txt requirements/test.txt requirements.txt endef REQUIREMENTS_FILES:=$(shell echo $(REQUIREMENTS_FILES)) define REQUIREMENTS_IN requirements.in endef REQUIREMENTS_IN:=$(shell echo $(REQUIREMENTS_IN)) define REQUIREMENTS_IN_TEST requirements/test.in requirements.in endef REQUIREMENTS_IN_TEST:=$(shell echo $(REQUIREMENTS_IN_TEST)) define REQUIREMENTS_IN_LINT requirements/lint.in endef REQUIREMENTS_IN_LINT:=$(shell echo $(REQUIREMENTS_IN_LINT)) define REQUIREMENTS_IN_DOCS requirements/docs.in endef REQUIREMENTS_IN_DOCS:=$(shell echo $(REQUIREMENTS_IN_DOCS)) define REQUIREMENTS_IN_DEV requirements/dev.in requirements/docs.in requirements/lint.in requirements/test.in requirements.in endef REQUIREMENTS_IN_DEV:=$(shell echo $(REQUIREMENTS_IN_DEV)) offline?=0 ifeq (1,$(offline)) PIP_NO_INDEX:=--no-index endif FIND_LINKS?= VENV := . .venv/bin/activate && .PHONY: all all: $(ALL) .PHONY: bootstrap bootstrap: [ -e bin/activate ] || virtualenv -p python2.7 . $(VENV) pip install -U setuptools pip wheel pip-tools make update-requirements $(VENV) buildout .PHONY: update-requirements update-requirements: $(REQUIREMENTS_FILES) $(VENV) pip-sync $(FIND_LINKS) $(PIP_NO_INDEX) requirements/dev.txt requirements.txt: $(REQUIREMENTS_IN) $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^ requirements/test.txt: $(REQUIREMENTS_IN_TEST) $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^ requirements/lint.txt: $(REQUIREMENTS_IN_LINT) $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^ requirements/docs.txt: $(REQUIREMENTS_IN_DOCS) $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^ requirements/dev.txt: $(REQUIREMENTS_IN_DEV) $(VENV) pip-compile $(FIND_LINKS) $(PIP_NO_INDEX) $(pip-compile-options) -o $@ $^ .PHONY: extract-messages extract-messages: $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/proc --output-file=pyhwp/hwp5/locale/hwp5proc.pot $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5html.py --output-file=pyhwp/hwp5/locale/hwp5html.pot $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5odt.py --output-file=pyhwp/hwp5/locale/hwp5odt.pot $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5txt.py --output-file=pyhwp/hwp5/locale/hwp5txt.pot $(VENV) python setup.py extract_messages --input-paths=pyhwp/hwp5/hwp5view.py --output-file=pyhwp/hwp5/locale/hwp5view.pot .PHONY: init-catalog init-catalog: $(VENV) python setup.py init_catalog --domain=hwp5proc --input-file=pyhwp/hwp5/locale/hwp5proc.pot --locale=ko $(VENV) python setup.py init_catalog --domain=hwp5html --input-file=pyhwp/hwp5/locale/hwp5html.pot --locale=ko $(VENV) python setup.py init_catalog --domain=hwp5odt --input-file=pyhwp/hwp5/locale/hwp5odt.pot --locale=ko $(VENV) python setup.py init_catalog --domain=hwp5txt --input-file=pyhwp/hwp5/locale/hwp5txt.pot --locale=ko $(VENV) python setup.py init_catalog --domain=hwp5view --input-file=pyhwp/hwp5/locale/hwp5view.pot --locale=ko .PHONY: update-catalog update-catalog: $(VENV) python setup.py update_catalog --domain=hwp5proc --input-file=pyhwp/hwp5/locale/hwp5proc.pot $(VENV) python setup.py update_catalog --domain=hwp5html --input-file=pyhwp/hwp5/locale/hwp5html.pot $(VENV) python setup.py update_catalog --domain=hwp5odt --input-file=pyhwp/hwp5/locale/hwp5odt.pot $(VENV) python setup.py update_catalog --domain=hwp5txt --input-file=pyhwp/hwp5/locale/hwp5txt.pot $(VENV) python setup.py update_catalog --domain=hwp5view --input-file=pyhwp/hwp5/locale/hwp5view.pot .PHONY: compile-catalog compile-catalog: $(VENV) python setup.py compile_catalog --domain=hwp5proc $(VENV) python setup.py compile_catalog --domain=hwp5html $(VENV) python setup.py compile_catalog --domain=hwp5odt $(VENV) python setup.py compile_catalog --domain=hwp5txt $(VENV) python setup.py compile_catalog --domain=hwp5view .PHONY: notebook notebook: $(VENV) jupyter notebook --notebook-dir=notebooks .PHONY: test test: $(VENV) tox --parallel 2 -e py27,py38 .PHONY: test-report test-report: $(VENV) coverage combine .tox/*/tmp $(VENV) coverage report $(VENV) coverage html $(VENV) coverage xml .PHONY: clitest clitest: $(VENV) env LANG=C clitest -1 --prefix 3 tests/cli_tests/hwp5proc.txt tests/cli_tests/hwp5odt.txt tests/cli_tests/hwp5html.txt tests/cli_tests/hwp5txt.txt .PHONY: install-jython install-jython: parts/jython2.7/bin/jython parts/jython2.7/bin/jython: rm -rf parts/jython2.7 mkdir -p parts $(VIRTUAL_ENV)/bin/jip install org.python:jython-installer:2.7.1 java -jar $(VIRTUAL_ENV)/javalib/jython-installer-2.7.1.jar -s -d $(PWD)/parts/jython2.7 ================================================ FILE: README ================================================ pyhwp ===== HWP Document Format v5 parser & processor. Features -------- - Analyze and extract internal streams out from a HWP Document Format v5 file - (*Experimental*) Conversion to OpenDocument format (.odt) or plain text (.txt) Installation ------------ from `pypi `_:: virtualenv pyhwp pyhwp/bin/pip install --pre pyhwp # Install pyhwp into a virtualenv directory Or:: pip install --user --pre pyhwp # Install pyhwp into user's home directory Requirements ------------ - Python 2.7, 3.5, 3.6, 3.7 or 3.8 - `cryptography `_ - `lxml `_ - `olefile `_ Documentation & Development --------------------------- - Documentation: `https://pyhwp.readthedocs.io `_ [`한국/조선어 `_] - Distribution: `https://pypi.org/project/pyhwp/ `_ - Development: `https://github.com/mete0r/pyhwp `_ - Issue tracker: `https://github.com/mete0r/pyhwp/issues `_ - Feedbacks & contributions are welcome! Contributors ------------ Maintainer: `mete0r `_ License ------- Copyright (C) 2010-2023 mete0r .. image:: http://www.gnu.org/graphics/agplv3-155x51.png `GNU Affero General Public License v3.0 `_ `(text version) `_ This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Disclosure ---------- This program has been developed in accordance with a public document named "HWP Binary Specification 1.1" published by `Hancom Inc. `_ ================================================ FILE: VERSION.txt ================================================ 0.1b16.dev0 ================================================ FILE: buildout.cfg ================================================ [buildout] develop = . parts = pyhwp clitest [pyhwp] recipe = zc.recipe.egg eggs = pyhwp [clitest] recipe = hexagonit.recipe.download url = https://raw.githubusercontent.com/aureliojargas/clitest/0.3.0/clitest download-only = true mode = 0700 destination = ${buildout:bin-directory} ================================================ FILE: buildouts/components/jxml.cfg ================================================ [buildout] extends= virtualenv-jython.cfg [jxml] recipe = collective.recipe.cmd cmds = ${jxml-install:output} "${:location}" on_install = true on_update = true location = ${buildout:parts-directory}/jxml [jxml-install] recipe = collective.recipe.template output = ${buildout:parts-directory}/jxml-install.sh mode=755 input =inline: #!/bin/sh set -e usage() { echo "usage: $0 " exit } location="$1" [ -n "$location" ] || usage; ${virtualenv-jython:output} "$location" jython="$location/bin/jython" installed="$location/installed" "$location/bin/pip" list > "$installed" grep pyhwp "$installed" || "$jython" "${buildout:directory}/setup.py" develop grep xsltest "$installed" || "$jython" "${buildout:directory}/tools/xsltest/setup.py" develop grep jxml "$installed" || "$jython" "${buildout:directory}/tools/jxml/setup.py" develop grep jxml.lxml "$installed" || "$jython" "${buildout:directory}/tools/jxml/lxml/setup.py" develop grep jxml.coverage "$installed" || "$jython" "${buildout:directory}/tools/jxml/jxml.coverage/setup.py" develop ================================================ FILE: buildouts/components/virtualenv-1.9.1.cfg ================================================ [virtualenv-1.9.1] recipe = hexagonit.recipe.download url = https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.1.tar.gz destination = ${buildout:parts-directory}/virtualenv-1.9.1 strip-top-level-dir = true ================================================ FILE: buildouts/components/virtualenv-jython.cfg ================================================ [buildout] extends= virtualenv-1.9.1.cfg [virtualenv-jython] recipe = collective.recipe.template output = ${buildout:bin-directory}/virtualenv-jython mode=755 input =inline: #!/bin/sh set -e usage() { echo "usage: $0 " exit 1 } location="$1" [ -n "$location" ] || usage activate="$location/bin/activate" [ -e "$activate" ] || jython ${virtualenv-1.9.1:destination}/virtualenv.py $location ================================================ FILE: buildouts/components/xalan-j-2.7.1.cfg ================================================ [xalan-j-2.7.1] recipe = hexagonit.recipe.download url = ${xalan-j-2.7.1.tar.gz:downloaded} destination = ${buildout:parts-directory}/xalan-j-2.7.1 strip-top-level-dir = true jars = ${:destination}/xalan.jar:${:destination}/xercesImpl.jar:${:destination}/serializer.jar:${:destination}/xml-apis.jar [xalan-j-2.7.1.tar.gz] recipe = hexagonit.recipe.download url = http://mirror.apache-kr.org/xalan/xalan-j/binaries/xalan-j_2_7_1-bin-2jars.tar.gz md5sum = 3ccda39bcd08b780436dfd2f22fb23d5 destination = ${buildout:parts-directory} filename = xalan-j-2.7.1.tar.gz download-only = true downloaded = ${:destination}/${:filename} ================================================ FILE: buildouts/components/xalan-j-2.7.2.cfg ================================================ [xalan-j-2.7.2] recipe = hexagonit.recipe.download url = ${xalan-j-2.7.2.tar.gz:downloaded} destination = ${buildout:parts-directory}/xalan-j-2.7.2 strip-top-level-dir = true jars = ${:destination}/xalan.jar:${:destination}/xercesImpl.jar:${:destination}/serializer.jar:${:destination}/xml-apis.jar [xalan-j-2.7.2.tar.gz] recipe = hexagonit.recipe.download url = http://apache.tt.co.kr/xalan/xalan-j/binaries/xalan-j_2_7_2-bin-2jars.tar.gz # md5sum = 3ccda39bcd08b780436dfd2f22fb23d5 destination = ${buildout:parts-directory} filename = xalan-j-2.7.2.tar.gz download-only = true downloaded = ${:destination}/${:filename} ================================================ FILE: buildouts/developer.cfg ================================================ [buildout] extends = translator.cfg components/jxml.cfg components/xalan-j-2.7.2.cfg develop+= pyhwp-tests tools/xsltest tools/gpl parts+= test-core test-coverage test-cli test-xsl test-xsl-cov test-sdist test-tools test-for-bisect xsltest code-analysis collect-samples masstest-failed massfind-unknowntag massfind-incomplete expected-output-update [pyhwp] eggs+= nose coverage gpl pyroma [test-core] recipe = collective.xmltestreport eggs = pyhwp-tests defaults = ['--auto-color', '--auto-progress', '--xml', '--tests-pattern=hwp5_tests'] [test-xsl] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-xsl.in output = ${buildout:directory}/bin/test-xsl mode = 755 [test-xsl-cov] recipe = collective.recipe.template mode=755 output=${buildout:bin-directory}/test-xsl-cov input =inline: #!/bin/sh CLASSPATH=${xalan-j-2.7.2:jars} ${jxml:location}/bin/jxml-cov-test $* [test-coverage] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-coverage output = ${buildout:directory}/bin/test-coverage mode = 755 [test-cli] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-cli.in output = ${buildout:directory}/bin/test-cli mode = 755 [test-sdist] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-sdist.in output = ${buildout:directory}/bin/test-sdist mode = 755 [test-tools] recipe = collective.xmltestreport eggs = gpl defaults = ['--auto-color', '--auto-progress', '--xml'] [test-for-bisect] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-for-bisect output = ${buildout:directory}/bin/test-for-bisect mode = 755 [xsltest] recipe = zc.recipe.egg eggs = xsltest [code-analysis] recipe = plone.recipe.codeanalysis directory = ${buildout:directory}/pyhwp # Default is 10 flake8-max-complexity = 30 utf8-header = True [collect-samples] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:_buildout_section_name_} input = inline: #!/bin/sh set -e dir="$1" find "$dir" -iname '*.hwp' -print0 | parallel --gnu -0 "${save-sample:output}" [save-sample] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:_buildout_section_name_} input = inline: #!/bin/sh set -e src="$1" [ -e "$src" ] || (echo "$src not found"; exit 1) ${:abspath} version=$(${buildout:bin-directory}/hwp5proc version "$src") srcpath=$(abspath "$src") sha1sum=$(sha1sum -b "$srcpath" | awk '{ print $1 }') echo "$version/$sha1sum $srcpath" repo="${buildout:directory}/samples.local" blob_dir="${buildout:directory}/samples.local/blob" [ -d "$blob_dir" ] || mkdir -p "$blob_dir" blob_path="$blob_dir/$sha1sum" [ -e "$blob_path" ] || cp "$srcpath" "$blob_path" dst_path="$repo/$version/$sha1sum.hwp" dst_dir=$(dirname "$dst_path") [ -d "$dst_dir" ] || mkdir -p "$dst_dir" [ -e $dst_path ] || ln -s "$blob_path" "$dst_path" abspath= abspath() { if [ $(echo "$1" | head -c 1) = "/" ]; then echo "$1" else echo "$PWD/$1" fi } [masstest-failed] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:_buildout_section_name_} input = inline: #!/bin/sh set -e ${masstest:output} "${masstest-worker:failed-dir}" [masstest] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:_buildout_section_name_} input = inline: #!/bin/sh set -e ${:def-masstest} sample_dir="${buildout:directory}/samples.local/" [ -z "$1" ] || sample_dir="$1" masstest "$sample_dir" | tee ${buildout:parts-directory}/masstest.log def-masstest= masstest() { find "$1" -iname '*.hwp' -print0 | parallel --gnu -0 ${masstest-worker:output} } [masstest-worker] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:_buildout_section_name_} input = inline: #!/bin/sh set -e [ -e "$1" ] || (echo "$1: not found"; exit 1) testee="$1" failed_dir="${:failed-dir}" [ -d "$failed_dir" ] || mkdir -p "$failed_dir" errors_dir="${:errors-dir}" [ -d "$errors_dir" ] || mkdir -p "$errors_dir" testee_filename=$(basename "$testee") testee_error_hwp5proc="$errors_dir/$testee_filename.hwp5proc.err" testee_error_xmllint="$errors_dir/$testee_filename.xmllint.err" test_xml() { ${buildout:bin-directory}/hwp5proc xml "$testee" 2> "$testee_error_hwp5proc" | xmllint --format - > /dev/null 2> "$testee_error_xmllint" } handle_success() { echo "" filename=$(basename "$testee") failed_path="$failed_dir/$filename" [ ! -e "$failed_path" ] || rm -f "$failed_path" rm -f "$testee_error_hwp5proc" rm -f "$testee_error_xmllint" } handle_failed() { echo " FAILED" [ -e "$failed_path" ] || ln -s "$testee" "$failed_dir" } echo -n "$testee" test_xml && handle_success || handle_failed failed-dir=${buildout:parts-directory}/masstest/failed errors-dir=${buildout:parts-directory}/masstest/errors [massfind-unknowntag] recipe = collective.recipe.template output = ${buildout:bin-directory}/${:_buildout_section_name_} mode = 755 input = inline: #!/bin/sh set -e samples='${buildout:directory}/samples.local' find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --model=UnknownTagModel | tee ${buildout:parts-directory}/massfind-unknowntag [massfind-incomplete] recipe = collective.recipe.template output = ${buildout:bin-directory}/${:_buildout_section_name_} mode = 755 input = inline: #!/bin/sh set -e samples='${buildout:directory}/samples.local' find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --incomplete | tee ${buildout:parts-directory}/massfind-incomplete [expected-output-update] recipe = collective.recipe.template output = ${buildout:bin-directory}/${:_buildout_section_name_} mode = 755 input = inline: #!/bin/sh set -e samples='${buildout:directory}/samples' find "$samples/" -iname '*.hwp' | parallel --gnu ${expected-output-update-worker:output} [expected-output-update-worker] recipe = collective.recipe.template output = ${buildout:bin-directory}/${:_buildout_section_name_} mode = 755 input = inline: #!/bin/sh set -e filename=$1 docinfo="$filename.docinfo.json" section0="$filename.bodytext.section0.json" xmlformat="$filename.formatted.xml" odt_output="$filename.odt" odt_filename=`basename "$odt_output"` hwp5proc_xml() { ${buildout:bin-directory}/hwp5proc xml "$1" 2> "$xmlformat.err" } hwp5odt() { local orgdir="$PWD" local filename=`basename "$1"` local odt_file=`echo $filename | sed -e "s/.hwp$/.odt/g"` cd `dirname "$1"` ${buildout:bin-directory}/hwp5odt "$filename" rm -rf "$odt_file.d" mkdir "$odt_file.d" unzip "$odt_file" -d "$odt_file.d" rm -f "$odt_file" cd "$orgdir" } hwp5html() { local html_dir=`echo $1 | sed -e "s/.hwp$/.html.d/g"` rm -rf "$html_dir" ${buildout:bin-directory}/hwp5html "$1" --output "$html_dir" xmllint --c14n --nonet --encode utf-8 "$html_dir/index.xhtml" | xmllint --format --encode utf-8 - > "$html_dir/index.formatted.xhtml" } xml_c14n() { xmllint --c14n --encode utf-8 - 2> "$xmlformat.c14n.err" } xml_format() { xmllint --format --encode utf-8 - 2> "$xmlformat.format.err" } if ${buildout:bin-directory}/hwp5proc header "$filename" | grep password | grep 0 > /dev/null; then dummy='' else echo "$filename: SKIPPING" rm -f "$docinfo.err" rm -f "$section0.err" rm -f "$xmlformat.err" rm -f "$xmlformat.c14n.err" rm -f "$xmlformat.format.err" exit 0 fi ${buildout:bin-directory}/hwp5proc models "$filename" docinfo > "$docinfo" 2> "$docinfo.err" && echo "$filename: docinfo" && rm -f "$docinfo.err" ${buildout:bin-directory}/hwp5proc models "$filename" bodytext/0 > "$section0" 2> "$section0.err" && echo "$filename: bodytext/0" && rm -f "$section0.err" hwp5proc_xml "$filename" | xml_c14n | xml_format > "$xmlformat" && echo "$filename: xml" && rm -f "$xmlformat.err" "$xmlformat.c14n.err" "$xmlformat.format.err" hwp5odt "$filename" hwp5html "$filename" ================================================ FILE: buildouts/maintainer.cfg ================================================ [buildout] extends = tester.cfg develop+= tools/pyhwp.zestreleaser.cmds parts+= test-upload docs-upload upload test-pypi [pyhwp] eggs+= zest.releaser pyhwp.zestreleaser.cmds [docs-upload] recipe = collective.recipe.template input = ${buildout:directory}/misc/docs-upload output = ${buildout:directory}/bin/docs-upload mode = 755 [test-upload] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-upload.in output = ${buildout:directory}/bin/test-upload mode = 755 [upload] recipe = collective.recipe.template input = ${buildout:directory}/misc/upload output = ${buildout:directory}/bin/upload mode = 755 [test-pypi] recipe = collective.recipe.template input = ${buildout:directory}/misc/test-pypi.in output = ${buildout:directory}/bin/test-pypi mode = 755 ================================================ FILE: buildouts/tester.cfg ================================================ [buildout] extends = developer.cfg https://raw.github.com/mete0r/mkvenv/master/lib/buildout.extends/mkvenv.cfg develop+= tools/constants tools/jingodf parts+= tox-ini tox-py25 tox-jy25 wheelhouse [versions] collective.xmltestreport = 1.2.6 [constants] recipe = pyhwp.dev.constants [wheelhouse] recipe = z3c.recipe.mkdir paths=wheelhouse [tox] recipe = zc.recipe.egg eggs = tox [tox-ini] recipe = collective.recipe.template input = ${buildout:directory}/tox.ini.in output = ${buildout:directory}/tox.ini mode = 755 [tox-shim] recipe = collective.recipe.template mode = 755 output = ${buildout:bin-directory}/${:name} input = inline: #!/bin/sh set -e # build virtualenv ${:mkvenv} ${:envdir} . ${:envbindir}/activate # sdist & install ${:envpython} setup.py install ${:environment-variables} # ---- commands ---- ${:envpython} ${:toxinidir}/misc/cleanup-pyc.py ${:toxinidir}/pyhwp ${:toxinidir}/pyhwp_uno ${:toxinidir}/unokit ${:envpython} ${:toxinidir}/misc/mkdir.py ${:envtmpdir} ${:envbindir}/pip install nose coverage ${:install-crypto} ${:install-lxml} ${:envbindir}/coverage run -p ${:coverage-options} ${:envbindir}/nosetests${constants:script_py_suffix} -v -w ${:envtmpdir} ${:toxinidir}/pyhwp-tests --logging-config=${:toxinidir}/etc/testlog.conf --with-xunit --xunit-file=${:envtmpdir}/nosetests.xml ${:envpython} ${:toxinidir}/misc/test-cli.py ${:envpython} ${:toxinidir}/misc/prepare-hwp5-xsl-fixtures.py --fixtures-dir=${:toxinidir}/pyhwp-tests/hwp5_tests/fixtures --out-dir=${:envtmpdir}/hwp5_xsl_fixtures ${:toxinidir}/bin/xsltest --styles-dir=${:toxinidir}/pyhwp/hwp5/xsl --import-dir=${:envtmpdir}/hwp5_xsl_fixtures --gen-dir=${:envtmpdir}/hwp5_xsl_tests ${:toxinidir}/pyhwp-tests/hwp5_xsl_tests echo '${:name} successful.' name=${:_buildout_section_name_} mkvenv= envdir=${buildout:parts-directory}/${:name} envbindir=${:envdir}/bin envtmpdir=${:envdir}/tmp envpython=${:envdir}/bin/python toxinidir=${buildout:directory} environment-variables= install-lxml= install-crypto= coverage-options=--source=hwp5,hwp5_tests [tox-py25] <=tox-shim mkvenv=${mkvenv-CPython-2.5:output} install-lxml=[ -e ${:lxml-built} ] && tar -C ${:site-packages} -xzf ${:lxml-built} || ${:envbindir}/pip install lxml && tar -C ${:site-packages} -czf ${:lxml-built} lxml site-packages=${:envdir}/lib/python2.5/site-packages lxml-built=${buildout:parts-directory}/tox-py25-lxml-built.tar.gz install-crypto=[ -e ${:pycrypto-built} ] && tar -C ${:site-packages} -xzf ${:pycrypto-built} || ${:envbindir}/pip install pycrypo && tar -C ${:site-packages} -czf ${:pycrypto-built} Crypto pycrypto-built=${buildout:parts-directory}/tox-py25-pycrypto-built.tar.gz [tox-jy25] <=tox-shim mkvenv=${mkvenv-Jython-2.5:output} environment-variables = export JYTHONPATH=${poi-3.9:destination}/poi-3.9-20121203.jar export PIP_INSECURE=1 # WORKAROUND: 현재 jython 2.5.3, coverage 3.5.3에서 coverage run 실행 시 # --source=hwp5,hwp5_tests 옵션을 주면 이상하게도 hwp5_tests의 결과만 저장된다. # 따라서 --source 대신 -L을 주어 모든 파일에 대해 coverage 결과를 얻은 후, # coverage xml에서 필터링한다. coverage-options=--source=hwp5,hwp5_tests [poi-3.9] recipe = hexagonit.recipe.download url = ${poi-bin-3.9-20121203.tar.gz:downloaded} destination=${buildout:parts-directory}/poi-3.9 strip-top-level-dir=true [poi-bin-3.9-20121203.tar.gz] recipe = hexagonit.recipe.download url = http://archive.apache.org/dist/poi/release/bin/${:filename} md5sum = 09c4dfd63317bb9eb37fe12d6febea74 download-only = true destination=${buildout:parts-directory} filename=poi-bin-3.9-20121203.tar.gz downloaded=${:destination}/${:filename} ================================================ FILE: buildouts/translator.cfg ================================================ [buildout] extends = user.cfg parts+= docs-update-po docs-build docs-build-latex [pyhwp] eggs+= sphinx interpreter = console [docs-update-po] recipe = collective.recipe.template output = ${buildout:directory}/bin/docs-update-po mode = 755 input=inline: #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u SRC_DIR=${buildout:directory}/docs POT_DIR=${buildout:directory}/docs/.build/gettext PO_BASE=${buildout:directory}/docs/translated ${buildout:directory}/bin/sphinx-build -b gettext $SRC_DIR $POT_DIR for LANG in ko en; do for FILE in index intro hwp5proc converters; do PO_FILE=$PO_BASE/$LANG/LC_MESSAGES/$FILE.po POT_FILE=$POT_DIR/$FILE.pot echo $PO_FILE [ -e $PO_FILE ] && msgmerge --update $PO_FILE $POT_FILE [ -e $PO_FILE ] || cp $POT_FILE $PO_FILE done done [docs-build] recipe = collective.recipe.template input = ${buildout:directory}/misc/docs-build output = ${buildout:directory}/bin/docs-build mode = 755 input=inline: #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u SRC_DIR=${buildout:directory}/docs PO_BASE=${buildout:directory}/docs/translated HTML_BASE=${buildout:directory}/docs/.build/html BUILD_DIR=${buildout:directory}/build cd ${buildout:directory} for LANG in ko en; do for FILE in index intro hwp5proc converters; do PO_FILE=$PO_BASE/$LANG/LC_MESSAGES/$FILE.po MO_FILE=$PO_BASE/$LANG/LC_MESSAGES/$FILE.mo echo $MO_FILE msgfmt $PO_FILE -o $MO_FILE done OUT_DIR=$HTML_BASE/$LANG echo $OUT_DIR # sphinx does not detect changes in .mo files # see https://bitbucket.org/birkenfeld/sphinx/issue/830 rm -rf $OUT_DIR ${buildout:directory}/bin/sphinx-build -b html -Dlanguage=$LANG $SRC_DIR $OUT_DIR done EN_DIR=$HTML_BASE/en KO_DIR=$HTML_BASE/ko mkdir -p $BUILD_DIR rm -rf $BUILD_DIR/docs cp -r $EN_DIR $BUILD_DIR/docs # en becomes docs/ cp -r $KO_DIR $BUILD_DIR/docs/ # ko becomes docs/ko [docs-build-latex] recipe = collective.recipe.template output = ${buildout:bin-directory}/${:_buildout_section_name_} mode = 755 input = inline: #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u SRC_DIR=${buildout:directory}/docs PO_BASE=${buildout:directory}/docs/translated LATEX_BASE=${buildout:directory}/docs/.build/latex DIST_DIR=${buildout:directory}/dist cd ${buildout:directory} for LANG in ko en; do for FILE in index intro hwp5proc converters; do PO_FILE=$PO_BASE/$LANG/LC_MESSAGES/$FILE.po MO_FILE=$PO_BASE/$LANG/LC_MESSAGES/$FILE.mo echo $MO_FILE msgfmt $PO_FILE -o $MO_FILE done OUT_DIR=$LATEX_BASE/$LANG echo $OUT_DIR # sphinx does not detect changes in .mo files # see https://bitbucket.org/birkenfeld/sphinx/issue/830 rm -rf $OUT_DIR ${buildout:directory}/bin/sphinx-build -b latex -Dlanguage=$LANG $SRC_DIR $OUT_DIR make -C $OUT_DIR done cp $LATEX_BASE/en/pyhwp.pdf $DIST_DIR/pyhwp.en.pdf cp $LATEX_BASE/ko/pyhwp.pdf $DIST_DIR/pyhwp.ko.pdf ================================================ FILE: buildouts/user.cfg ================================================ [buildout] develop+= . parts+= pyhwp [pyhwp] recipe = zc.recipe.egg eggs = pyhwp ================================================ FILE: classifiers.txt ================================================ Development Status :: 4 - Beta Intended Audience :: Developers License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+) Operating System :: OS Independent Programming Language :: Python Programming Language :: Python :: 2.7 Programming Language :: Python :: 3.5 Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: Jython Programming Language :: Python :: Implementation :: PyPy Topic :: Software Development :: Libraries :: Python Modules Topic :: Text Processing Topic :: Text Processing :: Filters ================================================ FILE: docs/.gitignore ================================================ _build ================================================ FILE: docs/Makefile ================================================ # Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = ../build/docs # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = -d $(BUILDDIR)/doctrees.i18n $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext intl help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " applehelp to make an Apple Help Book" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to run coverage check of the documentation (if enabled)" clean: rm -rf $(BUILDDIR)/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/METE0R-PROJECT.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/METE0R-PROJECT.qhc" applehelp: $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp @echo @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." @echo "N.B. You won't be able to view it unless you put it in" \ "~/Library/Documentation/Help or install it in your application" \ "bundle." devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/METE0R-PROJECT" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/METE0R-PROJECT" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) locale/pot @echo @echo "Build finished. The message catalogs are in locale." intl: sphinx-intl update --pot-dir locale/pot --language=en --language=ko changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." coverage: $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage @echo "Testing of coverage in the sources finished, look at the " \ "results in $(BUILDDIR)/coverage/python.txt." xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." ================================================ FILE: docs/conf.py ================================================ # -*- coding: utf-8 -*- # # pyhwp documentation build configuration file, created by # sphinx-quickstart on Sat Mar 10 15:30:24 2012. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os import os.path # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'src'))) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.coverage', 'sphinxarg.ext', ] # Add any paths that contain templates here, relative to this directory. templates_path = ['templates'] locale_dirs = ['translated'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'pyhwp' copyright = u'2012, mete0r' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The full version, including alpha/beta/rc tags. from hwp5 import __version__ as hwp5_release release = hwp5_release if release.endswith('-dirty'): release = release[:-len('-dirty')] # The short X.Y version. import re version_match = re.match(r'([0-9]+\.[0-9]+).*', release) if version_match: version = version_match.group(1) else: version = 'develop' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['.build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'default' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'pyhwpdoc' # -- Options for LaTeX output -------------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. 'preamble': '\\usepackage{kotex}', # Workaround for latex babel language; there are no korean support currently # Just force it to english documentclass # see https://bitbucket.org/birkenfeld/sphinx/src/ # 87eb42dafb5c172e085893d57224fa58e3df80e8/sphinx/writers/latex.py # ?at=default#cl-238 'extraclassoptions': 'english', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'pyhwp.tex', u'pyhwp Documentation', u'mete0r', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'pyhwp', u'pyhwp Documentation', [u'mete0r'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------------ # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'pyhwp', u'pyhwp Documentation', u'mete0r', 'pyhwp', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' ================================================ FILE: docs/converters.rst ================================================ Converters (*Experimental*) =========================== Convert HWPv5 documents into other document formats. Requirements ------------ The conversions are performed with `XSLT `_ internally and verified with `Relax NG `_ if possible. For these processing, the converters requires `lxml `_ (`homepage `_) or `libxml2 `_'s `xsltproc `_ / `xmllint `_ programs. For lxml installation:: pip install --user lxml # install to user directory pip install lxml # install with virtualenv or see `Installing lxml `_. (Currently conversions with lxml 2.3.5 is tested and verified to be working. lxml versions below that may work too, but those are not tested.) For ``xsltproc`` / ``xmllint`` installation:: sudo apt-get install xsltproc libxml2-utils # Debian/Ubuntu Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT`` specifies the paths of the each programs. (If not set, ``xsltproc`` and/or ``xmllint`` should be in the one of the directories specified in ``PATH``.) ``hwp5odt``: ODT conversion --------------------------- .. argparse:: :module: hwp5.hwp5odt :func: main_argparser :prog: hwp5odt ``hwp5html``: HTML conversion ----------------------------- .. argparse:: :module: hwp5.hwp5html :func: main_argparser :prog: hwp5html ``hwp5txt``: text conversion ---------------------------- .. argparse:: :module: hwp5.hwp5txt :func: main_argparser :prog: hwp5txt ================================================ FILE: docs/hacking/directory-layout/bin.rst ================================================ ``bin/`` - Buildout generated scripts ------------------------------------- This directory will be populated with scripts generated from the ``pyhwp`` package and the various development helper packages/scripts. ``pyhwp`` generate following scripts: :program:`hwp5proc` HWP format version 5 files processor. See :doc:`../hwp5proc`. :program:`hwp5odt`, :program:`hwp5txt`, :program:`hwp5html` Experimental converters. See :doc:`../converters`. Development helper scripts (incomplete): :program:`buildout` (Re)generate the development environment. :program:`test-core` Run a quick unit test. ================================================ FILE: docs/hacking/directory-layout/root.rst ================================================ ``/`` - project root directory ------------------------------ The project root directory contains project configuration files. :file:`buildout.cfg` `buildout `_ configuration file. :file:`setup.py`, :file:`setup.cfg` ``pyhwp`` setup files. :file:`tox.ini` `tox `_ configuration file. This file will be automatically generated from :file:`tox.ini.in` by :program:`bin/buildout`. See ``[tox]`` parts in :file:`buildout.cfg`. :file:`tox.ini.in` tox_ configuration template file. If you want to modify tox_ configuration, edit this file and run :program:`bin/buildout` again. ================================================ FILE: docs/hacking/directory-layout.rst ================================================ ================ Directory Layout ================ :: pyhwp Project Root | +-- pyhwp/ Source packages root | | | +-- hwp5/ Source package | +-- pyhwp-tests/ Test packages root | | | +-- hwp5_tests/ Test package | +-- docs/ Documentations, i.e. this document! | +-- bin/ hwp5proc, hwp5odt, build/testing scripts, etc., | +-- etc/ development configuration files | +-- misc/ development configuration templates / helper scripts | +-- tools/ development helper packages | . . (various directories) . After the initial :ref:`invocation of buildout ` completes successfully, your directory will have a few more new generated directories, e.g. :file:`bin/`, :file:`develop-eggs/`. These are the standard buildout directories, which we will not cover the every details of them here. For general information, see `Directory Structure of a Buildout `_. Followings are ``pyhwp`` specific informations: .. include:: directory-layout/root.rst .. include:: directory-layout/bin.rst .. include:: directory-layout/pyhwp.rst .. include:: directory-layout/pyhwp-tests.rst .. include:: directory-layout/tools.rst ================================================ FILE: docs/hacking/hack-n-test.rst ================================================ =========== Hack & Test =========== If you modify some modules in ``hwp5`` package in the ``pyhwp/`` directory, you can test the modification with the ``hwp5proc`` script in the ``bin/`` directory. You can test the ``hwp5`` package by executing ``bin/test-core``, but it's just a quick test and not a complete test suite. If you want to run a full-blown test suite, run ``tox``, which tries to test ``pyhwp`` in various `virtualenv `_-isolated python platforms, including Python 2.5, 2.6, 2.7, Jython 2.5 and PyPy. :: $ bin/buildout (...) $ vim pyhwp/hwp5/proc/__init__.py (HACK HACK HACK) $ bin/test-core $ bin/hwp5proc ... $ bin/tox ================================================ FILE: docs/hacking/index.rst ================================================ Hacking Guide ============= Standard procedures to hacking on ``pyhwp``. Contents: .. toctree:: :maxdepth: 2 setup-env directory-layout hack-n-test ================================================ FILE: docs/hacking/setup-env.rst ================================================ ============================= Setup development environment ============================= 1. Install prerequisites ------------------------ * CPython 2.7 * `virtualenv` * GNU `Make` 2. Clone the source repository ------------------------------ :: $ git clone https://github.com/mete0r/pyhwp.git 3. Initialize the environment ------------------------------ Bootstrap development environment:: $ make bootstrap $ . bin/activate 4. Check basic stuffs --------------------- Run `hwp5proc`:: $ hwp5proc --help To run tests:: $ tox ================================================ FILE: docs/hwp5.rst ================================================ package hwp5 ************ module :mod:`hwp5.filestructure` ================================ .. automodule:: hwp5.filestructure :members: module :mod:`hwp5.recordstream` =============================== .. automodule:: hwp5.recordstream :members: module :mod:`hwp5.binmodel` =========================== .. automodule:: hwp5.binmodel :members: module :mod:`hwp5.xmlmodel` =========================== .. automodule:: hwp5.xmlmodel :members: module :mod:`hwp5.xmlformat` ============================ .. automodule:: hwp5.xmlformat :members: module :mod:`hwp5.storage` ========================== .. automodule:: hwp5.storage :members: module :mod:`hwp5.dataio` ========================= .. automodule:: hwp5.dataio :members: module :mod:`hwp5.tagids` ========================= .. automodule:: hwp5.tagids :members: module :mod:`hwp5.plat` =========================== .. automodule:: hwp5.plat :members: module :mod:`hwp5.importhelper` =============================== .. automodule:: hwp5.importhelper :members: module :mod:`hwp5.treeop` ========================= .. automodule:: hwp5.treeop :members: module :mod:`hwp5.utils` ========================= .. automodule:: hwp5.utils :members: ================================================ FILE: docs/hwp5proc.rst ================================================ ``hwp5proc``: HWPv5 processor ============================= .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :nosubcommands: Subcommands =========== version ------- Print the file format version of .hwp files. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: version header ------ Print file headers of .hwp files. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: header summaryinfo ----------- Print summary informations of .hwp files. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: summaryinfo ls -- List streams in .hwp files. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: ls cat --- Extract out internal streams of .hwp files .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: cat Example:: $ hwp5proc cat samples/sample-5017.hwp BinData/BIN0002.jpg | file - $ hwp5proc cat samples/sample-5017.hwp BinData/BIN0002.jpg > BIN0002.jpg $ hwp5proc cat samples/sample-5017.hwp PrvText | iconv -f utf-16le -t utf-8 $ hwp5proc cat --vstreams samples/sample-5017.hwp PrvText.utf8 $ hwp5proc cat --vstreams samples/sample-5017.hwp FileHeader.txt ccl: 0 cert_drm: 0 cert_encrypted: 0 cert_signature_extra: 0 cert_signed: 0 compressed: 1 distributable: 0 drm: 0 history: 0 password: 0 script: 0 signature: HWP Document File version: 5.0.1.7 xmltemplate_storage: 0 unpack ------ Extract out internal streams of .hwp files into a directory. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: unpack Example:: $ hwp5proc unpack samples/sample-5017.hwp $ ls sample-5017 Example:: $ hwp5proc unpack --vstreams samples/sample-5017.hwp $ cat sample-5017/PrvText.utf8 records ------- Print the record structure of .hwp file record streams. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: records Example:: $ hwp5proc records samples/sample-5017.hwp DocInfo Example:: $ hwp5proc records samples/sample-5017.hwp DocInfo --range=0-2 If neither nor is specified, the record stream is read from the standard input with an assumption that the input is in the format version specified by -V option. Example:: $ hwp5proc records --raw samples/sample-5017.hwp DocInfo --range=0-2 > tmp.rec $ hwp5proc records < tmp.rec models ------- Print parsed binary models of .hwp file record streams. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: models Example:: $ hwp5proc models samples/sample-5017.hwp DocInfo $ hwp5proc models samples/sample-5017.hwp BodyText/Section0 $ hwp5proc models samples/sample-5017.hwp docinfo $ hwp5proc models samples/sample-5017.hwp bodytext/0 Example:: $ hwp5proc models --simple samples/sample-5017.hwp bodytext/0 $ hwp5proc models --format='%(level)s %(tagname)s\\n' \\ samples/sample-5017.hwp bodytext/0 Example:: $ hwp5proc models --simple --treegroup=1 samples/sample-5017.hwp bodytext/0 $ hwp5proc models --simple --seqno=4 samples/sample-5017.hwp bodytext/0 If neither nor is specified, the record stream is read from the standard input with an assumption that the input is in the format version specified by -V option. Example:: $ hwp5proc cat samples/sample-5017.hwp BodyText/Section0 > Section0.bin $ hwp5proc models -V 5.0.1.7 < Section0.bin find ---- Find record models with specified predicates. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: find Example: Find paragraphs:: $ hwp5proc find --model=Paragraph samples/*.hwp $ hwp5proc find --tag=HWPTAG_PARA_TEXT samples/*.hwp $ hwp5proc find --tag=66 samples/*.hwp Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed incompletely:: $ hwp5proc find --tag=HWPTAG_LIST_HEADER --incomplete --dump samples/*.hwp xml --- Transform .hwp files into an XML. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: xml Example:: $ hwp5proc xml samples/sample-5017.hwp > sample-5017.xml $ xmllint --format sample-5017.xml With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files in the output XML. Example:: $ hwp5proc xml --embedbin samples/sample-5017.hwp > sample-5017.xml $ xmllint --format sample-5017.xml rawunz ------ Deflate an headerless zlib-compressed stream. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: rawunz diststream ---------- Decode a distribute document stream. .. argparse:: :module: hwp5.hwp5proc :func: main_argparser :prog: hwp5proc :path: diststream ================================================ FILE: docs/index.rst ================================================ .. pyhwp documentation master file, created by sphinx-quickstart on Sat Mar 10 15:30:24 2012. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Welcome to pyhwp's documentation! ================================= Contents: .. toctree:: :maxdepth: 2 intro hwp5proc converters hacking/index changes Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search` ================================================ FILE: docs/static/.gitignore ================================================ ================================================ FILE: docs/templates/.gitignore ================================================ ================================================ FILE: docs/translated/en/LC_MESSAGES/converters.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-29 04:47\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # eafb3e22bc3740cb9f41f4f2df9e7800 #: ../../converters.rst:2 msgid "Converters (*Experimental*)" msgstr "" # 6b4bc6aa159144d4bb3a51e48e5909da #: ../../converters.rst:4 msgid "Convert HWPv5 documents into other document formats." msgstr "" # 5d38e3678e074ca2b766734ae5247217 #: ../../converters.rst:7 msgid "Requirements" msgstr "" # 67f8cb2c410f45559ea36edddc5f3bd6 #: ../../converters.rst:8 msgid "" "The conversions are performed with `XSLT `_ " "internally and verified with `Relax NG `_ if possible." msgstr "" # 45e757bc017d449a95192776960d8b5d #: ../../converters.rst:11 msgid "" "For these processing, the converters requires `lxml `_ (`homepage `_) or `libxml2 `_'s `xsltproc `_ / `xmllint " "`_ programs." msgstr "" # 4bbc12c733e64021b1e57753c362e03f #: ../../converters.rst:17 msgid "For lxml installation::" msgstr "" # 87c456830c3f40b0b0922d11b45e7f7a #: ../../converters.rst:22 msgid "or see `Installing lxml `_." msgstr "" # 279b07aa798c48238be60111a825bd7a #: ../../converters.rst:24 msgid "" "(Currently conversions with lxml 2.3.5 is tested and verified to be working. " "lxml versions below that may work too, but those are not tested.)" msgstr "" # 173347f476564817bd87068b394dbd6a #: ../../converters.rst:27 msgid "For ``xsltproc`` / ``xmllint`` installation::" msgstr "" # 50fa23c1a25a4330bab200b3d4c5d753 #: ../../converters.rst:31 msgid "" "Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT`` " "specifies the paths of the each programs. (If not set, ``xsltproc`` and/or " "``xmllint`` should be in the one of the directories specified in ``PATH``.)" msgstr "" # bc95c4ff391e4201a6ed44a1d0d56e5e #: ../../converters.rst:36 msgid "``hwp5odt``: ODT conversion" msgstr "" # c4f68ae4a1294abfb389633cdbfbd335 #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:1 msgid "HWPv5 to ODT converter" msgstr "" # 3de42de0b2fe408280df0c1236fad4e0 # 6d65211ee5dc4aae9509848ed33ad453 # db61f8ccd1b24c80b24fc45cef56d189 #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:3 #: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:3 #: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:3 msgid "Usage::" msgstr "" # 8e52e64968d9457da967a7f1b5826470 # b650b764f0bc40d68cf0b3cff9bec9fc # ea68666462574d1da0411b50c9aaa33b #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:12 #: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:9 #: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:9 msgid "Options::" msgstr "" # 41a0562c7de84f6087262873b7090b36 #: ../../converters.rst:40 msgid "``hwp5html``: HTML conversion" msgstr "" # 7aa5783ccbe141a4b84397507548a5fb #: ../../../pyhwp/hwp5/hwp5html.py:docstring of hwp5.hwp5html:1 msgid "HWPv5 to HTML converter" msgstr "" # c0616df18e5148faa66eeeecbe6920d3 #: ../../converters.rst:44 msgid "``hwp5txt``: text conversion" msgstr "" # 991947c6361e4eb3b2cf1ed6cfd4c15b #: ../../../pyhwp/hwp5/hwp5txt.py:docstring of hwp5.hwp5txt:1 msgid "HWPv5 to text converter" msgstr "" ================================================ FILE: docs/translated/en/LC_MESSAGES/hwp5proc.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-11-03 12:05+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # 8ae66890d3c34537b90c78f06ac868ef #: ../../hwp5proc.rst:2 msgid "``hwp5proc``: HWPv5 processor" msgstr "" # bed00d76e0724575a465d3780b90d7fd #: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:1 msgid "Do various operations on HWPv5 files." msgstr "" # cf8a544eee554bbcb012724d966509dc #: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:3 #: ../../../pyhwp/hwp5/proc/version.py:docstring hwp5.proc.version:3 #: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:3 #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:3 #: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:3 #: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:3 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:3 #: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:3 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:3 #: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:3 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:8 msgid "Usage::" msgstr "" # 3d0680517061451580552a8980218e48 #: ../../hwp5proc.rst:7 msgid "command: ``version``" msgstr "" # cad75aaf5f6a42ae8910807b46c6a1ef #: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:1 msgid "Print HWP file format version of ." msgstr "" # 71d2980c664e45d397af9734a5494c43 #: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:8 #: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:8 #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:8 #: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:10 #: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:10 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:10 #: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:14 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:11 #: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:11 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:18 msgid "Options::" msgstr "" # 4c8936ae2aab43778971aa79502a721e #: ../../hwp5proc.rst:12 msgid "command: ``header``" msgstr "" # cad75aaf5f6a42ae8910807b46c6a1ef #: ../../../pyhwp/hwp5/proc/header.py:docstring of hwp5.proc.header:1 msgid "Print HWP file header." msgstr "" # 5d77d4ca0f394422b709faccc50cfec9 #: ../../hwp5proc.rst:17 msgid "command: ``summaryinfo``" msgstr "" # f8011d33ac684c2b8378e18b9e3abedc #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring of #: hwp5.proc.summaryinfo:1 msgid "Print summary information of ." msgstr "" # b7b04b5b3eb74f0eb111194985e01b0d #: ../../hwp5proc.rst:22 msgid "command: ``ls``" msgstr "" # b44ddef0cd314f458485388b49c636ca #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:1 msgid "List streams in the ." msgstr "" # 43a9eab8ec344cfdb4a33aa848da2a56 #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:22 msgid "Example: List without virtual streams::" msgstr "" # ecd90dc2d4094b3c8052a495648ff78f #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:39 msgid "Example: List virtual streams too::" msgstr "" # 192f6f50cb544c27ad3479b914ef7222 #: ../../hwp5proc.rst:27 msgid "command: ``cat``" msgstr "" # 15eb8617d1d944949717d81ebb9456f1 #: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:1 msgid "" "Extract out the specified stream in the to the standard output." msgstr "" # dcb71948aa8f47e9b064023f21957a35 # 71ecad71cb0f4fe9ba80cf55082e5f8a # ef37227f045746b8997f0c2eb30319cd # 737e619d6b524f69af7005f5ef92ada8 # 07ef11c376cb4d308967be19edcc2881 # 3ae85a74884d4ad9b5c6a8e89747e224 # 6f312dd686584fa4a9dff6f49bbc56b4 # 35fb8b185a6a48dabea56e256d85bfb4 # 4fd7a028c7ff4c11b87ba598655a7907 # 170f201e5a0c4a44abcb0dcea95905d9 # 8329c429e5674eee8022ec39cceed432 # cbf2341d2c7c4149bdc3f07da885e0ae #: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:22 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:22 #: hwp5.proc.unpack:27 ../../../pyhwp/hwp5/proc/records.py:docstring #: hwp5.proc.records:38 hwp5.proc.records:42 hwp5.proc.records:50 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:34 #: hwp5.proc.models:42 hwp5.proc.models:48 hwp5.proc.models:57 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:31 hwp5.proc.xml:39 msgid "Example::" msgstr "" # 8113891b61bb4b339c77d078336391f4 #: ../../hwp5proc.rst:32 msgid "command: ``unpack``" msgstr "" # 8acb7c74c7c748c6b7874f5e33b25dac #: ../../../pyhwp/hwp5/proc/unpack.py:docstring of hwp5.proc.unpack:1 msgid "Extract out streams in the specified to a directory." msgstr "" # 414f684ce5a540d0a5cd18ab8b2a5f24 #: ../../hwp5proc.rst:37 msgid "command: ``records``" msgstr "" # f521cdaf60f4451b88faab8a6235b5a4 #: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:1 msgid "Print the record structure." msgstr "" # 241ea6ff890d49db8d765402e0c7b6b5 # 2a49fc3eff194012a083bf9bc0426d93 #: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:46 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:53 msgid "" "If neither nor is specified, the record stream is " "read from the standard input with an assumption that the input is in the " "format version specified by -V option." msgstr "" # a7dfeeb3a6464db18f930dc3747acc77 #: ../../hwp5proc.rst:42 msgid "command: ``models``" msgstr "" # 058aa45f4ec8463080526f955a7ff2fd #: ../../../pyhwp/hwp5/proc/models.py:docstring of hwp5.proc.models:1 msgid "Print parsed binary models in the specified ." msgstr "" # 7375606379a84a7688a05b9939f6b47d #: ../../hwp5proc.rst:47 msgid "command: ``find``" msgstr "" # 8cdcfec208464d1a9dbafb8d0489fe4b #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:1 msgid "Find record models with specified predicates." msgstr "" # 78f39cd8bb2c46a89417b59931917868 #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:29 msgid "Example: Find paragraphs::" msgstr "" # 9e23e53b35ca4aefb5e8c1ffa99d3d26 #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:35 msgid "" "Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed " "incompletely::" msgstr "" # 7778883e65f849bf99fad8697e25308d #: ../../hwp5proc.rst:52 msgid "command: ``xml`` (*Experimental*)" msgstr "" # b8814a65f0fe49e78ffc380bfa9ce629 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:1 msgid "Transform an HWPv5 file into an XML." msgstr "" # 412afcfa0f324982801d3cfacaf69b86 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:5 msgid "" "This command is experimental. Its output format is subject to change at any " "time." msgstr "" # d89687875f5d4135963346b8e2de3a53 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:36 msgid "" "With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files " "in the output XML." msgstr "" ================================================ FILE: docs/translated/en/LC_MESSAGES/index.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-29 04:47\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # e67bfb841934418fb9aa8d6803ae6f61 #: ../../index.rst:7 msgid "Welcome to pyhwp's documentation!" msgstr "" # fce4f4f87ace4bd79507f35f9f31fc09 #: ../../index.rst:9 msgid "Contents:" msgstr "" # c7b2c8ef52e84e3294e7003ff9087ee0 #: ../../index.rst:23 msgid "Indices and tables" msgstr "" # 8caf5884bb214dacaf993c38e939ca98 #: ../../index.rst:25 msgid ":ref:`genindex`" msgstr "" # 7d2787c7551040dd8500264c58449cc9 #: ../../index.rst:26 msgid ":ref:`modindex`" msgstr "" # a3f0175d485c4314b9d7204608644b95 #: ../../index.rst:27 msgid ":ref:`search`" msgstr "" ================================================ FILE: docs/translated/en/LC_MESSAGES/intro.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-31 08:31+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # 229d7f6cb6e94b80b3ed276154632ea7 #: ../../intro.rst:2 msgid "pyhwp" msgstr "" # 75c5f1d6ce704cfb987f218ddac8e5c9 #: ../../intro.rst:4 msgid "HWP Document Format v5 parser & processor." msgstr "" # bdea2ae9aea14b619ceab66b9f6d685c #: ../../intro.rst:7 msgid "Features" msgstr "" # 6b057a4ced754848bd138b559238556f #: ../../intro.rst:9 msgid "" "Analyze and extract internal streams out from a HWP Document Format v5 file" msgstr "" # a68f3e9e704d45dda4278f0efaf64d8a #: ../../intro.rst:10 msgid "" "(*Experimental*) Conversion to OpenDocument format (.odt) or plain text (." "txt)" msgstr "" # ea5a3a8d49cc413eb9ef1fa6f58633ff #: ../../intro.rst:13 msgid "Installation" msgstr "" # 0d7548139cea4b37bb2298584800bffc #: ../../intro.rst:15 msgid "from `pypi `_::" msgstr "" # 33cd4af4dc6f496bbea8284505308c83 #: ../../intro.rst:20 msgid "Or::" msgstr "" # da4c2f33f39048e9a72ad43807cd7e37 #: ../../intro.rst:25 msgid "Requirements" msgstr "" # db6d63914fb2413d92e5701b694e2b22 #: ../../intro.rst:27 msgid "CPython 2.5, 2.6, 2.7, Jython 2.5.3 or PyPy 2.0.2" msgstr "" # 62d6fe10634a497f8d1ced5bbc8343f7 #: ../../intro.rst:28 msgid "`setuptools `_" msgstr "" # 2cab7c2a85d34ff7adc294b7e48d5575 #: ../../intro.rst:29 msgid "" "`pycrypto `_ (optional, to decode " "distribution docs)" msgstr "" # 070821d20ddc4c6cb15fa70632bf6523 #: ../../intro.rst:32 msgid "Documentation & Development" msgstr "" # f1aaad2952f54b7b9649f8a60173486c #: ../../intro.rst:34 msgid "" "Documentation: `http://pythonhosted.org/pyhwp/ `_ [`한국/조선어 `_] [`develop " "branch `_]" msgstr "" # 85285a15a8574742b5e7e57d5ce9c7bb #: ../../intro.rst:35 msgid "" "Distribution: `http://pypi.python.org/pypi/pyhwp `_" msgstr "" # e638ce10db3e4e07ae412b24bf350d53 #: ../../intro.rst:36 msgid "" "Development: `https://github.com/mete0r/pyhwp `_" msgstr "" # f0f93a1ed81747dc9c7a3c631b971e86 #: ../../intro.rst:37 msgid "" "Issue tracker: `https://github.com/mete0r/pyhwp/issues `_" msgstr "" # 317c633c180a4bda8045e2a5b1e757cf #: ../../intro.rst:38 msgid "Feedbacks & contributions are welcome!" msgstr "" # b200736b60a04a8480b72cb24a513db0 #: ../../intro.rst:41 msgid "Contributors" msgstr "" # 242f97c427344df39bad7d586d5e60c0 #: ../../intro.rst:43 msgid "Maintainer: `mete0r `_" msgstr "" # 3968cb8206a14f398a248eed814ad9aa #: ../../intro.rst:46 msgid "License" msgstr "" # d64dabb371984d2ba250f37e220aa39a #: ../../intro.rst:48 msgid "Copyright (C) 2010-2023 mete0r " msgstr "" # 32ed7d69ae9f4bf5bff4e8d68c113f4c #: ../../intro.rst:52 msgid "" "`GNU Affero General Public License v3.0 `_ `(text version) `_" msgstr "" # 164415d866774a9e9e7ad1008447cf74 #: ../../intro.rst:55 msgid "" "This program is free software: you can redistribute it and/or modify it " "under the terms of the GNU Affero General Public License as published by the " "Free Software Foundation, either version 3 of the License, or (at your " "option) any later version." msgstr "" # 6cc8ef94865e4196898a83b1b80dd2e5 #: ../../intro.rst:60 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details." msgstr "" # d54697f2f7dc44869d43637b7e5dcb68 #: ../../intro.rst:65 msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see ." msgstr "" # c3270c668ef7418e951ef0bc8ac17fdd #: ../../intro.rst:69 msgid "Disclosure" msgstr "" # df57575778df4329940de5a8a2999e73 #: ../../intro.rst:71 msgid "" "This program has been developed in accordance with a public document named " "\"HWP Binary Specification 1.1\" published by `Hancom Inc. `_" msgstr "" ================================================ FILE: docs/translated/ko/LC_MESSAGES/converters.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # mete0r , 2012. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-29 04:47\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: mete0r \n" "Language-Team: LANGUAGE \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # eafb3e22bc3740cb9f41f4f2df9e7800 #: ../../converters.rst:2 msgid "Converters (*Experimental*)" msgstr "변환기들 (*실험적*)" # 6b4bc6aa159144d4bb3a51e48e5909da #: ../../converters.rst:4 msgid "Convert HWPv5 documents into other document formats." msgstr "HWPv5 문서를 다른 문서 형식으로 변환한다." # 5d38e3678e074ca2b766734ae5247217 #: ../../converters.rst:7 msgid "Requirements" msgstr "필요한 것" # 67f8cb2c410f45559ea36edddc5f3bd6 #: ../../converters.rst:8 msgid "" "The conversions are performed with `XSLT `_ " "internally and verified with `Relax NG `_ if possible." msgstr "" "이 변환들은 내부적으로 `XSLT `_ 를 사용하며, 가능" "한 경우 `Relax NG `_ 로 결과물이 검증된다." # 45e757bc017d449a95192776960d8b5d #: ../../converters.rst:11 msgid "" "For these processing, the converters requires `lxml `_ (`homepage `_) or `libxml2 `_'s `xsltproc `_ / `xmllint " "`_ programs." msgstr "" "이를 수행하려면 `lxml `_ (`homepage " "`_)이나 `libxml2 `_ 의 `xsltproc " "`_ / `xmllint `_ 프로그램이 필요하다." # 4bbc12c733e64021b1e57753c362e03f #: ../../converters.rst:17 msgid "For lxml installation::" msgstr "lxml를 설치하려면::" # 87c456830c3f40b0b0922d11b45e7f7a #: ../../converters.rst:22 msgid "or see `Installing lxml `_." msgstr "" "혹은 `Installing lxml `_ 을 참조하라." # 279b07aa798c48238be60111a825bd7a #: ../../converters.rst:24 msgid "" "(Currently conversions with lxml 2.3.5 is tested and verified to be working. " "lxml versions below that may work too, but those are not tested.)" msgstr "" "(현재 lxml 2.3.5 을 이용한 변환은 테스트되었고 잘 작동하는 것으로 확인되었" "다. 그보다 낮은 버전의 lxml으로도 될 수 있으나, 테스트되지는 않았다.)" # 173347f476564817bd87068b394dbd6a #: ../../converters.rst:27 msgid "For ``xsltproc`` / ``xmllint`` installation::" msgstr "``xsltproc`` / ``xmllint`` 를 설치하려면::" # 50fa23c1a25a4330bab200b3d4c5d753 #: ../../converters.rst:31 msgid "" "Optional environment variables ``PYHWP_XSLTPROC`` and ``PYHWP_XMLLINT`` " "specifies the paths of the each programs. (If not set, ``xsltproc`` and/or " "``xmllint`` should be in the one of the directories specified in ``PATH``.)" msgstr "" "선택적으로 설정될 수 있는 ``PYHWP_XSLTPROC`` 과 ``PYHWP_XMLLINT`` 환경변수는 " "각 프로그램의 위치를 지정한다. (만약 설정되지 않으면, ``xsltproc`` 과 " "``xmllint`` 는 환경변수 ``PATH`` 가 지정하는 디렉토리 중 하나에 존재해야 한" "다." # bc95c4ff391e4201a6ed44a1d0d56e5e #: ../../converters.rst:36 msgid "``hwp5odt``: ODT conversion" msgstr "``hwp5odt``: ODT 변환" # c4f68ae4a1294abfb389633cdbfbd335 #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:1 msgid "HWPv5 to ODT converter" msgstr "HWPv5-to-ODT 변환기" # 3de42de0b2fe408280df0c1236fad4e0 # 6d65211ee5dc4aae9509848ed33ad453 # db61f8ccd1b24c80b24fc45cef56d189 #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:3 #: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:3 #: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:3 msgid "Usage::" msgstr "사용법::" # 8e52e64968d9457da967a7f1b5826470 # b650b764f0bc40d68cf0b3cff9bec9fc # ea68666462574d1da0411b50c9aaa33b #: ../../../pyhwp/hwp5/hwp5odt.py:docstring of hwp5.hwp5odt:12 #: ../../../pyhwp/hwp5/hwp5html.py:docstring hwp5.hwp5html:9 #: ../../../pyhwp/hwp5/hwp5txt.py:docstring hwp5.hwp5txt:9 msgid "Options::" msgstr "옵션::" # 41a0562c7de84f6087262873b7090b36 #: ../../converters.rst:40 msgid "``hwp5html``: HTML conversion" msgstr "``hwp5html``: HTML 변환" # 7aa5783ccbe141a4b84397507548a5fb #: ../../../pyhwp/hwp5/hwp5html.py:docstring of hwp5.hwp5html:1 msgid "HWPv5 to HTML converter" msgstr "HWPv5-to-HTML 변환기" # c0616df18e5148faa66eeeecbe6920d3 #: ../../converters.rst:44 msgid "``hwp5txt``: text conversion" msgstr "``hwp5txt``: 텍스트 변환" # 991947c6361e4eb3b2cf1ed6cfd4c15b #: ../../../pyhwp/hwp5/hwp5txt.py:docstring of hwp5.hwp5txt:1 msgid "HWPv5 to text converter" msgstr "HWPv5-to-텍스트 변환기" ================================================ FILE: docs/translated/ko/LC_MESSAGES/hwp5proc.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # mete0r , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-11-03 12:05+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: mete0r \n" "Language-Team: LANGUAGE \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # 8ae66890d3c34537b90c78f06ac868ef #: ../../hwp5proc.rst:2 msgid "``hwp5proc``: HWPv5 processor" msgstr "``hwp5proc``: HWPv5 처리기" # bed00d76e0724575a465d3780b90d7fd #: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:1 msgid "Do various operations on HWPv5 files." msgstr "HWPv5 파일에 여러가지 작업을 수행한다." # cf8a544eee554bbcb012724d966509dc #: ../../../pyhwp/hwp5/proc/__init__.py:docstring of hwp5.proc:3 #: ../../../pyhwp/hwp5/proc/version.py:docstring hwp5.proc.version:3 #: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:3 #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:3 #: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:3 #: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:3 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:3 #: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:3 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:3 #: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:3 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:8 msgid "Usage::" msgstr "사용법::" # 3d0680517061451580552a8980218e48 #: ../../hwp5proc.rst:7 msgid "command: ``version``" msgstr "명령: ``version``" # cad75aaf5f6a42ae8910807b46c6a1ef #: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:1 msgid "Print HWP file format version of ." msgstr "의 HWP 파일 포맷 버전을 출력한다." # 71d2980c664e45d397af9734a5494c43 #: ../../../pyhwp/hwp5/proc/version.py:docstring of hwp5.proc.version:8 #: ../../../pyhwp/hwp5/proc/header.py:docstring hwp5.proc.header:8 #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring hwp5.proc.summaryinfo:8 #: ../../../pyhwp/hwp5/proc/ls.py:docstring hwp5.proc.ls:10 #: ../../../pyhwp/hwp5/proc/cat.py:docstring hwp5.proc.cat:10 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:10 #: ../../../pyhwp/hwp5/proc/records.py:docstring hwp5.proc.records:14 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:11 #: ../../../pyhwp/hwp5/proc/find.py:docstring hwp5.proc.find:11 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:18 msgid "Options::" msgstr "옵션::" # 4c8936ae2aab43778971aa79502a721e #: ../../hwp5proc.rst:12 msgid "command: ``header``" msgstr "명령: ``header``" # cad75aaf5f6a42ae8910807b46c6a1ef #: ../../../pyhwp/hwp5/proc/header.py:docstring of hwp5.proc.header:1 msgid "Print HWP file header." msgstr "HWP 파일 헤더를 출력한다." # 5d77d4ca0f394422b709faccc50cfec9 #: ../../hwp5proc.rst:17 msgid "command: ``summaryinfo``" msgstr "명령: ``summaryinfo``" # f8011d33ac684c2b8378e18b9e3abedc #: ../../../pyhwp/hwp5/proc/summaryinfo.py:docstring of #: hwp5.proc.summaryinfo:1 msgid "Print summary information of ." msgstr "의 요약정보(summary information)을 출력한다." # b7b04b5b3eb74f0eb111194985e01b0d #: ../../hwp5proc.rst:22 msgid "command: ``ls``" msgstr "명령: ``ls``" # b44ddef0cd314f458485388b49c636ca #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:1 msgid "List streams in the ." msgstr "의 스트림 목록을 출력한다." # 43a9eab8ec344cfdb4a33aa848da2a56 #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:22 msgid "Example: List without virtual streams::" msgstr "예: 가상 스트림을 제외한 목록을 출력한다::" # ecd90dc2d4094b3c8052a495648ff78f #: ../../../pyhwp/hwp5/proc/ls.py:docstring of hwp5.proc.ls:39 msgid "Example: List virtual streams too::" msgstr "예: 가상 스트림을 포함한 목록을 출력한다::" # 192f6f50cb544c27ad3479b914ef7222 #: ../../hwp5proc.rst:27 msgid "command: ``cat``" msgstr "명령: ``cat``" # 15eb8617d1d944949717d81ebb9456f1 #: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:1 msgid "" "Extract out the specified stream in the to the standard output." msgstr "의 지정된 스트림을 표준출력으로 출력한다." # dcb71948aa8f47e9b064023f21957a35 # 71ecad71cb0f4fe9ba80cf55082e5f8a # ef37227f045746b8997f0c2eb30319cd # 737e619d6b524f69af7005f5ef92ada8 # 07ef11c376cb4d308967be19edcc2881 # 3ae85a74884d4ad9b5c6a8e89747e224 # 6f312dd686584fa4a9dff6f49bbc56b4 # 35fb8b185a6a48dabea56e256d85bfb4 # 4fd7a028c7ff4c11b87ba598655a7907 # 170f201e5a0c4a44abcb0dcea95905d9 # 8329c429e5674eee8022ec39cceed432 # cbf2341d2c7c4149bdc3f07da885e0ae #: ../../../pyhwp/hwp5/proc/cat.py:docstring of hwp5.proc.cat:22 #: ../../../pyhwp/hwp5/proc/unpack.py:docstring hwp5.proc.unpack:22 #: hwp5.proc.unpack:27 ../../../pyhwp/hwp5/proc/records.py:docstring #: hwp5.proc.records:38 hwp5.proc.records:42 hwp5.proc.records:50 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:34 #: hwp5.proc.models:42 hwp5.proc.models:48 hwp5.proc.models:57 #: ../../../pyhwp/hwp5/proc/xml.py:docstring hwp5.proc.xml:31 hwp5.proc.xml:39 msgid "Example::" msgstr "예::" # 8113891b61bb4b339c77d078336391f4 #: ../../hwp5proc.rst:32 msgid "command: ``unpack``" msgstr "명령: ``unpack``" # 5c354689e91c40c69ad6d750bd240d1c #: ../../../pyhwp/hwp5/proc/unpack.py:docstring of hwp5.proc.unpack:1 msgid "Extract out streams in the specified to a directory." msgstr "의 스트림들을 디렉터리로 풀어낸다." # 414f684ce5a540d0a5cd18ab8b2a5f24 #: ../../hwp5proc.rst:37 msgid "command: ``records``" msgstr "명령: ``records``" # f521cdaf60f4451b88faab8a6235b5a4 #: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:1 msgid "Print the record structure." msgstr "레코드 구조를 출력한다." # 241ea6ff890d49db8d765402e0c7b6b5 # 2a49fc3eff194012a083bf9bc0426d93 #: ../../../pyhwp/hwp5/proc/records.py:docstring of hwp5.proc.records:46 #: ../../../pyhwp/hwp5/proc/models.py:docstring hwp5.proc.models:53 msgid "" "If neither nor is specified, the record stream is " "read from the standard input with an assumption that the input is in the " "format version specified by -V option." msgstr "" "이 주어지지 않으면, 레코드 스트림을 표준 출력에서" "읽어들인다. 이 때 입력의 포맷 버전은 -V 옵션으로 주어진 값인 것으로 가정한다." # a7dfeeb3a6464db18f930dc3747acc77 #: ../../hwp5proc.rst:42 msgid "command: ``models``" msgstr "명령: ``models``" # 058aa45f4ec8463080526f955a7ff2fd #: ../../../pyhwp/hwp5/proc/models.py:docstring of hwp5.proc.models:1 msgid "Print parsed binary models in the specified ." msgstr "지정된 을 파싱한 바이너리 모델들을 출력한다." # 7375606379a84a7688a05b9939f6b47d #: ../../hwp5proc.rst:47 msgid "command: ``find``" msgstr "명령: ``find``" # 8cdcfec208464d1a9dbafb8d0489fe4b #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:1 msgid "Find record models with specified predicates." msgstr "지정된 조건을 만족하는 레코드 모델들을 찾는다." # 78f39cd8bb2c46a89417b59931917868 #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:29 msgid "Example: Find paragraphs::" msgstr "예: 문단 찾기::" # 9e23e53b35ca4aefb5e8c1ffa99d3d26 #: ../../../pyhwp/hwp5/proc/find.py:docstring of hwp5.proc.find:35 msgid "" "Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed " "incompletely::" msgstr "" "예: 온전히 파싱되지 않은 ``HWPTAG_LIST_HEADER`` 레코드들을 찾아 출력한다::" # e531df3e57a1451a8fc331069f009f25 #: ../../hwp5proc.rst:52 msgid "command: ``xml`` (*Experimental*)" msgstr "명령: ``xml`` (*실험적*)" # 36611ef624fe4bec815a5f8e03567251 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:1 msgid "Transform an HWPv5 file into an XML." msgstr "HWPv5 파일을 XML로 변환한다." # 412afcfa0f324982801d3cfacaf69b86 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:5 msgid "" "This command is experimental. Its output format is subject to change at any " "time." msgstr "이 명령은 실험적입니다. 출력 형식은 언제든 바뀔 수 있습니다." # d89687875f5d4135963346b8e2de3a53 #: ../../../pyhwp/hwp5/proc/xml.py:docstring of hwp5.proc.xml:36 msgid "" "With ``--embedbin`` option, you can embed base64-encoded ``BinData/*`` files " "in the output XML." msgstr "" "``--embedbin`` 옵션을 주면, ``BinData/*`` 의 파일들을 base64로 인코딩하여 출" "력 XML에 내장한다." # 63b15ef0ee354277b5963fba9147a8f9 #~ msgid "Print FileHeader of ." #~ msgstr "의 FileHeader를 출력한다." # f521cdaf60f4451b88faab8a6235b5a4 #~ msgid "Print records in the specified ." #~ msgstr "지정된 의 레코드들을 출력한다." ================================================ FILE: docs/translated/ko/LC_MESSAGES/index.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # mete0r , 2012. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-29 04:47\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: mete0r \n" "Language-Team: LANGUAGE \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # e67bfb841934418fb9aa8d6803ae6f61 #: ../../index.rst:7 msgid "Welcome to pyhwp's documentation!" msgstr "" # fce4f4f87ace4bd79507f35f9f31fc09 #: ../../index.rst:9 msgid "Contents:" msgstr "목차:" # c7b2c8ef52e84e3294e7003ff9087ee0 #: ../../index.rst:23 msgid "Indices and tables" msgstr "색인과 목록" # 8caf5884bb214dacaf993c38e939ca98 #: ../../index.rst:25 msgid ":ref:`genindex`" msgstr "" # 7d2787c7551040dd8500264c58449cc9 #: ../../index.rst:26 msgid ":ref:`modindex`" msgstr "" # a3f0175d485c4314b9d7204608644b95 #: ../../index.rst:27 msgid ":ref:`search`" msgstr "" ================================================ FILE: docs/translated/ko/LC_MESSAGES/intro.po ================================================ # SOME DESCRIPTIVE TITLE. # Copyright (C) 2012, mete0r # This file is distributed under the same license as the pyhwp package. # mete0r , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-01-31 08:31+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: mete0r \n" "Language-Team: LANGUAGE \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" # 229d7f6cb6e94b80b3ed276154632ea7 #: ../../intro.rst:2 msgid "pyhwp" msgstr "" # 75c5f1d6ce704cfb987f218ddac8e5c9 #: ../../intro.rst:4 msgid "HWP Document Format v5 parser & processor." msgstr "HWP 문서 포맷 버젼5 파서 & 처리기" # bdea2ae9aea14b619ceab66b9f6d685c #: ../../intro.rst:7 msgid "Features" msgstr "기능" # 6b057a4ced754848bd138b559238556f #: ../../intro.rst:9 msgid "" "Analyze and extract internal streams out from a HWP Document Format v5 file" msgstr "HWP 문서 버젼 5 파일의 내부 스트림을 분석/분리" # a68f3e9e704d45dda4278f0efaf64d8a #: ../../intro.rst:10 msgid "" "(*Experimental*) Conversion to OpenDocument format (.odt) or plain text (." "txt)" msgstr "(*실험적*) OpenDocument 포맷(.odt)나 일반 텍스트 문서로 변환" # ea5a3a8d49cc413eb9ef1fa6f58633ff #: ../../intro.rst:13 msgid "Installation" msgstr "설치" # 0d7548139cea4b37bb2298584800bffc #: ../../intro.rst:15 msgid "from `pypi `_::" msgstr "`pypi `_ 에서::" # 33cd4af4dc6f496bbea8284505308c83 #: ../../intro.rst:20 msgid "Or::" msgstr "혹은::" # da4c2f33f39048e9a72ad43807cd7e37 #: ../../intro.rst:25 msgid "Requirements" msgstr "필요한 것" # db6d63914fb2413d92e5701b694e2b22 #: ../../intro.rst:27 msgid "CPython 2.5, 2.6, 2.7, Jython 2.5.3 or PyPy 2.0.2" msgstr "CPython 2.5, 2.6, 2.7, Jython 2.5.3 혹은 PyPy 2.0.2" # 0d7548139cea4b37bb2298584800bffc #: ../../intro.rst:28 msgid "`setuptools `_" msgstr "" # 2cab7c2a85d34ff7adc294b7e48d5575 #: ../../intro.rst:29 msgid "" "`pycrypto `_ (optional, to decode " "distribution docs)" msgstr "" "`pycrypto `_ (선택적, 배포용 문서" "읽기에 필요)" # 070821d20ddc4c6cb15fa70632bf6523 #: ../../intro.rst:32 msgid "Documentation & Development" msgstr "문서화 및 개발" # 8228a1248e8b4f6fb82be453d4ef4135 #: ../../intro.rst:34 msgid "" "Documentation: `http://pythonhosted.org/pyhwp/ `_ [`한국/조선어 `_] [`develop " "branch `_]" msgstr "" "문서화: `http://pythonhosted.org/pyhwp/ko `_ [`English `_] [`개발 branch `_]" # 0d7548139cea4b37bb2298584800bffc #: ../../intro.rst:35 msgid "" "Distribution: `http://pypi.python.org/pypi/pyhwp `_" msgstr "" "배포: `http://pypi.python.org/pypi/pyhwp `_" # f0f93a1ed81747dc9c7a3c631b971e86 #: ../../intro.rst:36 msgid "" "Development: `https://github.com/mete0r/pyhwp `_" msgstr "" "개발: `https://github.com/mete0r/pyhwp `_" # f0f93a1ed81747dc9c7a3c631b971e86 #: ../../intro.rst:37 msgid "" "Issue tracker: `https://github.com/mete0r/pyhwp/issues `_" msgstr "" "버그 추적: `https://github.com/mete0r/pyhwp/issues `_" # 317c633c180a4bda8045e2a5b1e757cf #: ../../intro.rst:38 msgid "Feedbacks & contributions are welcome!" msgstr "피드백이나 기여 환영합니다." # b200736b60a04a8480b72cb24a513db0 #: ../../intro.rst:41 msgid "Contributors" msgstr "기여한 이들" # 38b9e22103b4432eaf4fdf9f452bc3e3 #: ../../intro.rst:43 msgid "Maintainer: `mete0r `_" msgstr "Maintainer: `mete0r `_" # 3968cb8206a14f398a248eed814ad9aa #: ../../intro.rst:46 msgid "License" msgstr "사용허가" # d64dabb371984d2ba250f37e220aa39a #: ../../intro.rst:48 msgid "Copyright (C) 2010-2023 mete0r " msgstr "" # 32ed7d69ae9f4bf5bff4e8d68c113f4c #: ../../intro.rst:52 msgid "" "`GNU Affero General Public License v3.0 `_ `(text version) `_" msgstr "" # 164415d866774a9e9e7ad1008447cf74 #: ../../intro.rst:55 msgid "" "This program is free software: you can redistribute it and/or modify it " "under the terms of the GNU Affero General Public License as published by the " "Free Software Foundation, either version 3 of the License, or (at your " "option) any later version." msgstr "" # 6cc8ef94865e4196898a83b1b80dd2e5 #: ../../intro.rst:60 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License " "for more details." msgstr "" # d54697f2f7dc44869d43637b7e5dcb68 #: ../../intro.rst:65 msgid "" "You should have received a copy of the GNU Affero General Public License " "along with this program. If not, see ." msgstr "" # c3270c668ef7418e951ef0bc8ac17fdd #: ../../intro.rst:69 msgid "Disclosure" msgstr "공개" # df57575778df4329940de5a8a2999e73 #: ../../intro.rst:71 msgid "" "This program has been developed in accordance with a public document named " "\"HWP Binary Specification 1.1\" published by `Hancom Inc. `_" msgstr "" "pyhwp는 `(주)한글과컴퓨터 `_ 의 한/글 문서 파일(." "hwp) 공개 문서를 참고하여 개발하였습니다." # d21d1a96770c48399bf7d7962f96c816 #~ msgid "" #~ "Documentation: `http://pyhwp.readthedocs.org `_" #~ msgstr "" #~ "문서화: `http://pyhwp.readthedocs.org `_" ================================================ FILE: etc/pylint.rc ================================================ [MASTER] # Specify a configuration file. #rcfile= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Profiled execution. profile=no # Add files or directories to the blacklist. They should be base names, not # paths. ignore=CVS # Pickle collected data for later comparisons. persistent=yes # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [MESSAGES CONTROL] # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time. #enable= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where # it should appear only once). #disable= [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html output-format=text # Include message's id in output include-ids=no # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Tells whether to display a full report or only the messages reports=yes # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectively contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (RP0004). comment=no [FORMAT] # Maximum number of characters on a single line. max-line-length=80 # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' [TYPECHECK] # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of classes names for which member attributes should not be checked # (useful for classes with attributes dynamically set). ignored-classes=SQLObject # When zope mode is activated, add a predefined set of Zope acquired attributes # to generated-members. zope=no # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E0201 when accessed. Python regular # expressions are accepted. generated-members=REQUEST,acl_users,aq_parent [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes [BASIC] # Required attributes for module, separated by a comma required-attributes= # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][a-z0-9_]{2,30}$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=f,i,j,k,ex,Run,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # Regular expression which should only match functions or classes name which do # not require a docstring no-docstring-rgx=__.*__ [VARIABLES] # Tells whether we should check for unused import in __init__ files. init-import=no # A regular expression matching the beginning of the name of dummy variables # (i.e. not used). dummy-variables-rgx=_|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins= [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME,XXX,TODO [CLASSES] # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,string,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report RP0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= [DESIGN] # Maximum number of arguments for function / method max-args=5 # Argument names that match this expression will be ignored. Default to name # with leading underscore ignored-argument-names=_.* # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branchs=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=0 # Maximum number of public methods for a class (see R0904). max-public-methods=20 [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" overgeneral-exceptions=Exception ================================================ FILE: etc/testlog.conf ================================================ [loggers] keys=root,hwp5 [handlers] keys=file [formatters] keys=simple [logger_root] handlers=file level=DEBUG [logger_hwp5] qualname=hwp5 handlers=file level=DEBUG [handler_file] class=handlers.RotatingFileHandler level=DEBUG formatter=simple args=('nosetests.log', 'a', 10*1024*1024) [formatter_simple] format=%(name)s:%(levelname)s:%(message)s datefmt= ================================================ FILE: ez_setup.py ================================================ #!python """Bootstrap setuptools installation If you want to use setuptools in your package's setup.py, just include this file in the same directory with it, and add this to the top of your setup.py:: from ez_setup import use_setuptools use_setuptools() If you want to require a specific version of setuptools, set a download mirror, or use an alternate download directory, you can do so by supplying the appropriate options to ``use_setuptools()``. This file can also be run as a script to install or upgrade setuptools. """ import sys DEFAULT_VERSION = "0.6c11" DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3] md5_data = { 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca', 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb', 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b', 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', 'setuptools-0.6c10-py2.3.egg': 'ce1e2ab5d3a0256456d9fc13800a7090', 'setuptools-0.6c10-py2.4.egg': '57d6d9d6e9b80772c59a53a8433a5dd4', 'setuptools-0.6c10-py2.5.egg': 'de46ac8b1c97c895572e5e8596aeb8c7', 'setuptools-0.6c10-py2.6.egg': '58ea40aef06da02ce641495523a0b7f5', 'setuptools-0.6c11-py2.3.egg': '2baeac6e13d414a9d28e7ba5b5a596de', 'setuptools-0.6c11-py2.4.egg': 'bd639f9b0eac4c42497034dec2ec0c2b', 'setuptools-0.6c11-py2.5.egg': '64c94f3bf7a72a13ec83e0b24f2749b2', 'setuptools-0.6c11-py2.6.egg': 'bfa92100bd772d5a213eedd356d64086', 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20', 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab', 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53', 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2', 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e', 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372', 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902', 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de', 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b', 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03', 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a', 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6', 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a', } import sys, os try: from hashlib import md5 except ImportError: from md5 import md5 def _validate_md5(egg_name, data): if egg_name in md5_data: digest = md5(data).hexdigest() if digest != md5_data[egg_name]: print >>sys.stderr, ( "md5 validation of %s failed! (Possible download problem?)" % egg_name ) sys.exit(2) return data def use_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, download_delay=15 ): """Automatically find/download setuptools and make it available on sys.path `version` should be a valid setuptools version number that is available as an egg for download under the `download_base` URL (which should end with a '/'). `to_dir` is the directory where setuptools will be downloaded, if it is not already available. If `download_delay` is specified, it should be the number of seconds that will be paused before initiating a download, should one be required. If an older version of setuptools is installed, this routine will print a message to ``sys.stderr`` and raise SystemExit in an attempt to abort the calling script. """ was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules def do_download(): egg = download_setuptools(version, download_base, to_dir, download_delay) sys.path.insert(0, egg) import setuptools; setuptools.bootstrap_install_from = egg try: import pkg_resources except ImportError: return do_download() try: pkg_resources.require("setuptools>="+version); return except pkg_resources.VersionConflict, e: if was_imported: print >>sys.stderr, ( "The required version of setuptools (>=%s) is not available, and\n" "can't be installed while this script is running. Please install\n" " a more recent version first, using 'easy_install -U setuptools'." "\n\n(Currently using %r)" ) % (version, e.args[0]) sys.exit(2) except pkg_resources.DistributionNotFound: pass del pkg_resources, sys.modules['pkg_resources'] # reload ok return do_download() def download_setuptools( version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir, delay = 15 ): """Download setuptools from a specified location and return its filename `version` should be a valid setuptools version number that is available as an egg for download under the `download_base` URL (which should end with a '/'). `to_dir` is the directory where the egg will be downloaded. `delay` is the number of seconds to pause before an actual download attempt. """ import urllib2, shutil egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3]) url = download_base + egg_name saveto = os.path.join(to_dir, egg_name) src = dst = None if not os.path.exists(saveto): # Avoid repeated downloads try: from distutils import log if delay: log.warn(""" --------------------------------------------------------------------------- This script requires setuptools version %s to run (even to display help). I will attempt to download it for you (from %s), but you may need to enable firewall access for this script first. I will start the download in %d seconds. (Note: if this machine does not have network access, please obtain the file %s and place it in this directory before rerunning this script.) ---------------------------------------------------------------------------""", version, download_base, delay, url ); from time import sleep; sleep(delay) log.warn("Downloading %s", url) src = urllib2.urlopen(url) # Read/write all in one block, so we don't create a corrupt file # if the download is interrupted. data = _validate_md5(egg_name, src.read()) dst = open(saveto,"wb"); dst.write(data) finally: if src: src.close() if dst: dst.close() return os.path.realpath(saveto) def main(argv, version=DEFAULT_VERSION): """Install or upgrade setuptools and EasyInstall""" try: import setuptools except ImportError: egg = None try: egg = download_setuptools(version, delay=0) sys.path.insert(0,egg) from setuptools.command.easy_install import main return main(list(argv)+[egg]) # we're done here finally: if egg and os.path.exists(egg): os.unlink(egg) else: if setuptools.__version__ == '0.0.1': print >>sys.stderr, ( "You have an obsolete version of setuptools installed. Please\n" "remove it from your system entirely before rerunning this script." ) sys.exit(2) req = "setuptools>="+version import pkg_resources try: pkg_resources.require(req) except pkg_resources.VersionConflict: try: from setuptools.command.easy_install import main except ImportError: from easy_install import main main(list(argv)+[download_setuptools(delay=0)]) sys.exit(0) # try to force an exit else: if argv: from setuptools.command.easy_install import main main(argv) else: print "Setuptools version",version,"or greater has been installed." print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)' def update_md5(filenames): """Update our built-in md5 registry""" import re for name in filenames: base = os.path.basename(name) f = open(name,'rb') md5_data[base] = md5(f.read()).hexdigest() f.close() data = [" %r: %r,\n" % it for it in md5_data.items()] data.sort() repl = "".join(data) import inspect srcfile = inspect.getsourcefile(sys.modules[__name__]) f = open(srcfile, 'rb'); src = f.read(); f.close() match = re.search("\nmd5_data = {\n([^}]+)}", src) if not match: print >>sys.stderr, "Internal error!" sys.exit(2) src = src[:match.start(1)] + repl + src[match.end(1):] f = open(srcfile,'w') f.write(src) f.close() if __name__=='__main__': if len(sys.argv)>2 and sys.argv[1]=='--md5update': update_md5(sys.argv[2:]) else: main(sys.argv[1:]) ================================================ FILE: misc/cleanup-pyc.py ================================================ # -*- coding: utf-8 -*- import logging import os.path logger = logging.getLogger(os.path.splitext(os.path.basename(__file__))[0]) def find_files(root): import os import os.path for name in os.listdir(root): path = os.path.join(root, name) yield path if os.path.isdir(path): for x in find_files(path): yield x def find_pyc_files(root): for path in find_files(root): if path.endswith('.pyc') or path.endswith('$py.class'): yield path def main(): import sys import os.path logging.basicConfig(level=logging.INFO) for root in sys.argv[1:]: if os.path.isdir(root): for path in find_pyc_files(root): if not os.path.isdir(path): logger.info('unlink %s', path) os.unlink(path) if __name__ == '__main__': main() ================================================ FILE: misc/copylxml.py ================================================ import sys import os.path import shutil def main(): if sys.platform == 'win32': try: import lxml except ImportError: print 'no lxml found' else: lxml_path = os.path.dirname(lxml.__file__) dest_path = os.path.join(sys.argv[1], 'lxml') shutil.copytree(lxml_path, dest_path) sys.exit(0) else: sys.exit(os.system('pip install lxml')) if __name__ == '__main__': main() ================================================ FILE: misc/docs-upload ================================================ #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u HTML_BASE=${buildout:directory}/docs/.build/html BUILD_DIR=${buildout:directory}/build cd ${buildout:directory} [ -d $BUILD_DIR/docs/ ] || (echo $BUILD_DIR/docs/ missing; exit 1) [ -d $BUILD_DIR/docs/ko/ ] || (echo $BUILD_DIR/docs/ko/ missing; exit 1) python setup.py upload_docs -r https://pypi.python.org/pypi --upload-dir=$BUILD_DIR/docs ================================================ FILE: misc/fix-coverage.py ================================================ # -*- coding: utf-8 -*- ''' fix pyhwp source paths in coverage.xml ''' import re import sys def main(): f = file(sys.argv[2], 'w') try: for line in file(sys.argv[1]): line = re.sub('filename="[^"]*/hwp5/', 'filename="pyhwp/hwp5/', line) f.write(line) finally: f.close() if __name__ == '__main__': main() ================================================ FILE: misc/install-lxml.py.in ================================================ # -*- coding: utf-8 -*- def main(): import sys import os.path from subprocess import check_call from subprocess import Popen import shutil if sys.platform == 'win32': src = '${lxml-location}' dst = sys.argv[1] src_path = os.path.join(src, 'lxml') dst_path = os.path.join(dst, 'lxml') print('lxml src: %s' % src_path) print('lxml dst: %s' % dst_path) if os.path.exists(src_path): print('lxml: copytree-ing...') shutil.copytree(src_path, dst_path) else: print('lxml: not found. skipping...') sys.exit(0) else: check_call(['pip', 'install', 'lxml']) if __name__ == '__main__': main() ================================================ FILE: misc/mkdir.py ================================================ # -*- coding: utf-8 -*- import sys import os.path import shutil if __name__ == '__main__': d = sys.argv[1] if os.path.exists(d): print('rmtree: %s' % d) shutil.rmtree(d) print('mkdir: %s' % d) os.makedirs(d) ================================================ FILE: misc/oxt-build.in ================================================ #!/bin/sh DIST_DIR=${buildout:directory}/dist SRC_DIR=${buildout:directory}/oxt BIN_DIR=${buildout:directory}/bin VERSION=`git describe --dirty` OUTPUT=$DIST_DIR/hwp5-$VERSION.oxt [ ! -e $DIST_DIR ] && mkdir $DIST_DIR cp $SRC_DIR/description.xml description.xml $BIN_DIR/oxt-desc-version description.xml $VERSION $BIN_DIR/oxt-pkg-build -d description.xml -o $OUTPUT $SRC_DIR pythonpath -E '*.pyc:*.class:*/docopt*:*/OleFileIO*:' $BIN_DIR/oxt-pkg-check $OUTPUT || exit 1 $BIN_DIR/oxt-pkg-show $OUTPUT ln -sf $OUTPUT $DIST_DIR/hwp5.oxt rm -f description.xml ================================================ FILE: misc/prepare-hwp5-xsl-fixtures.py ================================================ # -*- coding: utf-8 -*- from __future__ import with_statement import os.path import logging import sys logger = logging.getLogger('hwp5.xsltests') def find_hwp5files(dir): import glob return glob.glob(os.path.join(dir, '*.hwp')) def main(): doc = ''' convert fixture hwp5 files into *.xml Usage: prepare [--fixtures-dir=] [--out-dir=] prepare --help Options: -h --help Show this screen --fixtures-dir= Fixture directory --out-dir= Output directory ''' from docopt import docopt from hwp5.xmlmodel import Hwp5File args = docopt(doc, version='0.0') logging.getLogger().addHandler(logging.StreamHandler()) logging.getLogger('hwp5.xsltests').setLevel(logging.INFO) if args['--fixtures-dir']: fixture_dir = args['--fixtures-dir'] else: import hwp5 hwp5_pkgdir = os.path.dirname(hwp5.__file__) fixture_dir = os.path.join(hwp5_pkgdir, 'tests', 'fixtures') out_dir = args['--out-dir'] for path in find_hwp5files(fixture_dir): name = os.path.basename(path) rootname = os.path.splitext(name)[0] out_path = rootname + '.xml' if out_dir is not None: if not os.path.exists(out_dir): os.makedirs(out_dir) out_path = os.path.join(out_dir, out_path) logger.info('%s', out_path) opts = {} try: hwp5file = Hwp5File(path) with file(out_path, 'w') as f: hwp5file.xmlevents(**opts).dump(f) except Exception: e = sys.exc_info()[1] logger.exception(e) if __name__ == '__main__': sys.exit(main()) ================================================ FILE: misc/redirect.py ================================================ from __future__ import with_statement import subprocess import sys if __name__ == '__main__': with file(sys.argv[1], 'wb') as f: p = subprocess.Popen(sys.argv[2:], stdout=f) p.wait() raise SystemExit(p.returncode) ================================================ FILE: misc/test-cli.in ================================================ #!/bin/sh PATH=${buildout:bin-directory}:$PATH . ${buildout:directory}/pyhwp-tests/hwp5_cli_tests.sh ================================================ FILE: misc/test-cli.py ================================================ # -*- coding: utf-8 -*- import os.path import logging logger = logging.getLogger('test-cli') def main(): logging.basicConfig(level=logging.INFO) if not os.path.exists('/bin/sh'): logger.warning('/bin/sh: not-found') logger.warning('skipping test-cli') return 0 d = 'pyhwp-tests' shscript = os.path.join(d, 'hwp5_cli_tests.sh') cmd = ['/bin/sh', shscript] cmd = ' '.join(cmd) logger.info('running: %s', cmd) ret = os.system(cmd) logger.info('exit with %d', ret) if ret != 0: raise SystemExit(-1) if __name__ == '__main__': main() ================================================ FILE: misc/test-coverage ================================================ #!/bin/sh # Remove old results ${buildout:directory}/bin/coverage erase # Collect test coverage results for all packages # Runs a code coverage analysis on top of the "bin/test" script for # all packages. The data will be collected in a ".coverage" output file # in the buildout directory. ${buildout:directory}/bin/coverage run -p --source=hwp5 ${buildout:directory}/bin/test # Combine all package analysis ${buildout:directory}/bin/coverage combine # Generates a "coverage.xml" file that Jenkins can read and process from the # ".coverage" file that the coverage report created. ${buildout:directory}/bin/coverage xml -i -o ${buildout:directory}/coverage.xml ================================================ FILE: misc/test-for-bisect ================================================ #!/bin/sh # usage: git bisect run bin/test-for-bisect cd ${buildout:directory} bin/buildout -o && bin/test && exit 0 || exit 1 ================================================ FILE: misc/test-in-lo.py ================================================ #!/usr/bin/python # -*- coding: utf-8 -*- def main(): import os args = ['${buildout:bin-directory}/oxt-test', '${buildout:parts-directory}/test'] os.system(' '.join(args)) if __name__ == '__main__': main() ================================================ FILE: misc/test-pypi.in ================================================ #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u cd ${buildout:directory} VERSION=`cat VERSION.txt` mkdir -p releases rm -rf releases/$VERSION mkvenv cp2 releases/$VERSION set +u . releases/$VERSION/bin/activate set -u pip install pyhwp==$VERSION hwp5proc --version | head -n 1 | grep "$VERSION$" ================================================ FILE: misc/test-sdist ================================================ #!/bin/bash # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u VERSION=`python setup.py --version` echo pyhwp version: $VERSION VENV=venv-$VERSION SDIST=dist/pyhwp-$VERSION.tar.gz [ -f $SDIST ] && rm -f $SDIST python setup.py sdist > sdist.log tar tfz $SDIST | grep -F "pyhwp-$VERSION/README" tar tfz $SDIST | grep -F "pyhwp-$VERSION/COPYING" tar tfz $SDIST | grep -F "pyhwp-$VERSION/pyhwp/hwp5/README" tar tfz $SDIST | grep -F "pyhwp-$VERSION/pyhwp/hwp5/COPYING" [ -f $VENV/bin/activate ] || mkvenv cp2 $VENV set +eu . $VENV/bin/activate set -eu pip install $SDIST python -c 'print __import__("pkg_resources").resource_filename("hwp5", "README")' | grep README python -c 'print __import__("pkg_resources").resource_filename("hwp5", "COPYING")' | grep COPYING hwp5proc --version | grep -F "$VERSION" hwp5odt --version | grep -F "$VERSION" bin/test-cli > test-cli.log pip uninstall pyhwp --yes rm -rf $VENV echo 'test-sdist SUCCESSFUL' ================================================ FILE: misc/test-sdist.in ================================================ #!/bin/sh bash ${buildout:directory}/misc/test-sdist ================================================ FILE: misc/test-upload.in ================================================ #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u cd ${buildout:directory} VERSION=`cat VERSION.txt` python setup.py sdist upload -r https://testpypi.python.org/pypi | tee upload.log tail -n 1 upload.log | grep 200 rm -rf testpypi mkvenv cp2 testpypi set +u . testpypi/bin/activate set -u pip install --download=testpypi --no-deps --index-url https://testpypi.python.org/simple/ pyhwp==$VERSION pip install --extra-index-url https://testpypi.python.org/simple/ pyhwp==$VERSION hwp5proc --version | head -n 1 | grep "$VERSION$" ================================================ FILE: misc/test-xsl.in ================================================ #!/bin/sh set -e set -u cd ${buildout:directory} rm -rf test-xsl mkdir -p test-xsl IMPORT_DIR=${buildout:directory}/test-xsl/fixtures GEN_DIR=${buildout:directory}/test-xsl/gen mkdir -p $IMPORT_DIR mkdir -p $GEN_DIR ${buildout:bin-directory}/console ${buildout:directory}/misc/prepare-hwp5-xsl-fixtures.py --fixtures-dir=${buildout:directory}/pyhwp-tests/hwp5_tests/fixtures --out-dir=$IMPORT_DIR ${buildout:bin-directory}/xsltest --styles-dir=${buildout:directory}/pyhwp/hwp5/xsl --import-dir=$IMPORT_DIR --gen-dir=$GEN_DIR ${buildout:directory}/pyhwp-tests/hwp5_xsl_tests test_xsl_cov="${buildout:bin-directory}/test-xsl-cov" [ ! -e "$test_xsl_cov" ] || "$test_xsl_cov" xsltcoverage.xml ${buildout:directory}/test-xsl/gen/*.py ================================================ FILE: misc/upload ================================================ #!/bin/sh cd ${buildout:directory} python setup.py sdist upload --sign ================================================ FILE: notebooks/.gitignore ================================================ .ipynb_checkpoints ================================================ FILE: oxt/Addons.xcu ================================================ pyhwp _self service:pyhwp.HelloWorld?insert Insert Hello World _self com.sun.star.text.TextDocument ================================================ FILE: oxt/Filter.xcu ================================================ 5 hwp5 com.sun.star.text.TextDocument hwp5.Importer HWP Document Format v5 IMPORT ALIEN 3RDPARTYFILTER ================================================ FILE: oxt/META-INF/manifest.xml ================================================ ================================================ FILE: oxt/Makefile ================================================ OXTPKG:=../dist/hwp5-$(shell git describe --dirty).oxt UNOPKG=unopkg $(OXTPKG): ../bin/oxt-build validate: $(OXTPKG) $(UNOPKG) validate -v hwp5.oxt install: $(OXTPKG) $(UNOPKG) add -v -s $(OXTPKG) uninstall: $(UNOPKG) remove -f hwp5.oxt reinstall: uninstall install clean: $(RM) $(OXTPKG) .PHONY: validate install uninstall clean ================================================ FILE: oxt/Types.xcu ================================================ hwp5.Detector hwp application/x-hwp true hwp5 HWP Document Format v5 ================================================ FILE: oxt/components.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010,2011,2012 https://github.com/mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # import logging import os # initialize logging system logger = logging.getLogger('hwp5') loglevel = os.environ.get('PYHWP_LOGLEVEL') if loglevel: loglevel = dict(DEBUG=logging.DEBUG, INFO=logging.INFO, WARNING=logging.WARNING, ERROR=logging.ERROR, CRITICAL=logging.CRITICAL).get(loglevel.upper(), logging.WARNING) logger.setLevel(loglevel) del loglevel filename = os.environ.get('PYHWP_LOGFILE') if filename: logger.addHandler(logging.FileHandler(filename)) del filename import sys logger.info('sys.executable = %s', sys.executable) logger.info('sys.version = %s', sys.version) logger.info('sys.path:') for path in sys.path: logger.info('- %s', path) try: import uno import unohelper import unokit from unokit.util import propseq_to_dict from unokit.util import dict_to_propseq from unokit.util import xenumeration_list from unokit.adapters import InputStreamFromFileLike from com.sun.star.lang import XInitialization from com.sun.star.document import XFilter, XImporter, XExtendedFilterDetection from com.sun.star.task import XJobExecutor def log_exception(f): def wrapper(*args, **kwargs): try: return f(*args, **kwargs) except Exception as e: logger.exception(e) raise return wrapper g_ImplementationHelper = unohelper.ImplementationHelper() def implementation(component_name, *services): def decorator(cls): g_ImplementationHelper.addImplementation(cls, component_name, services) return cls return decorator @implementation('hwp5.Detector', 'com.sun.star.document.ExtendedTypeDetection') class Detector(unokit.Base, XExtendedFilterDetection): @log_exception @unokit.component_context def detect(self, mediadesc): from hwp5_uno import typedetect logger.info('hwp5.Detector detect()') desc = propseq_to_dict(mediadesc) for k, v in desc.items(): logger.debug('\t%s: %s', k, v) inputstream = desc['InputStream'] typename = typedetect(inputstream) logger.info('hwp5.Detector: %s detected.', typename) return typename, mediadesc @implementation('hwp5.Importer', 'com.sun.star.document.ImportFilter') class Importer(unokit.Base, XInitialization, XFilter, XImporter): @log_exception @unokit.component_context def initialize(self, args): logger.debug('Importer initialize: %s', args) @log_exception @unokit.component_context def setTargetDocument(self, target): logger.debug('Importer setTargetDocument: %s', target) self.target = target @log_exception @unokit.component_context def filter(self, mediadesc): from hwp5.dataio import ParseError from hwp5_uno import HwpFileFromInputStream from hwp5_uno import load_hwp5file_into_doc logger.debug('Importer filter') desc = propseq_to_dict(mediadesc) logger.debug('mediadesc: %s', str(desc.keys())) for k, v in desc.items(): logger.debug('%s: %s', k, str(v)) statusindicator = desc.get('StatusIndicator') inputstream = desc['InputStream'] hwpfile = HwpFileFromInputStream(inputstream) try: load_hwp5file_into_doc(hwpfile, self.target, statusindicator) except ParseError as e: e.print_to_logger(logger) return False except Exception as e: logger.exception(e) return False else: return True @unokit.component_context def cancel(self): logger.debug('Importer cancel') @implementation('hwp5.TestJob') class TestJob(unokit.Base, XJobExecutor): @unokit.component_context def trigger(self, args): logger.debug('testjob %s', args) wd = args import os original_wd = os.getcwd() try: os.chdir(wd) from unittest import TextTestRunner testrunner = TextTestRunner() from unittest import TestSuite testrunner.run(TestSuite(self.tests())) finally: os.chdir(original_wd) def tests(self): from unittest import defaultTestLoader yield defaultTestLoader.loadTestsFromTestCase(DetectorTest) yield defaultTestLoader.loadTestsFromTestCase(ImporterTest) from hwp5_uno.tests import test_hwp5_uno yield defaultTestLoader.loadTestsFromModule(test_hwp5_uno) from hwp5.tests import test_suite yield test_suite() from unittest import TestCase class DetectorTest(TestCase): def test_detect(self): context = uno.getComponentContext() from hwp5.tests.fixtures import open_fixture f = open_fixture('sample-5017.hwp', 'rb') stream = InputStreamFromFileLike(f) mediadesc = dict_to_propseq(dict(InputStream=stream)) svm = context.ServiceManager detector = svm.createInstanceWithContext('hwp5.Detector', context) typename, mediadesc2 = detector.detect(mediadesc) self.assertEqual('hwp5', typename) class ImporterTest(TestCase): def test_filter(self): context = uno.getComponentContext() from hwp5.tests.fixtures import open_fixture f = open_fixture('sample-5017.hwp', 'rb') stream = InputStreamFromFileLike(f) mediadesc = dict_to_propseq(dict(InputStream=stream)) svm = context.ServiceManager importer = svm.createInstanceWithContext('hwp5.Importer', context) desktop = svm.createInstanceWithContext('com.sun.star.frame.Desktop', context) doc = desktop.loadComponentFromURL('private:factory/swriter', '_blank', 0, ()) importer.setTargetDocument(doc) importer.filter(mediadesc) text = doc.getText() paragraphs = text.createEnumeration() paragraphs = xenumeration_list(paragraphs) for paragraph_ix, paragraph in enumerate(paragraphs): logger.info('Paragraph %s', paragraph_ix) logger.debug('%s', paragraph) services = paragraph.SupportedServiceNames if 'com.sun.star.text.Paragraph' in services: portions = xenumeration_list(paragraph.createEnumeration()) for portion_ix, portion in enumerate(portions): logger.info('Portion %s: %s', portion_ix, portion.TextPortionType) if portion.TextPortionType == 'Text': logger.info('- %s', portion.getString()) elif portion.TextPortionType == 'Frame': logger.debug('%s', portion) textcontent_name = 'com.sun.star.text.TextContent' en = portion.createContentEnumeration(textcontent_name) contents = xenumeration_list(en) for content in contents: logger.debug('content: %s', content) content_services = content.SupportedServiceNames if ('com.sun.star.drawing.GraphicObjectShape' in content_services): logger.info('graphic url: %s', content.GraphicURL) logger.info('graphic stream url: %s', content.GraphicStreamURL) if 'com.sun.star.text.TextTable' in services: pass else: pass paragraph_portions = paragraphs[0].createEnumeration() paragraph_portions = xenumeration_list(paragraph_portions) self.assertEqual(u'한글 ', paragraph_portions[0].getString()) paragraph_portions = paragraphs[16].createEnumeration() paragraph_portions = xenumeration_list(paragraph_portions) contents = paragraph_portions[1].createContentEnumeration('com.sun.star.text.TextContent') contents = xenumeration_list(contents) self.assertEqual('image/x-vclgraphic', contents[0].Bitmap.MimeType) #self.assertEqual('vnd.sun.star.Package:bindata/BIN0003.png', # contents[0].GraphicStreamURL) graphics = doc.getGraphicObjects() graphics = xenumeration_list(graphics.createEnumeration()) logger.debug('graphic: %s', graphics) frames = doc.getTextFrames() frames = xenumeration_list(frames.createEnumeration()) logger.debug('frames: %s', frames) except Exception as e: logger.exception(e) raise ================================================ FILE: oxt/description/desc_en.txt ================================================ This extension enables you to read HWP Documents (v5 formats only). ================================================ FILE: oxt/description/desc_ko.txt ================================================ 한글(HWP) 문서 (포맷 버젼 5)을 읽을 수 있습니다. ================================================ FILE: oxt/description.xml ================================================ HWP Document Format v5 Filter HWP 문서 포맷 (버젼 5) 필터 mete0r mete0r ================================================ FILE: oxt/doc/references.txt ================================================ http://www.openoffice.org/framework/documentation/filters/example.html - reading of the entire filters configuration - register a new filter libreoffice-wiki-publisher - how to write Types.xcu, Filter.xcu TypeDetection: filter/source/config/cache/typedetection.cxx FilterFactory: filter/source/config/cache/filterfactory.cxx OwnSubFilter: sfx2/source/doc/ownsubfilterservice.cxx xmloff writer8 'Deep' DetectService: com.sun.star.text.FormatDetector sw/source/ui/uno/swdetect.cxx from framework/source/loadenv/loadenv.cxx: 726│ // (iii) If a FrameLoader service (or at least 727│ // a Filter) can be found, which supports 728│ // this URL - it must be a loadable content. 729│ // Because both items are registered for types 730│ // its enough to check for frame loaders only. 731│ // Mos of our filters are handled by our global 732│ // default loader. But there exist some specialized 733│ // loader, which does not work on top of filters! 734│ // So its not enough to search on the filter configuration. 735│ // Further its not enough to search for types! 736│ // Because there exist some types, which are referenced by 737│ // other objects ... but not by filters nor frame loaders! create FrameLoaderFactory FrameLoaderFactory.createSubSetEnumerationByProperties( "Types" = [ types... ] ) -> create a com.sun.star.comp.office.FrameLoader() and FrameLoader->load(descriptor, frame) sfx2/source/view/frmloader.cxx SfxFrameLoaderImpl::impl_determineFilter() sfx2/source/doc/sfxbasemodel.cxx SfxBaseModel::load(seqArguments) arg[0] = '' MacroExecutionMode = 3 UpdateDocMode = 2 FileName = fullurl Stream = stream StatusIndicator = Frame = UCBContent = FrameName = URL = InputStream = stream Referer = private:user InteractionHandler = interactionhandler TypeName = writer8 FilterName = writer8 DocumentService = com.sun.star.text.TextDocument SfxObjectShell::DoLoad (this=0x8ae3100, pMed=0x8d111a8) at /home/mete0r/prj/libreoffice/sfx2/source/doc/objstor.cxx:584 SfxObjectShell::HandleFilter at /home/mete0r/prj/libreoffice/sfx2/source/doc/objstor.cxx:841 at 647: xStorage = pMedium->GetStorage() at sfx2/source/doc/docfile.cxx:1303 : comphelper::OStorageHelper::GetStorageFactory->createInstanceWithArguments( (inputstream, embed::ElementModes::Read) SfxObjectShell::LoadOwnFormat at /home/mete0r/prj/libreoffice/sfx2/source/doc/objstor.cxx:2962 SwDocShell::Load() at /home/mete0r/prj/libreoffice/sfx2/source/ui/app/docshini.cxx:540 SfxObjectShell::Load() at /home/mete0r/prj/libreoffice/sfx2/source/doc/objstor.cxx:460 SfxObjectShell::GeneralInit_Impl() at /home/mete0r/prj/libreoffice/sfx2/source/doc/objstor.cxx:415 SwReader::Read() at /home/mete0r/prj/libreoffice/sfx2/source/filter/basflt/shellio.cxx XMLReader::Read() at /home/mete0r/prj/libreoffice/sw/source/filter/xml/swxml.cxx line 562: xGraphicResolver = SvXMLGraphicHelper::Create(xStorage) xObjectResolver = create SvXMLEmbeddedObjectHelper(xStorage, rDoc.GetPersist()) line 728 - filterargs: xInfoSet = create a XPropertySet xStatusIndicator xGraphicResolver = xGraphicResolver xObjectResolver = xObjectResolver aLateInitSettings = NamedValue("LateInitSettings", com.sun.star.document.NamedPropertyValues()) line 892 - XDocumentMetadataAccess xDMA = xModel - baseuri = sfx2::createBaseURI(context, storage, "file:///home/mete0r/prj/pyhwp/5017.odt", ""); - xDMA.loadMetadataFromStorage(storage, baseuri, interactionhandler) SfxBaseModel::loadMetadataFromStorage() at sfx2/source/doc/sfxbasemodel.cxx:4325 DocumentMetadataAccess::loadMetadataFromStorage() at sfx2/source/doc/DocumentMetadataAccess.cxx:1098 - baseuri = "file:///home/mete0r/prj/pyhwp/5017.odt/" line 922 parse streams: Meta.xml com.sun.star.comp.Writer.XMLOasisMetaImporter settings.xml com.sun.star.comp.Writer.XMLOasisSettingsImporter styles.xml content.xml XMLReader::ReadThroughComponent() at /home/mete0r/prj/libreoffice/sfx2/source/filter/filter/xml/swxml.cxx:142 - create ""com.sun.star.comp.Writer.XMLOasisStylesImporter" and SAX Parser - parse styles.xml - create ""com.sun.star.comp.Writer.XMLOasisContentImporter" and SAX Parser - parse content.xml 그림 객체 Import SvXMLImport 초기화 SvXMLImport::initialize() (from SwXMLImport) - BaseURI: file:///home/mete0r/prj/pyhwp/5017.odt -> mpImpl->aBaseURL/aDocBaseURL - StreamRelPath: '' -> sRelPath - StreamName: 'styles.xml' -> sName ResolveGraphicObjectURL()이 호출되는 건 XMLOasisContentImporter [xxx.odt, 5017.odt] in xmloff/source/text/XMLTextFrameContext.cxx:1418 XMLTextCreateFrameContext::CreateChildContext() at line 1450: pContext = GetImport().GetShapeImport() ->CreateFrameChildContext(rLocalName='image'...) pContext: an instance of SvXMLImportContext m_xImplContext = pContext [xxx.odt] in XMLTextFrameContext_Impl::Create() sHRef: "Picture/123.jpg" in xmloff/source/text/XMLTextFrameContext.cxx:566 create an instance of "com.sun.star.text.GraphicObject" and get PropertySet get XMLTextImportHelper at line 724: sHRef = GetImport().ResolveGraphicObjectURL(sHRef, load_on_demand = true) sHRef: "vnd.sun.star.Package:Picture/123.jpg" at line 758: xTxtCntnt = xPropSet xTextImportHelper->insertTextContent(xTxtCntnt) [5017.odt]: GetImport() : an instance of SvXMLImport SvXMLImport has a mxGraphicResolver mxGraphicResolver: XGraphicObjectResolver #1 0x038e4dc1 in SvXMLImport::startElement (this=0x9620f80, rName="draw:image", xAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/core/xmlimp.cxx:647 #0 XMLTextFrameContext::CreateChildContext (this=0x9515558, p_nPrefix=4, rLocalName="image", xAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/text/XMLTextFrameContext.cxx:1418 namespace: draw (XML_TEXT_FRAME_GRAPHIC) m_HasAutomaticStyleWithoutParentStyle = 1 at 1450: pContext = GetImport()->GetShapeImport()->CreateFrameChildChildContext() #0 XMLShapeImportHelper::CreateFrameChildContext (this=0x8fc3ab0, rImport=..., p_nPrefix=4, rLocalName="image", rAttrList=..., rShapes=..., rFrameAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/draw/shapeimport.cxx:689 pContext = new SdXMLGraphicObjectShapeContext() at 734: pContext->processAttribute() for attr in xAttrList href: 'bindata/BIN0002.jpg' --> maURL style-name: 'DrawFrame-1' x: '111.73pt' y: '4.9pt' anchor-type: 'paragraph' z-index: '2' width: 57.68mm height: 34.61mm returns #1 0x038e4dc1 in SvXMLImport::startElement (this=0x9620f80, rName="draw:image", xAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/core/xmlimp.cxx:687 #3 0x0395b743 in SdXMLGraphicObjectShapeContext::StartElement (this=0x95bca30) at /home/mete0r/prj/libreoffice/xmloff/source/draw/ximpshap.cxx:2362 pService: "com.sun.star.drawing.GraphicShapeObject" #2 0x039576e9 in SdXMLShapeContext::AddShape (this=0x95bca30, pServiceName=0x3a97430 "com.sun.star.drawing.GraphicObjectShape") at /home/mete0r/prj/libreoffice/xmloff/source/draw/ximpshap.cxx:523 xShape = createInstance of pServiceName #1 0x03957063 in SdXMLShapeContext::AddShape (this=0x95bca30, xShape=...) XMLShapeImportHelper = GetImport().GetShapeImport() at /home/mete0r/prj/libreoffice/xmloff/source/draw/ximpshap.cxx:446 #0 XMLTextShapeImportHelper::addShape (this=0x8e85588, rShape=..., xAttrList=..., rShapes=...) rImport: maybe TextDocument xTxtImport = rImport.GetTextImport() at line 94 at /home/mete0r/prj/libreoffice/xmloff/source/text/XMLTextShapeImportHelper.cxx:140 XTextContent->InsertTextContent() at 2388 mbIsPlaceholder: false maURL: 'bindata/BIN0002.jpg' aAny = GetImport().ResolveGraphicObjectURL( maURL, GetImport().isGraphicLoadOnDemandSupported() ) aAny: 'vnd.sun.star.Package:bindata/BIN0002.jpg' mxShape.setPropertyValue('GraphicURL', aAny) mxShape.setPropertyValue('GraphicStreamURL', aAny) [xxx.odt]: #1 0x038e4dc1 in SvXMLImport::startElement (this=0x9620f80, rName="draw:image", xAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/core/xmlimp.cxx:647 #0 XMLTextFrameContext::CreateChildContext (this=0x9515558, p_nPrefix=4, rLocalName="image", xAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/text/XMLTextFrameContext.cxx:1418 namespace: draw (XML_TEXT_FRAME_GRAPHIC) m_HasAutomaticStyleWithoutParentStyle = 0 at line 1492 pContext = new XMLTextFrameContext_Impl() #1 0x03a180c8 in XMLTextFrameContext_Impl (this=0x93cd8a0, rImport=..., nPrfx=, rLName="image", rAttrList=..., eATyp=com::sun::star::text::TextContentAnchorType_AT_PARAGRAPH, nNewType=2, rFrameAttrList=...) at /home/mete0r/prj/libreoffice/xmloff/source/text/XMLTextFrameContext.cxx:1067 #0 XMLTextFrameContext_Impl::Create (this=0x93cd8a0) at /home/mete0r/prj/libreoffice/xmloff/source/text/XMLTextFrameContext.cxx:758 nType = 2 XMLTextImportHeler xTextImportHelper.InsertTextContent() sHRef = 'vnd.sun.star.Package:Pictures/1234...1234.jpg' sdr::contact::ViewObjectContactOfGraphic::doAsynchGraphicLoading() 에서부터 이미지 로딩 1. ODT 패키지를 로딩할 때, 패키지에 포함된 그림 파일들을 바로 이어서 로딩하거나, LoadOnDemand 할 수 있음. SvXMLImport::ResolveGraphicObjectURL(url, loadondemand) 참조. 그런데 SdXMLGraphicObjectShapeContext::StartElement()는 (line 2388 부근에서) SvXMLImport::ResolveGraphicObjectURL을 호출할 때 SvXMLImport::IsGraphicLoadOnDemandSupported()를 호출하는데, SvXMLImport는 기본값으로 true를 반환하며, SwXMLImport도 마찬가지인 듯 하다. 그래서 패키지를 처음 로딩할 때 이미지가 로딩되지 않고, 이후에 UI에서 on demand로 이미지를 로딩하는 듯 하다. (sdr::contact::ViewObjectContactOfGraphic::doAsynchGraphicLoading()에서부터 추적) 그런데 실제로는 load on demand 과정에서 실패하는데, Storage에서 그림 스트림을 얻어내는 과정에서 실패한다. (comphelper::OStorageHelper::GetStreamAtPackageURL()에서부터 추적) 일단 패키지 Storage가 (hwp에서 odt로 변환한) 임시 파일에 기반해 있기 때문에 추후 on demand 과정에서는 이 파일이 이미 사라졌기 때문이 아닌가 추측해볼 수 있는데, hwp5file_convert_to_odtpkg_file()에서 임시파일 대신 특정한 위치에 고정된 파일을 만들어서 실험해봤을 때도 역시 그림 스트림을 얻어내는데서 실패하는 것으로 보아, 다른 이유일 수도 있음. 2. on demand 로딩을 포기하고 content.xml을 로딩하면서 그림들도 함께 로딩되도록 하면, 그림들이 제대로 로딩되는 것을 확인할 수 있다: com.sun.star.comp.Writer.XMLOasisContentImporter를 초기화할 때, 필터 인자로 graphic resolver를 다음처럼 초기화하여 넘겨준다. createInstanceWithArguments('com.sun.star.comp.Svx.GraphicImportHelper', (storage,)) 그리고 디버거상에서 SvXMLImporter::initialize()를 수행한 뒤, mbIsGraphicLoadOnDemandSupported = false로 강제로 설정한 뒤 진행하면 그림들이 제대로 로딩됨을 확인할 수 있다. 그런데 문제는 SvXMLImporter::mbIsGraphicLoadOnDemandSupported는 처음에 true로 설정된 뒤, 바뀌지 않는다는 것이다. 위처럼 디버거 상에서 강제로 false로 설정해주지 않는 한, SvXMLImporter::ResolveGraphicObjectURL(url, loadondemand)는 늘 두번째 인자를 true로 불리게 된다. (SdXMLGraphicObjectShapeContext::StartElement()의 라인 2388 부근) ================================================ FILE: oxt/registration/COPYING.txt ================================================ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . ================================================ FILE: pyhwp_uno/hwp5_uno/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010,2011,2012 https://github.com/mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # import uno import unohelper from unokit.services import css from unokit.adapters import InputStreamFromFileLike from unokit.adapters import OutputStreamToFileLike from unokit.adapters import FileFromStream from com.sun.star.io import XStreamListener import logging logger = logging.getLogger('hwp5.uno') class OleStorageAdapter(object): def __init__(self, oless): ''' an OLESimpleStorage to hwp5 storage adapter. :param oless: an instance of OLESimpleStorage ''' self.oless = oless def __iter__(self): return iter(self.oless.getElementNames()) def __getitem__(self, name): from com.sun.star.container import NoSuchElementException try: elem = self.oless.getByName(name) except NoSuchElementException: raise KeyError(name) services = elem.SupportedServiceNames if 'com.sun.star.embed.OLESimpleStorage' in services: return OleStorageAdapter(elem) else: elem.closeInput() return OleStorageStream(self.oless, name) class OleStorageStream(object): def __init__(self, oless, name): self.oless = oless self.name = name def open(self): stream = self.oless.getByName(self.name) return FileFromStream(stream) def HwpFileFromInputStream(inputstream): ''' Hwp5File from com.sun.star.io.InputStream ''' olestorage = css.embed.OLESimpleStorage(inputstream) adapter = OleStorageAdapter(olestorage) from hwp5.xmlmodel import Hwp5File return Hwp5File(adapter) def StorageFromInputStream(inputstream): factory = css.embed.StorageFactory() return factory.createInstanceWithArguments((inputstream, 1)) # com.sun.star.embed.ElementModes.READ def XSLTTransformer(stylesheet_url, source_url, source_url_base): from com.sun.star.beans import NamedValue args = (NamedValue('StylesheetURL', stylesheet_url), NamedValue('SourceURL', source_url), NamedValue('SourceBaseURL', source_url_base)) #return css.comp.documentconversion.LibXSLTTransformer(*args) return css.comp.JAXTHelper(*args) def haveXSLTTransformer(): transformer = XSLTTransformer('', '', '') return transformer is not None class OneshotEvent(object): def __init__(self): import os pin, pout = os.pipe() self.pin = os.fdopen(pin, 'r') self.pout = os.fdopen(pout, 'w') def wait(self): self.pin.read() self.pin.close() def signal(self): self.pout.close() class XSLTListener(unohelper.Base, XStreamListener): def __init__(self): self.event = OneshotEvent() def started(self): logger.info('XSLT started') def closed(self): logger.info('XSLT closed') self.event.signal() def terminated(self): logger.info('XSLT terminated') self.event.signal() def error(self, exception): logger.error('XSLT error: %s', exception) self.event.signal() def disposing(self, source): logger.info('XSLT disposing: %s', source) self.event.signal() def xslt_with_libreoffice(xsl_path, inp_path, out_path): import os.path xsl_path = os.path.abspath(xsl_path) xsl_name = os.path.basename(xsl_path) xsl_url = uno.systemPathToFileUrl(xsl_path) inp_path = os.path.abspath(inp_path) inp_file = file(inp_path) inp_strm = InputStreamFromFileLike(inp_file, dontclose=True) out_path = os.path.abspath(out_path) out_file = file(out_path, 'w') out_strm = OutputStreamToFileLike(out_file, dontclose=True) transformer = XSLTTransformer(xsl_url, '', '') transformer.InputStream = inp_strm transformer.OutputStream = out_strm listener = XSLTListener() transformer.addListener(listener) transformer.start() logger.info('xslt.soffice(%s) start', xsl_name) try: listener.event.wait() finally: logger.info('xslt.soffice(%s) end', xsl_name) transformer.removeListener(listener) return dict() def load_hwp5file_into_doc(hwp5file, doc, statusindicator=None): odtpkg = convert_hwp5file_into_odtpkg(hwp5file) logger.debug('hwp to odtpkg completed') load_odt_from_storage(doc, odtpkg, statusindicator) def convert_hwp5file_into_odtpkg(hwp5file): from tempfile import TemporaryFile tmpfile = TemporaryFile() import os tmpfile2 = os.fdopen( os.dup(tmpfile.fileno()), 'r') from zipfile import ZipFile zf = ZipFile(tmpfile, 'w') from hwp5.hwp5odt import ODTPackage odtpkg = ODTPackage(zf) try: from hwp5.hwp5odt import Converter import hwp5.plat if haveXSLTTransformer(): xslt = xslt_with_libreoffice else: # we use default xslt xslt = hwp5.plat.get_xslt() # convert without RelaxNG validation convert = Converter(xslt) # Embed images: see #32 - https://github.com/mete0r/pyhwp/issues/32 convert(hwp5file, odtpkg, embedimage=True) finally: odtpkg.close() tmpfile2.seek(0) odtpkg_stream = InputStreamFromFileLike(tmpfile2) odtpkg_storage = StorageFromInputStream(odtpkg_stream) return odtpkg_storage def load_odt_from_storage(doc, storage, statusindicator=None): infoset = css.beans.PropertySet() uri = css.rdf.URI('/') # re-initialize the document metadata, loads the stream named # 'manifest.rdf' from the storage, and then loads all metadata streams # mentioned in the manifest. # (>= OOo 3.2) doc.loadMetadataFromStorage(storage, uri, None) # SfxBaseModel::loadMetadataFromStorage # -> sfx2::DocumentMetadataAccess::loadMetadataFromStorage # ---> initLoading # ---> collectFilesFromStorage Writer = css.comp.Writer meta_xml = InputSourceFromStorage(storage, 'meta.xml') if meta_xml: meta_importer = Writer.XMLOasisMetaImporter(infoset, statusindicator) let_document_import_xml(doc, meta_importer, meta_xml) # svx/inc/svx/xmlgrhlp.hxx # svx/source/xml/xmlgrhlp.cxx # svx/util/svx.component # new SvXMLGraphicImportExportHelper graphicresolver = css.comp.Svx.GraphicImportHelper(storage) objectresolver = None lateinitsettings = None filterargs = (infoset, statusindicator, graphicresolver, objectresolver, lateinitsettings) styles_xml = InputSourceFromStorage(storage, 'styles.xml') if styles_xml: styles_importer = Writer.XMLOasisStylesImporter(*filterargs) let_document_import_xml(doc, styles_importer, styles_xml) content_xml = InputSourceFromStorage(storage, 'content.xml') if content_xml: content_importer = Writer.XMLOasisContentImporter(*filterargs) let_document_import_xml(doc, content_importer, content_xml) def InputSourceFromStorage(storage, streamname): if storage.hasByName(streamname): stream = storage.openStreamElement(streamname, 1) # READ return InputSourceFromStream(stream) def InputSourceFromStream(stream): from com.sun.star.xml.sax import InputSource inputsource = InputSource() inputsource.sSystemId = '' inputsource.aInputStream = stream inputsource.sEncoding = 'utf-8' return inputsource def let_document_import_xml(doc, filter, inputsource): filter.setTargetDocument(doc) parser = css.xml.sax.Parser() parser.setDocumentHandler(filter) parser.parseStream(inputsource) def inputstream_is_hwp5file(inputstream): try: olestorage = css.embed.OLESimpleStorage(inputstream) adapter = OleStorageAdapter(olestorage) from hwp5.filestructure import storage_is_hwp5file return storage_is_hwp5file(adapter) except Exception as e: logger.exception(e) return False def typedetect(inputstream): if inputstream_is_hwp5file(inputstream): return 'hwp5' return '' ================================================ FILE: pyhwp_uno/hwp5_uno/tests/__init__.py ================================================ ================================================ FILE: pyhwp_uno/hwp5_uno/tests/test_hwp5_uno.py ================================================ # -*- coding: utf-8 -*- from unittest import TestCase class TestBase(TestCase): def get_fixture_path(self, filename): from hwp5_tests.fixtures import get_fixture_path return get_fixture_path(filename) def open_fixture(self, filename, *args, **kwargs): from hwp5_tests.fixtures import open_fixture return open_fixture(filename, *args, **kwargs) class OleStorageAdapterTest(TestBase): def get_adapter(self): from unokit.services import css from hwp5_uno import InputStreamFromFileLike from hwp5_uno import OleStorageAdapter f = self.open_fixture('sample-5017.hwp', 'rb') inputstream = InputStreamFromFileLike(f) oless = css.embed.OLESimpleStorage(inputstream) return OleStorageAdapter(oless) def test_iter(self): adapter = self.get_adapter() self.assertTrue('FileHeader' in adapter) self.assertTrue('DocInfo' in adapter) self.assertTrue('BodyText' in adapter) def test_getitem(self): adapter = self.get_adapter() bodytext = adapter['BodyText'] self.assertTrue('Section0' in bodytext) from hwp5.filestructure import HwpFileHeader from hwp5.filestructure import HWP5_SIGNATURE fileheader = adapter['FileHeader'] fileheader = HwpFileHeader(fileheader) self.assertEqual((5, 0, 1, 7), fileheader.version) self.assertEqual(HWP5_SIGNATURE, fileheader.signature) # reopen (just being careful) fileheader = adapter['FileHeader'] fileheader = HwpFileHeader(fileheader) self.assertEqual((5, 0, 1, 7), fileheader.version) self.assertEqual(HWP5_SIGNATURE, fileheader.signature) class HwpFileFromInputStreamTest(TestBase): def test_basic(self): from unokit.adapters import InputStreamFromFileLike from hwp5_uno import HwpFileFromInputStream with self.open_fixture('sample-5017.hwp', 'rb') as f: inputstream = InputStreamFromFileLike(f) hwpfile = HwpFileFromInputStream(inputstream) self.assertEqual((5, 0, 1, 7), hwpfile.fileheader.version) class StorageFromInputStreamTest(TestBase): def test_basic(self): import uno from unokit.adapters import InputStreamFromFileLike from hwp5_uno import StorageFromInputStream from hwp5.hwp5odt import ODTPackage zipname = self.id()+'.zip' pkg = ODTPackage(zipname) try: from StringIO import StringIO data = StringIO('hello') pkg.insert_stream(data, 'abc.txt', 'text/plain') finally: pkg.close() with file(zipname, 'rb') as f: inputstream = InputStreamFromFileLike(f, dontclose=True) storage = StorageFromInputStream(inputstream) try: self.assertTrue(uno.getTypeByName('com.sun.star.embed.XStorage') in storage.Types) self.assertEqual(set(['abc.txt']), set(storage.ElementNames)) finally: storage.dispose() class TypedetectTest(TestBase): def test_basic(self): from unokit.adapters import InputStreamFromFileLike from hwp5_uno import inputstream_is_hwp5file from hwp5_uno import typedetect with self.open_fixture('sample-5017.hwp', 'rb') as f: inputstream = InputStreamFromFileLike(f, dontclose=True) self.assertTrue(inputstream_is_hwp5file(inputstream)) self.assertEqual('hwp5', typedetect(inputstream)) class LoadHwp5FileTest(TestBase): def get_paragraphs(self, text): import unokit.util return unokit.util.enumerate(text) def get_text_portions(self, paragraph): import unokit.util return unokit.util.enumerate(paragraph) def get_text_contents(self, text_portion): import unokit.util if hasattr(text_portion, 'createContentEnumeration'): xenum = text_portion.createContentEnumeration('com.sun.star.text.TextContent') for text_content in unokit.util.iterate(xenum): yield text_content def test_basic(self): from unokit.services import css import unokit.util from hwp5.xmlmodel import Hwp5File from hwp5_uno import load_hwp5file_into_doc desktop = css.frame.Desktop() doc = desktop.loadComponentFromURL('private:factory/swriter', '_blank', 0, tuple()) hwp5path = self.get_fixture_path('sample-5017.hwp') hwp5file = Hwp5File(hwp5path) load_hwp5file_into_doc(hwp5file, doc) text = doc.getText() paragraphs = list(self.get_paragraphs(text)) p = paragraphs[0] text_portions = list(self.get_text_portions(p)) tp = text_portions[0] self.assertEqual('Text', tp.TextPortionType) self.assertEqual(u'한글 ', tp.String) p = paragraphs[-1] tp = list(self.get_text_portions(p))[-1] self.assertEqual('Frame', tp.TextPortionType) tc = list(self.get_text_contents(tp))[-1] self.assertTrue('com.sun.star.drawing.GraphicObjectShape' in tc.SupportedServiceNames) table = paragraphs[6] self.assertTrue('com.sun.star.text.TextTable' in table.SupportedServiceNames) drawpage = doc.getDrawPage() shapes = list(unokit.util.enumerate(drawpage)) self.assertEqual(2, len(shapes)) self.assertEqual(1, shapes[0].Graphic.GraphicType) self.assertEqual('image/jpeg', shapes[0].Graphic.MimeType) self.assertEqual(2, shapes[0].Bitmap.GraphicType) self.assertEqual('image/x-vclgraphic', shapes[0].Bitmap.MimeType) self.assertEqual(28254, len(shapes[0].Bitmap.DIB)) self.assertTrue(shapes[0].GraphicURL.startswith('vnd.sun.star.GraphicObject:')) print shapes[0].GraphicURL #self.assertEqual('vnd.sun.star.GraphicObject:10000000000001F40000012C1F9CCF04', # shapes[0].GraphicURL) self.assertEqual(None, shapes[0].GraphicStreamURL) self.assertEqual(1, shapes[1].Graphic.GraphicType) self.assertEqual('image/png', shapes[1].Graphic.MimeType) self.assertEqual(2, shapes[1].Bitmap.GraphicType) self.assertEqual('image/x-vclgraphic', shapes[1].Bitmap.MimeType) self.assertEqual(374, len(shapes[1].Bitmap.DIB)) self.assertTrue(shapes[1].GraphicURL.startswith('vnd.sun.star.GraphicObject:')) print shapes[1].GraphicURL #self.assertEqual('vnd.sun.star.GraphicObject:1000020100000010000000108F049D12', # shapes[1].GraphicURL) self.assertEqual(None, shapes[1].GraphicStreamURL) ================================================ FILE: pyhwp_uno/setup.py ================================================ from setuptools import setup, find_packages setup(name='pyhwp_uno', install_requires=['unokit', 'pyhwp'], packages=find_packages()) ================================================ FILE: release-hooks/prerelease.after/10-docs-build ================================================ #!/bin/sh set -e echo '* docs: Building documentation...' bin/docs-build echo '* docs: Check documentations in build/docs/.' ================================================ FILE: release-hooks/prerelease.before/0-docs-update-po ================================================ #!/bin/sh set -e echo '* docs: Updating PO files...' bin/docs-update-po echo '* docs: Check if there are translations to update in PO files.' ================================================ FILE: release-hooks/release.after/10-test-pypi ================================================ #!/bin/sh set -e echo '* download/installing package...' bin/test-pypi ================================================ FILE: release-hooks/release.after/20-docs-upload ================================================ #!/bin/bash set -e echo 'Do you wish to upload the documentation to http://pythonhosted.org/pyhwp?' select yn in 'Yes' 'No'; do case $yn in Yes ) break;; No ) exit;; esac done echo '* docs: Uploading to http://pythonhosted.org/pyhwp...' bin/docs-upload echo '* docs: Check documentations at http://pythonhosted.org/pyhwp.' ================================================ FILE: release-hooks/release.before/20-upload-to-testpypi ================================================ #!/bin/sh # exit if any statement returns non-true return value set -e # exit on uninitialized variable set -u bin/test-sdist bin/test-upload ================================================ FILE: requirements/dev.in ================================================ argcomplete babel >= 2.12.1 colorlog jip >= 0.9.16 jupyter lxml notebook >= 6.5.4 pip-tools >= 6.13.0 requests >= 2.28.2 restview tox >= 4.4.11 urllib3 >= 1.26.15 wheel >= 0.40.0 zc.buildout >= 3.0.1 zest.releaser ================================================ FILE: requirements/dev.txt ================================================ # # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --output-file=requirements/dev.txt requirements.in requirements/dev.in requirements/docs.in requirements/lint.in requirements/test.in # alabaster==0.7.12 # via # -r requirements/docs.in # sphinx anyio==3.6.2 # via jupyter-server argcomplete==1.11.1 # via -r requirements/dev.in argon2-cffi==21.3.0 # via # jupyter-server # nbclassic # notebook argon2-cffi-bindings==21.2.0 # via argon2-cffi asttokens==2.2.1 # via stack-data attrs==19.3.0 # via jsonschema babel==2.12.1 # via # -r requirements/dev.in # sphinx # sphinx-intl backcall==0.1.0 # via ipython beautifulsoup4==4.12.2 # via nbconvert bleach==6.0.0 # via # nbconvert # readme-renderer build==0.10.0 # via pip-tools cachetools==5.3.0 # via tox certifi==2022.12.7 # via requests cffi==1.14.0 # via # argon2-cffi-bindings # cryptography chardet==5.1.0 # via tox charset-normalizer==3.1.0 # via requests check-manifest==0.42 # via -r requirements/lint.in click==8.1.3 # via # pip-tools # sphinx-intl colorama==0.4.6 # via # tox # zest-releaser colorlog==4.1.0 # via -r requirements/dev.in coverage==7.2.3 # via -r requirements/test.in cryptography==40.0.1 ; platform_python_implementation != "Jython" # via # -r requirements.in # secretstorage decorator==4.4.2 # via ipython defusedxml==0.6.0 # via nbconvert distlib==0.3.6 # via virtualenv docutils==0.16 # via # pyroma # readme-renderer # restview # sphinx entrypoints==0.3 # via flake8 executing==1.2.0 # via stack-data fastjsonschema==2.16.3 # via nbformat filelock==3.11.0 # via # tox # virtualenv flake8==3.7.9 # via -r requirements/lint.in idna==2.9 # via # anyio # requests imagesize==1.2.0 # via sphinx importlib-metadata==6.2.1 # via # jupyter-client # nbconvert ipykernel==5.2.1 # via # ipywidgets # jupyter # jupyter-console # nbclassic # notebook # qtconsole ipython==8.12.0 # via # ipykernel # ipywidgets # jupyter-console ipython-genutils==0.2.0 # via # nbclassic # notebook # qtconsole ipywidgets==7.5.1 # via jupyter jedi==0.17.0 # via ipython jeepney==0.4.3 # via # keyring # secretstorage jinja2==3.1.2 # via # -r requirements/docs.in # jupyter-server # nbclassic # nbconvert # notebook # sphinx jip==0.9.16 # via -r requirements/dev.in jsonschema[format-nongpl]==3.2.0 # via # jupyter-events # nbformat jupyter==1.0.0 # via -r requirements/dev.in jupyter-client==8.1.0 # via # ipykernel # jupyter-console # jupyter-server # nbclassic # nbclient # notebook # qtconsole jupyter-console==6.1.0 # via jupyter jupyter-core==5.3.0 # via # jupyter-client # jupyter-server # nbclassic # nbclient # nbconvert # nbformat # notebook # qtconsole jupyter-events==0.6.3 # via jupyter-server jupyter-server==2.5.0 # via # nbclassic # notebook-shim jupyter-server-terminals==0.4.4 # via jupyter-server jupyterlab-pygments==0.2.2 # via nbconvert keyring==21.2.1 # via twine lxml==4.9.2 ; platform_python_implementation != "Jython" # via # -r requirements.in # -r requirements/dev.in markupsafe==2.1.2 # via # jinja2 # nbconvert matplotlib-inline==0.1.6 # via ipython mccabe==0.6.1 # via flake8 mistune==2.0.5 # via nbconvert nbclassic==0.5.5 # via notebook nbclient==0.7.3 # via nbconvert nbconvert==7.3.0 # via # jupyter # jupyter-server # nbclassic # notebook nbformat==5.8.0 # via # ipywidgets # jupyter-server # nbclassic # nbclient # nbconvert # notebook nest-asyncio==1.5.6 # via # nbclassic # notebook notebook==6.5.4 # via # -r requirements/dev.in # jupyter # widgetsnbextension notebook-shim==0.2.2 # via nbclassic olefile==0.46 ; platform_python_implementation != "Jython" # via -r requirements.in packaging==23.0 # via # build # jupyter-server # nbconvert # pyproject-api # sphinx # tox pandocfilters==1.4.2 # via nbconvert parso==0.7.0 # via jedi pep517==0.8.2 # via check-manifest pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython pip-tools==6.13.0 # via -r requirements/dev.in pkginfo==1.5.0.1 # via twine platformdirs==3.2.0 # via # jupyter-core # tox # virtualenv pluggy==1.0.0 # via tox prometheus-client==0.7.1 # via # jupyter-server # nbclassic # notebook prompt-toolkit==3.0.38 # via # ipython # jupyter-console ptyprocess==0.6.0 # via # pexpect # terminado pure-eval==0.2.2 # via stack-data pycodestyle==2.5.0 # via flake8 pycparser==2.20 # via cffi pyflakes==2.1.1 # via flake8 pygments==2.14.0 # via # ipython # jupyter-console # nbconvert # pyroma # qtconsole # readme-renderer # restview # sphinx pyproject-api==1.5.1 # via tox pyproject-hooks==1.0.0 # via build pyroma==2.6 # via -r requirements/lint.in pyrsistent==0.16.0 # via jsonschema python-dateutil==2.8.2 # via jupyter-client python-json-logger==2.0.7 # via jupyter-events pyyaml==6.0 # via jupyter-events pyzmq==25.0.2 # via # jupyter-client # jupyter-server # nbclassic # notebook # qtconsole qtconsole==4.7.3 # via jupyter qtpy==1.9.0 # via qtconsole readme-renderer==26.0 # via # restview # twine repoze-sphinx-autointerface==0.8 # via -r requirements/docs.in requests==2.28.2 # via # -r requirements/dev.in # jip # requests-toolbelt # sphinx # twine # zest-releaser requests-toolbelt==0.9.1 # via twine restview==2.9.2 # via -r requirements/dev.in rfc3339-validator==0.1.4 # via jupyter-events rfc3986-validator==0.1.1 # via jupyter-events secretstorage==3.1.2 # via keyring send2trash==1.8.0 # via # jupyter-server # nbclassic # notebook six==1.14.0 # via # bleach # jsonschema # pyrsistent # python-dateutil # readme-renderer # zest-releaser sniffio==1.3.0 # via anyio snowballstemmer==2.0.0 # via sphinx soupsieve==2.4 # via beautifulsoup4 sphinx==3.0.3 # via # -r requirements/docs.in # repoze-sphinx-autointerface # sphinx-argparse # sphinx-intl sphinx-argparse==0.4.0 # via -r requirements/docs.in sphinx-intl==2.0.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==1.0.3 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.4 # via sphinx stack-data==0.6.2 # via ipython terminado==0.8.3 # via # jupyter-server # jupyter-server-terminals # nbclassic # notebook tinycss2==1.2.1 # via nbconvert toml==0.10.0 # via # check-manifest # pep517 tomli==2.0.1 # via # build # pyproject-api # pyproject-hooks # tox tornado==6.2 # via # ipykernel # jupyter-client # jupyter-server # nbclassic # notebook # terminado tox==4.4.11 # via -r requirements/dev.in tqdm==4.46.0 # via twine traitlets==5.9.0 # via # ipykernel # ipython # ipywidgets # jupyter-client # jupyter-core # jupyter-events # jupyter-server # matplotlib-inline # nbclassic # nbclient # nbconvert # nbformat # notebook # qtconsole twine==3.1.1 # via zest-releaser typing-extensions==4.5.0 # via ipython urllib3==1.26.15 # via # -r requirements/dev.in # requests virtualenv==20.21.0 # via tox wcwidth==0.1.9 # via prompt-toolkit webencodings==0.5.1 # via # bleach # tinycss2 websocket-client==1.5.1 # via jupyter-server wheel==0.40.0 # via # -r requirements/dev.in # pip-tools # zc-buildout widgetsnbextension==3.5.1 # via ipywidgets zc-buildout==3.0.1 # via -r requirements/dev.in zest-releaser==6.20.1 # via -r requirements/dev.in zipp==3.15.0 # via importlib-metadata zope-interface==5.1.0 # via repoze-sphinx-autointerface # The following packages are considered to be unsafe in a requirements file: # pip # setuptools ================================================ FILE: requirements/docs.in ================================================ alabaster >= 0.7.10 jinja2 >= 3.1.2 repoze.sphinx.autointerface sphinx >= 1.5 sphinx-argparse >= 0.4.0 sphinx-intl ================================================ FILE: requirements/docs.txt ================================================ # # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --output-file=requirements/docs.txt requirements/docs.in # alabaster==0.7.12 # via # -r requirements/docs.in # sphinx babel==2.12.1 # via # sphinx # sphinx-intl certifi==2022.12.7 # via requests charset-normalizer==3.1.0 # via requests click==7.1.2 # via sphinx-intl docutils==0.16 # via sphinx idna==2.9 # via requests imagesize==1.2.0 # via sphinx jinja2==3.1.2 # via # -r requirements/docs.in # sphinx markupsafe==2.1.2 # via jinja2 packaging==20.3 # via sphinx pygments==2.14.0 # via sphinx pyparsing==2.4.7 # via packaging repoze-sphinx-autointerface==0.8 # via -r requirements/docs.in requests==2.28.2 # via sphinx six==1.14.0 # via packaging snowballstemmer==2.0.0 # via sphinx sphinx==3.0.3 # via # -r requirements/docs.in # repoze-sphinx-autointerface # sphinx-argparse # sphinx-intl sphinx-argparse==0.4.0 # via -r requirements/docs.in sphinx-intl==2.0.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==1.0.3 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.4 # via sphinx urllib3==1.26.15 # via requests zope-interface==5.1.0 # via repoze-sphinx-autointerface # The following packages are considered to be unsafe in a requirements file: # setuptools ================================================ FILE: requirements/lint.in ================================================ check-manifest flake8 pyroma ================================================ FILE: requirements/lint.txt ================================================ # # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --output-file=requirements/lint.txt requirements/lint.in # check-manifest==0.42 # via -r requirements/lint.in docutils==0.16 # via pyroma entrypoints==0.3 # via flake8 flake8==3.7.9 # via -r requirements/lint.in mccabe==0.6.1 # via flake8 pep517==0.8.2 # via check-manifest pycodestyle==2.5.0 # via flake8 pyflakes==2.1.1 # via flake8 pygments==2.14.0 # via pyroma pyroma==2.6 # via -r requirements/lint.in toml==0.10.0 # via check-manifest # The following packages are considered to be unsafe in a requirements file: # setuptools ================================================ FILE: requirements/test.in ================================================ coverage >= 7.2.3 ================================================ FILE: requirements/test.txt ================================================ # # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --output-file=requirements/test.txt requirements.in requirements/test.in # cffi==1.14.0 # via cryptography coverage==7.2.3 # via -r requirements/test.in cryptography==40.0.1 ; platform_python_implementation != "Jython" # via -r requirements.in lxml==4.9.2 ; platform_python_implementation != "Jython" # via -r requirements.in olefile==0.46 ; platform_python_implementation != "Jython" # via -r requirements.in pycparser==2.20 # via cffi ================================================ FILE: requirements.in ================================================ cryptography >= 40.0.1 ; platform_python_implementation != "Jython" lxml >= 4.9.2 ; platform_python_implementation != "Jython" olefile >= 0.43 ; platform_python_implementation != "Jython" ================================================ FILE: requirements.txt ================================================ # # This file is autogenerated by pip-compile with Python 3.9 # by the following command: # # pip-compile --output-file=requirements.txt requirements.in # cffi==1.12.2 # via cryptography cryptography==40.0.1 ; platform_python_implementation != "Jython" # via -r requirements.in lxml==4.9.2 ; platform_python_implementation != "Jython" # via -r requirements.in olefile==0.44 ; platform_python_implementation != "Jython" # via -r requirements.in pycparser==2.19 # via cffi ================================================ FILE: setup.cfg ================================================ [build_sphinx] source-dir = docs/ build-dir = docs/.build all_files = 1 [extract_messages] sort-by-file = True copyright-holder = 137794+mete0r@users.noreply.github.com msgid-bugs-address = 137794+mete0r@users.noreply.github.com [init_catalog] output-dir = src/hwp5/locale [update_catalog] output-dir = src/hwp5/locale [compile_catalog] directory = src/hwp5/locale ================================================ FILE: setup.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from __future__ import absolute_import from __future__ import print_function from distutils.command.build import build as _build import io import os.path import subprocess import sys def setupdir(f): ''' Decorate f to run inside the directory where setup.py resides. ''' setup_dir = os.path.dirname(os.path.abspath(__file__)) def wrapped(*args, **kwargs): old_dir = os.path.abspath(os.curdir) try: os.chdir(setup_dir) return f(*args, **kwargs) finally: os.chdir(old_dir) return wrapped @setupdir def import_setuptools(): try: import setuptools return setuptools except ImportError: pass import ez_setup ez_setup.use_setuptools() import setuptools return setuptools @setupdir def readfile(filename): with io.open(filename, 'r', encoding='utf-8') as f: return f.read() def get_version(): version = readfile('VERSION.txt') version = version.strip() return version def get_long_description(): long_description = readfile('README') + '\n' + readfile('CHANGES') return long_description def get_classifiers(): classifiers = readfile('classifiers.txt') classifiers = classifiers.strip() classifiers = classifiers.split('\n') classifiers = sorted(classifiers) return classifiers def get_install_requires(): requires = readfile('requirements.in') requires = requires.strip() requires = requires.split('\n') requires = list(requires) return requires class build(_build): def run(self): # # compile message catalogs # domains = [ 'hwp5proc', 'hwp5html', 'hwp5odt', 'hwp5txt', 'hwp5view', ] for domain in domains: args = [ sys.executable, __file__, 'compile_catalog', '--domain={}'.format(domain) # ..other common options are provided by setup.cfg ] subprocess.check_call(args) # # process to normal build operations # _build.run(self) setup_info = { # basic information 'name': 'pyhwp', 'version': get_version(), 'description': 'hwp file format parser', 'long_description': get_long_description(), # authorative 'author': 'mete0r', 'author_email': '137794+mete0r@users.noreply.github.com', 'license': 'GNU Affero General Public License v3 or later (AGPLv3+)', 'url': 'https://github.com/mete0r/pyhwp', # classifying 'classifiers': get_classifiers(), 'keywords': 'hwp', # packaging 'setup_requires': [ 'babel', ], 'packages': [ 'hwp5', 'hwp5.binmodel', 'hwp5.binmodel.controls', 'hwp5.plat', 'hwp5.plat._uno', 'hwp5.proc', 'hwp5.storage', 'hwp5.transforms', ], # do not use '.'; just omit to specify setup.py directory 'package_dir': { '': 'src', }, 'package_data': { 'hwp5': [ 'README', 'COPYING', 'VERSION.txt', 'xsl/*.xsl', 'xsl/odt/*.xsl', 'odf-relaxng/OpenDocument-v1.2-os-*.rng', 'locale/*/*/*.mo', ], }, # 'python_requires': '>=2.7, <3', # installation 'zip_safe': False, 'entry_points': { 'console_scripts': [ 'hwp5spec=hwp5.binspec:main', 'hwp5proc=hwp5.hwp5proc:main', 'hwp5odt=hwp5.hwp5odt:main', 'hwp5txt=hwp5.hwp5txt:main', 'hwp5html=hwp5.hwp5html:main', 'hwp5view=hwp5.hwp5view:main', ] }, 'install_requires': get_install_requires(), } @setupdir def main(): setuptools = import_setuptools() setup_info['cmdclass'] = { 'build': build, } setuptools.setup(**setup_info) if __name__ == '__main__': main() ================================================ FILE: src/README.rst ================================================ ``pyhwp/`` - the main source code --------------------------------- ``hwp5/`` The main source package. For now, there is not much documentation about the source code. ================================================ FILE: src/hwp5/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . from __future__ import with_statement import os.path try: with open(os.path.join(os.path.dirname(__file__), 'VERSION.txt')) as f: __version__ = f.read().strip() del f except Exception: __version__ = '0.0-unknown' ================================================ FILE: src/hwp5/binmodel/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from io import BytesIO from itertools import takewhile import json import logging import inspect from .. import recordstream from ..bintype import ERROREVENT from ..bintype import resolve_type_events from ..bintype import resolve_values_from_stream from ..dataio import ParseError from ..dataio import dumpbytes from ..recordstream import nth from ..tagids import tagnames from ..treeop import STARTEVENT from ..treeop import ENDEVENT from ..treeop import prefix_ancestors_from_level from ..utils import JsonObjects from ._shared import tag_models from ._shared import RecordModel from ._shared import BinStorageId from ._shared import COLORREF from ._shared import Margin from .controlchar import CHID from .controlchar import ControlChar from .tagid16_document_properties import DocumentProperties from .tagid17_id_mappings import IdMappings from .tagid18_bin_data import BinData from .tagid20_border_fill import BorderFill from .tagid19_face_name import FaceName from .tagid21_char_shape import CharShape from .tagid21_char_shape import LanguageStruct from .tagid22_tab_def import TabDef from .tagid23_numbering import Numbering from .tagid24_bullet import Bullet from .tagid25_para_shape import ParaShape from .tagid26_style import Style from .tagid27_doc_data import DocData from .tagid28_distribute_doc_data import DistributeDocData from .tagid30_compatible_document import CompatibleDocument from .tagid31_layout_compatibility import LayoutCompatibility from .tagid32_unknown import TagModel32 from .tagid50_para_header import Paragraph from .tagid51_para_text import ParaText from .tagid51_para_text import ParaTextChunks from .tagid52_para_char_shape import ParaCharShape from .tagid53_para_line_seg import ParaLineSeg from .tagid53_para_line_seg import ParaLineSegList from .tagid53_para_line_seg import LineSeg from .tagid54_para_range_tag import ParaRangeTag from .tagid55_ctrl_header import Control from .controls.bookmark_control import BookmarkControl from .controls.columns_def import ColumnsDef from .controls.common_controls import CommonControl from .controls.dutmal import Dutmal from .controls.field import Field from .controls.field import FieldUnknown from .controls.field import FieldDate from .controls.field import FieldDocDate from .controls.field import FieldPath from .controls.field import FieldBookmark from .controls.field import FieldMailMerge from .controls.field import FieldCrossRef from .controls.field import FieldFormula from .controls.field import FieldClickHere from .controls.field import FieldClickHereData from .controls.field import FieldSummary from .controls.field import FieldUserInfo from .controls.field import FieldHyperLink from .controls.field import FieldMemo from .controls.field import FieldPrivateInfoSecurity from .controls.gshape_object_control import GShapeObjectControl from .controls.header_footer import HeaderFooter from .controls.header_footer import Header from .controls.header_footer import Footer from .controls.hidden_comment import HiddenComment from .controls.index_marker import IndexMarker from .controls.note import Note from .controls.note import FootNote from .controls.note import EndNote from .controls.numbering import AutoNumbering from .controls.numbering import NewNumbering from .controls.page_hide import PageHide from .controls.page_number_position import PageNumberPosition from .controls.page_odd_even import PageOddEven from .controls.section_def import SectionDef from .controls.table_control import TableControl from .controls.tcps_control import TCPSControl from .tagid56_list_header import ListHeader from .tagid56_list_header import TableCaption from .tagid56_list_header import TableCell from .tagid56_list_header import TextboxParagraphList from .tagid56_list_header import HeaderParagraphList from .tagid56_list_header import FooterParagraphList from .tagid57_page_def import PageDef from .tagid58_footnote_shape import FootnoteShape from .tagid59_page_border_fill import PageBorderFill from .tagid60_shape_component import ShapeComponent from .tagid61_table import TableBody from .tagid62_shape_component_line import ShapeLine from .tagid63_shape_component_rectangle import ShapeRectangle from .tagid64_shape_component_ellipse import ShapeEllipse from .tagid65_shape_component_arc import ShapeArc from .tagid66_shape_component_polygon import ShapePolygon from .tagid67_shape_component_curve import ShapeCurve from .tagid68_shape_component_ole import ShapeOLE from .tagid69_shape_component_picture import ShapePicture from .tagid70_shape_component_container import ShapeContainer from .tagid71_ctrl_data import ControlData from .tagid72_ctrl_eqedit import EqEdit from .tagid74_shape_component_textart import ShapeTextArt from .tagid75_form_object import FormObject from .tagid76_memo_shape import MemoShape from .tagid77_memo_list import MemoList from .tagid78_forbidden_char import ForbiddenChar from .tagid79_chart_data import ChartData from .tagid99_shape_component_unknown import ShapeUnknown # to suppress pyflake8 warning 'imported but not used' RecordModel BinStorageId COLORREF Margin DocumentProperties BinData BorderFill CharShape LanguageStruct TabDef Numbering Bullet ParaShape Style DocData DistributeDocData CompatibleDocument LayoutCompatibility TagModel32 Paragraph ParaText ParaTextChunks ParaCharShape ParaLineSeg ParaLineSegList LineSeg ParaRangeTag Control ListHeader TableCaption TableCell TextboxParagraphList PageDef FootnoteShape PageBorderFill ShapeComponent TableBody ShapeLine ShapeRectangle ShapeEllipse ShapeArc ShapePolygon ShapeCurve ShapeOLE ShapePicture ShapeContainer ControlData EqEdit ShapeTextArt FormObject MemoShape MemoList ForbiddenChar ChartData ShapeUnknown CHID ControlChar BookmarkControl ColumnsDef CommonControl Dutmal Field FieldUnknown FieldDate FieldDocDate FieldPath FieldBookmark FieldMailMerge FieldCrossRef FieldFormula FieldClickHere FieldClickHereData FieldSummary FieldUserInfo FieldHyperLink FieldMemo FieldPrivateInfoSecurity GShapeObjectControl HeaderFooter Header HeaderParagraphList Footer FooterParagraphList HiddenComment IndexMarker Note FootNote EndNote AutoNumbering NewNumbering PageHide PageNumberPosition PageOddEven SectionDef TableControl TCPSControl logger = logging.getLogger(__name__) class UnknownTagModel(RecordModel): pass class Text(object): pass def _check_tag_models(): for tagid, name in tagnames.items(): assert tagid in tag_models, 'RecordModel for %s is missing!' % name _check_tag_models() def init_record_parsing_context(base, record): ''' Initialize a context to parse the given record the initializations includes followings: - context = dict(base) - context['record'] = record - context['stream'] = record payload stream :param base: the base context to be shallow-copied into the new one :param record: to be parsed :returns: new context ''' return dict(base, record=record, stream=BytesIO(record['payload'])) def parse_models(context, records): for context, model in parse_models_intern(context, records): yield model def parse_models_intern(context, records): context_models = ((init_record_parsing_context(context, record), record) for record in records) context_models = parse_models_with_parent(context_models) for context, model in context_models: stream = context['stream'] unparsed = stream.read() if unparsed: model['unparsed'] = unparsed yield context, model def parse_models_with_parent(context_models): level_prefixed = ((model['level'], (context, model)) for context, model in context_models) root_item = (dict(), dict()) ancestors_prefixed = prefix_ancestors_from_level(level_prefixed, root_item) for ancestors, (context, model) in ancestors_prefixed: context['parent'] = ancestors[-1] parse_model(context, model) yield context, model def parse_model(context, model): ''' HWPTAG로 모델 결정 후 기본 파싱 ''' stream = context['stream'] context['resolve_values'] = resolve_values_from_stream(stream) events = resolve_model_events(context, model) events = raise_on_errorevent(context, events) model['binevents'] = list(events) logger.debug('model: %s', model['type'].__name__) logger.debug('%s', model['content']) def raise_on_errorevent(context, events): binevents = list() for ev, item in events: yield ev, item binevents.append((ev, item)) if ev is ERROREVENT: e = item['exception'] msg = 'can\'t parse %s' % item['type'] pe = ParseError(msg) pe.cause = e pe.path = context.get('path') pe.treegroup = context.get('treegroup') pe.record = context.get('record') pe.offset = item.get('bin_offset') pe.binevents = binevents raise pe def resolve_models(context, records): model_contexts = (dict(context, record=record, model=dict(record)) for record in records) level_prefixed = ((context['model']['level'], context) for context in model_contexts) root_item = {} ancestors_prefixed = prefix_ancestors_from_level(level_prefixed, root_item) for ancestors, context in ancestors_prefixed: parent = ancestors[-1] context['parent'] = parent, parent.get('model', {}) record_frame = context['record'] context['type'] = RecordModel context['name'] = record_frame['tagname'] yield STARTEVENT, context for x in resolve_model_events(context, context['model']): yield x event, item = x context['value'] = item yield ENDEVENT, context def resolve_model_events(context, model): resolve_values = context['resolve_values'] model['type'] = model_type = tag_models.get(model['tagid'], UnknownTagModel) for ev, item in resolve_type_events(model_type, context, resolve_values): yield ev, item model['content'] = item['value'] extension_types = getattr(model['type'], 'extension_types', None) if extension_types: key = model['type'].get_extension_key(context, model) extension = extension_types.get(key) if extension is not None: # 예: Control -> TableControl로 바뀌는 경우, # Control의 member들은 이미 읽은 상태이고 # CommonControl, TableControl에서 각각 정의한 # 멤버들을 읽어들여야 함 for cls in get_extension_mro(extension, model['type']): extension_type_events = resolve_type_events(cls, context, resolve_values) for ev, item in extension_type_events: yield ev, item content = item['value'] model['content'].update(content) model['type'] = extension if 'parent' in context: parent = context['parent'] parent_context, parent_model = parent parent_type = parent_model.get('type') parent_content = parent_model.get('content') on_child = getattr(parent_type, 'on_child', None) if on_child: on_child(parent_content, parent_context, (context, model)) def get_extension_mro(cls, up_to_cls=None): mro = inspect.getmro(cls) mro = takewhile(lambda cls: cls is not up_to_cls, mro) mro = list(cls for cls in mro if 'attributes' in cls.__dict__) mro = reversed(mro) return mro class ModelJsonEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, bytes): return obj.decode('latin1') return json.JSONEncoder.default(self, obj) def model_to_json(model, *args, **kwargs): ''' convert a model to json ''' kwargs['cls'] = ModelJsonEncoder model = dict(model) model['type'] = model['type'].__name__ record = model record['payload'] = list(dumpbytes(record['payload'])) if 'unparsed' in model: model['unparsed'] = list(dumpbytes(model['unparsed'])) if 'binevents' in model: del model['binevents'] return json.dumps(model, *args, **kwargs) def chain_iterables(iterables): for iterable in iterables: for item in iterable: yield item class ModelStream(recordstream.RecordStream): def models(self, **kwargs): # prepare binmodel parsing context kwargs.setdefault('version', self.version) try: kwargs.setdefault('path', self.path) except AttributeError: pass treegroup = kwargs.get('treegroup', None) if treegroup is not None: records = self.records_treegroup(treegroup) # TODO: kwargs models = parse_models(kwargs, records) else: groups = self.models_treegrouped(**kwargs) models = chain_iterables(groups) return models def models_treegrouped(self, **kwargs): ''' iterable of iterable of the models, grouped by the top-level tree ''' kwargs.setdefault('version', self.version) for group_idx, records in enumerate(self.records_treegrouped()): kwargs['treegroup'] = group_idx yield parse_models(kwargs, records) def model(self, idx): return nth(self.models(), idx) def models_json(self, **kwargs): models = self.models(**kwargs) return JsonObjects(models, model_to_json) def other_formats(self): d = super(ModelStream, self).other_formats() d['.models'] = self.models_json().open return d def parse_model_events(self): context = dict(version=self.version) def resolve_values_from_record(record): stream = BytesIO(record['payload']) return resolve_values_from_stream(stream) for group_idx, records in enumerate(self.records_treegrouped()): context['treegroup'] = group_idx for x in resolve_models(context, records): event, item = x if item['type'] is RecordModel: if event is STARTEVENT: record_frame = item['record'] stream = BytesIO(record_frame['payload']) resolve_values = resolve_values_from_stream(stream) item['stream'] = stream item['resolve_values'] = resolve_values elif event is ENDEVENT: stream = item['stream'] item['leftover'] = { 'offset': stream.tell(), 'bytes': stream.read() } yield x class DocInfo(ModelStream): @property def idmappings(self): for model in self.models(): if model['type'] is IdMappings: return model @property def facenames_by_lang(self): facenames = list(m for m in self.models() if m['type'] is FaceName) languages = 'ko', 'en', 'cn', 'jp', 'other', 'symbol', 'user' facenames_by_lang = dict() offset = 0 for lang in languages: n_fonts = self.idmappings['content'][lang + '_fonts'] facenames_by_lang[lang] = facenames[offset:offset + n_fonts] offset += n_fonts return facenames_by_lang @property def charshapes(self): return (m for m in self.models() if m['type'] is CharShape) def get_charshape(self, charshape_id): return nth(self.charshapes, charshape_id) def charshape_lang_facename(self, charshape_id, lang): charshape = self.get_charshape(charshape_id) lang_facename_offset = charshape['content']['font_face'][lang] return self.facenames_by_lang[lang][lang_facename_offset] class Sections(recordstream.Sections): section_class = ModelStream class Hwp5File(recordstream.Hwp5File): docinfo_class = DocInfo bodytext_class = Sections def create_context(file=None, **context): if file is not None: context['version'] = file.fileheader.version assert 'version' in context return context ================================================ FILE: src/hwp5/binmodel/_shared.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import logging from six import with_metaclass from hwp5.dataio import StructType from hwp5.dataio import Struct from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import PrimitiveType from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import UINT8 from hwp5.dataio import INT32 from hwp5.dataio import INT8 from hwp5.dataio import BYTE from hwp5.dataio import HWPUNIT16 from hwp5.dataio import SHWPUNIT from hwp5.dataio import N_ARRAY logger = logging.getLogger(__name__) tag_models = dict() class RecordModelType(StructType): def __new__(mcs, name, bases, attrs): cls = StructType.__new__(mcs, name, bases, attrs) if 'tagid' in attrs: tagid = attrs['tagid'] assert tagid not in tag_models tag_models[tagid] = cls return cls class RecordModel(with_metaclass(RecordModelType, object)): pass class BinStorageId(UINT16): pass class COLORREF(with_metaclass(PrimitiveType, int)): binfmt = INT32.binfmt never_instantiate = False def __getattr__(self, name): if name == 'r': return self & 0xff elif name == 'g': return (self & 0xff00) >> 8 elif name == 'b': return (self & 0xff0000) >> 16 elif name == 'a': return int((self & 0xff000000) >> 24) elif name == 'rgb': return self.r, self.g, self.b def __str__(self): return '#%02x%02x%02x' % (self.r, self.g, self.b) def __repr__(self): class_name = self.__class__.__name__ value = '(0x%02x, 0x%02x, 0x%02x)' % self.rgb return class_name + value class Margin(Struct): def attributes(): yield HWPUNIT16, 'left' yield HWPUNIT16, 'right' yield HWPUNIT16, 'top' yield HWPUNIT16, 'bottom' attributes = staticmethod(attributes) class Coord(Struct): def attributes(): yield SHWPUNIT, 'x' yield SHWPUNIT, 'y' attributes = staticmethod(attributes) class Border(Struct): # 표 20 테두리선 종류 StrokeEnum = Enum('none', 'solid', 'dashed', 'dotted', 'dash-dot', 'dash-dot-dot', 'long-dash', 'large-dot', 'double', 'double-2', 'double-3', 'triple', 'wave', 'double-wave', 'inset', 'outset', 'groove', 'ridge') StrokeType = Flags(UINT8, 0, 4, StrokeEnum, 'stroke_type') # 표 21 테두리선 굵기 widths = {'0.1mm': 0, '0.12mm': 1, '0.15mm': 2, '0.2mm': 3, '0.25mm': 4, '0.3mm': 5, '0.4mm': 6, '0.5mm': 7, '0.6mm': 8, '0.7mm': 9, '1.0mm': 10, '1.5mm': 11, '2.0mm': 12, '3.0mm': 13, '4.0mm': 14, '5.0mm': 15} WidthEnum = Enum(**widths) Width = Flags(UINT8, 0, 4, WidthEnum, 'width') def attributes(cls): yield cls.StrokeType, 'stroke_flags', yield cls.Width, 'width_flags', yield COLORREF, 'color', attributes = classmethod(attributes) class BorderLine(Struct): ''' 표 81 테두리 선 정보 ''' LineEnd = Enum('round', 'flat') ArrowShape = Enum('none', 'arrow', 'arrow2', 'diamond', 'circle', 'rect', 'diamondfilled', 'disc', 'rectfilled') ArrowSize = Enum('smallest', 'smaller', 'small', 'abitsmall', 'normal', 'abitlarge', 'large', 'larger', 'largest') ''' 표 82 테두리 선 정보 속성 ''' Flags = Flags(UINT32, 0, 5, Border.StrokeEnum, 'stroke', 6, 9, LineEnd, 'line_end', 10, 15, ArrowShape, 'arrow_start', 16, 21, ArrowShape, 'arrow_end', 22, 25, ArrowSize, 'arrow_start_size', 26, 29, ArrowSize, 'arrow_end_size', 30, 'arrow_start_fill', 31, 'arrow_end_fill') def attributes(cls): yield COLORREF, 'color' yield INT32, 'width' yield cls.Flags, 'flags' attributes = classmethod(attributes) class Fill(Struct): pass class FillNone(Fill): def attributes(): yield UINT32, 'size', # SPEC is confusing attributes = staticmethod(attributes) class FillColorPattern(Fill): ''' 표 23 채우기 정보 ''' PatternTypeEnum = Enum(NONE=255, HORIZONTAL=0, VERTICAL=1, BACKSLASH=2, SLASH=3, GRID=4, CROSS=5) PatternTypeFlags = Flags(UINT32, 0, 7, PatternTypeEnum, 'pattern_type') def attributes(cls): yield COLORREF, 'background_color', yield COLORREF, 'pattern_color', yield cls.PatternTypeFlags, 'pattern_type_flags', attributes = classmethod(attributes) class FillImage(Fill): FillImageEnum = Enum(TILE_ALL=0, TILE_HORIZONTAL_TOP=1, TILE_HORIZONTAL_BOTTOM=2, TILE_VERTICAL_LEFT=3, TILE_VERTICAL_RIGHT=4, RESIZE=5, CENTER=6, CENTER_TOP=7, CENTER_BOTTOM=8, LEFT_MIDDLE=9, LEFT_TOP=10, LEFT_BOTTOM=11, RIGHT_MIDDLE=12, RIGHT_TOP=13, RIGHT_BOTTOM=14, NONE=15) FillImageFlags = Flags(BYTE, 0, 16, FillImageEnum, 'fillimage_type') EffectEnum = Enum(REAL_PIC=0, GRAY_SCALE=1, BLACK_WHITE=2, PATTERN8x8=3) EffectFlags = Flags(UINT8, 0, 8, EffectEnum, 'effect_type') def attributes(cls): yield cls.FillImageFlags, 'flags' yield INT8, 'brightness' yield INT8, 'contrast' yield cls.EffectFlags, 'effect' yield UINT16, 'bindata_id' attributes = classmethod(attributes) class Coord32(Struct): def attributes(): yield UINT32, 'x' yield UINT32, 'y' attributes = staticmethod(attributes) GradationTypeEnum = Enum(LINEAR=1, CIRCULAR=2, CONICAL=3, RECTANGULAR=4) GradationTypeFlags = Flags(BYTE, 0, 8, GradationTypeEnum, 'gradation_type') class FillGradation(Fill): def attributes(): yield GradationTypeFlags, 'type', yield UINT32, 'shear', # 기울임 각 (도) yield Coord32, 'center', yield UINT32, 'blur', # 번짐 정도: 0-100 # TODO: 스펙 1.2에 따르면 색상 수 > 2인 경우 # 색상이 바뀌는 위치 배열이 온다고 함 yield N_ARRAY(UINT32, COLORREF), 'colors', attributes = staticmethod(attributes) def ref_parent_member(member_name): def f(context, values): context, model = context['parent'] return model['content'][member_name] f.__doc__ = 'PARENTREC.' + member_name return f ================================================ FILE: src/hwp5/binmodel/controlchar.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import re import sys from six import with_metaclass from hwp5.dataio import PrimitiveType from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import UINT8 PY3 = sys.version_info.major == 3 if PY3: unichr = chr class CHID(with_metaclass(PrimitiveType, str)): fixed_size = 4 # Common controls GSO = 'gso ' TBL = 'tbl ' LINE = '$lin' RECT = '$rec' ELLI = '$ell' ARC = '$arc' POLY = '$pol' CURV = '$cur' EQED = 'eqed' PICT = '$pic' OLE = '$ole' CONTAINER = '$con' # Controls SECD = 'secd' COLD = 'cold' HEADER = 'head' FOOTER = 'foot' FN = 'fn ' EN = 'en ' ATNO = 'atno' NWNO = 'nwno' PGHD = 'pghd' PGCT = 'pgct' PGNP = 'pgnp' IDXM = 'idxm' BOKM = 'bokm' TCPS = 'tcps' TDUT = 'tdut' TCMT = 'tcmt' # Field starts FIELD_UNK = '%unk' FIELD_DTE = '%dte' FIELD_DDT = '%ddt' FIELD_PAT = '%pat' FIELD_BMK = '%bmk' FIELD_MMG = '%mmg' FIELD_XRF = '%xrf' FIELD_FMU = '%fmu' FIELD_CLK = '%clk' FIELD_SMR = '%smr' FIELD_USR = '%usr' FIELD_HLK = '%hlk' FIELD_REVISION_SIGN = '%sig' FIELD_REVISION_DELETE = '%%*d' FIELD_REVISION_ATTACH = '%%*a' FIELD_REVISION_CLIPPING = '%%*C' FIELD_REVISION_SAWTOOTH = '%%*S' FIELD_REVISION_THINKING = '%%*T' FIELD_REVISION_PRAISE = '%%*P' FIELD_REVISION_LINE = '%%*L' FIELD_REVISION_SIMPLECHANGE = '%%*c' FIELD_REVISION_HYPERLINK = '%%*h' FIELD_REVISION_LINEATTACH = '%%*A' FIELD_REVISION_LINELINK = '%%*i' FIELD_REVISION_LINETRANSFER = '%%*t' FIELD_REVISION_RIGHTMOVE = '%%*r' FIELD_REVISION_LEFTMOVE = '%%*l' FIELD_REVISION_TRANSFER = '%%*n' FIELD_REVISION_SIMPLEINSERT = '%%*e' FIELD_REVISION_SPLIT = '%spl' FIELD_REVISION_CHANGE = '%%mr' FIELD_MEMO = '%%me' FIELD_PRIVATE_INFO_SECURITY = '%cpr' def decode(bytes, context=None): if PY3: return ( chr(bytes[3]) + chr(bytes[2]) + chr(bytes[1]) + chr(bytes[0]) ) else: return bytes[3] + bytes[2] + bytes[1] + bytes[0] decode = staticmethod(decode) class ControlChar(object): class CHAR(object): size = 1 class INLINE(object): size = 8 class EXTENDED(object): size = 8 chars = {0x00: ('NULL', CHAR), 0x01: ('CTLCHR01', EXTENDED), 0x02: ('SECTION_COLUMN_DEF', EXTENDED), 0x03: ('FIELD_START', EXTENDED), 0x04: ('FIELD_END', INLINE), 0x05: ('CTLCHR05', INLINE), 0x06: ('CTLCHR06', INLINE), 0x07: ('CTLCHR07', INLINE), 0x08: ('TITLE_MARK', INLINE), 0x09: ('TAB', INLINE), 0x0a: ('LINE_BREAK', CHAR), 0x0b: ('DRAWING_TABLE_OBJECT', EXTENDED), 0x0c: ('CTLCHR0C', EXTENDED), 0x0d: ('PARAGRAPH_BREAK', CHAR), 0x0e: ('CTLCHR0E', EXTENDED), 0x0f: ('HIDDEN_EXPLANATION', EXTENDED), 0x10: ('HEADER_FOOTER', EXTENDED), 0x11: ('FOOT_END_NOTE', EXTENDED), 0x12: ('AUTO_NUMBER', EXTENDED), 0x13: ('CTLCHR13', INLINE), 0x14: ('CTLCHR14', INLINE), 0x15: ('PAGE_CTLCHR', EXTENDED), 0x16: ('BOOKMARK', EXTENDED), 0x17: ('CTLCHR17', EXTENDED), 0x18: ('HYPHEN', CHAR), 0x1e: ('NONBREAK_SPACE', CHAR), 0x1f: ('FIXWIDTH_SPACE', CHAR)} names = dict((unichr(code), name) for code, (name, kind) in chars.items()) kinds = dict((unichr(code), kind) for code, (name, kind) in chars.items()) def _populate(cls): for ch, name in cls.names.items(): setattr(cls, name, ch) _populate = classmethod(_populate) REGEX_CONTROL_CHAR = re.compile(b'[\x00-\x1f]\x00') def find(cls, data, start_idx): while True: m = cls.REGEX_CONTROL_CHAR.search(data, start_idx) if m is not None: i = m.start() if i & 1 == 1: start_idx = i + 1 continue if PY3: char = unichr(data[i]) else: char = unichr(ord(data[i])) size = cls.kinds[char].size return i, i + (size * 2) data_len = len(data) return data_len, data_len find = classmethod(find) def decode(cls, bytes): code = UINT16.decode(bytes[0:2]) ch = unichr(code) if cls.kinds[ch].size == 8: bytes = bytes[2:2 + 12] if ch == ControlChar.TAB: param = dict(width=UINT32.decode(bytes[0:4]), unknown0=UINT8.decode(bytes[4:5]), unknown1=UINT8.decode(bytes[5:6]), unknown2=bytes[6:]) return dict(code=code, param=param) else: chid = CHID.decode(bytes[0:4]) param = bytes[4:12] return dict(code=code, chid=chid, param=param) else: return dict(code=code) decode = classmethod(decode) def get_kind_by_code(cls, code): ch = unichr(code) return cls.kinds[ch] get_kind_by_code = classmethod(get_kind_by_code) def get_name_by_code(cls, code): ch = unichr(code) return cls.names.get(ch, 'CTLCHR%02x' % code) get_name_by_code = classmethod(get_name_by_code) ControlChar._populate() ================================================ FILE: src/hwp5/binmodel/controls/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controls.bookmark_control import BookmarkControl from hwp5.binmodel.controls.columns_def import ColumnsDef from hwp5.binmodel.controls.common_controls import CommonControl from hwp5.binmodel.controls.dutmal import Dutmal from hwp5.binmodel.controls.field import Field from hwp5.binmodel.controls.field import FieldUnknown from hwp5.binmodel.controls.field import FieldDate from hwp5.binmodel.controls.field import FieldDocDate from hwp5.binmodel.controls.field import FieldPath from hwp5.binmodel.controls.field import FieldBookmark from hwp5.binmodel.controls.field import FieldMailMerge from hwp5.binmodel.controls.field import FieldCrossRef from hwp5.binmodel.controls.field import FieldFormula from hwp5.binmodel.controls.field import FieldClickHere from hwp5.binmodel.controls.field import FieldClickHereData from hwp5.binmodel.controls.field import FieldSummary from hwp5.binmodel.controls.field import FieldUserInfo from hwp5.binmodel.controls.field import FieldHyperLink from hwp5.binmodel.controls.field import FieldMemo from hwp5.binmodel.controls.field import FieldPrivateInfoSecurity from hwp5.binmodel.controls.gshape_object_control import GShapeObjectControl from hwp5.binmodel.controls.header_footer import HeaderFooter from hwp5.binmodel.controls.hidden_comment import HiddenComment from hwp5.binmodel.controls.index_marker import IndexMarker from hwp5.binmodel.controls.note import Note from hwp5.binmodel.controls.note import FootNote from hwp5.binmodel.controls.note import EndNote from hwp5.binmodel.controls.numbering import AutoNumbering from hwp5.binmodel.controls.numbering import NewNumbering from hwp5.binmodel.controls.page_hide import PageHide from hwp5.binmodel.controls.page_number_position import PageNumberPosition from hwp5.binmodel.controls.page_odd_even import PageOddEven from hwp5.binmodel.controls.section_def import SectionDef from hwp5.binmodel.controls.table_control import TableControl from hwp5.binmodel.controls.tcps_control import TCPSControl # suppress pyflake8 warning 'imported but not used' BookmarkControl ColumnsDef CommonControl Dutmal Field FieldUnknown FieldDate FieldDocDate FieldPath FieldBookmark FieldMailMerge FieldCrossRef FieldFormula FieldClickHere FieldClickHereData FieldSummary FieldUserInfo FieldHyperLink FieldMemo FieldPrivateInfoSecurity GShapeObjectControl HeaderFooter HiddenComment IndexMarker Note FootNote EndNote AutoNumbering NewNumbering PageHide PageNumberPosition PageOddEven SectionDef TableControl TCPSControl ================================================ FILE: src/hwp5/binmodel/controls/_shared.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from six import with_metaclass from hwp5.binmodel._shared import RecordModelType from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_CTRL_HEADER from hwp5.binmodel.controlchar import CHID control_models = dict() class ControlType(RecordModelType): def __new__(mcs, name, bases, attrs): cls = RecordModelType.__new__(mcs, name, bases, attrs) if 'chid' in attrs: chid = attrs['chid'] assert chid not in control_models control_models[chid] = cls return cls class Control(with_metaclass(ControlType, RecordModel)): ''' 4.2.6. 컨트롤 헤더 ''' tagid = HWPTAG_CTRL_HEADER def attributes(): yield CHID, 'chid' attributes = staticmethod(attributes) extension_types = control_models def get_extension_key(cls, context, model): ''' chid ''' return model['content']['chid'] get_extension_key = classmethod(get_extension_key) ================================================ FILE: src/hwp5/binmodel/controls/bookmark_control.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import BSTR from hwp5.binmodel.tagid71_ctrl_data import ControlData from hwp5.binmodel.controls._shared import Control class BookmarkControl(Control): ''' 4.2.10.11. 책갈피 ''' chid = CHID.BOKM def attributes(): if False: yield attributes = staticmethod(attributes) class BookmarkControlData(ControlData): parent_model_type = BookmarkControl def attributes(): yield UINT32, 'unknown1' yield UINT32, 'unknown2' yield UINT16, 'unknown3' yield BSTR, 'name' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/columns_def.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import Struct from hwp5.dataio import UINT16 from hwp5.dataio import WORD from hwp5.dataio import HWPUNIT16 from hwp5.dataio import X_ARRAY from hwp5.dataio import ref_member_flag from hwp5.binmodel.controls._shared import Control from hwp5.binmodel._shared import Border class Column0(Struct): @staticmethod def attributes(): yield WORD, 'width' class Column(Struct): @staticmethod def attributes(): yield WORD, 'spacing' yield WORD, 'width' class ColumnsDef(Control): ''' 4.2.10.2. 단 정의 ''' chid = CHID.COLD Kind = Enum('normal', 'distribute', 'parallel') Direction = Enum('l2r', 'r2l', 'both') Flags = Flags(UINT16, 0, 1, Kind, 'kind', 2, 9, 'count', 10, 11, Direction, 'direction', 12, 'same_widths') def attributes(cls): yield cls.Flags, 'flags' yield HWPUNIT16, 'spacing' def not_same_widths(context, values): ''' flags.same_widths == 0 ''' return not values['flags'].same_widths def n_entries(member_ref): def n_entries(context, values): n_columns = member_ref(context, values) return n_columns - 1 return n_entries yield dict(name='column0', type=Column0, condition=not_same_widths) yield dict(name='columns', type=X_ARRAY(Column, n_entries(ref_member_flag('flags', 'count'))), condition=not_same_widths) yield UINT16, 'attr2' yield Border, 'splitter' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/common_controls.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controls._shared import Control from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import SHWPUNIT from hwp5.dataio import HWPUNIT from hwp5.dataio import INT16 from hwp5.dataio import BSTR from hwp5.binmodel._shared import Margin class CommonControl(Control): # 표 65 개체 공통 속성의 속성 Flow = Enum(FLOAT=0, BLOCK=1, BACK=2, FRONT=3) TextSide = Enum(BOTH=0, LEFT=1, RIGHT=2, LARGER=3) VRelTo = Enum(PAPER=0, PAGE=1, PARAGRAPH=2) HRelTo = Enum(PAPER=0, PAGE=1, COLUMN=2, PARAGRAPH=3) VAlign = Enum(TOP=0, MIDDLE=1, BOTTOM=2) HAlign = Enum(LEFT=0, CENTER=1, RIGHT=2, INSIDE=3, OUTSIDE=4) WidthRelTo = Enum(PAPER=0, PAGE=1, COLUMN=2, PARAGRAPH=3, ABSOLUTE=4) HeightRelTo = Enum(PAPER=0, PAGE=1, ABSOLUTE=2) NumberCategory = Enum(NONE=0, FIGURE=1, TABLE=2, EQUATION=3) CommonControlFlags = Flags(UINT32, 0, 'inline', 2, 'affect_line_spacing', 3, 4, VRelTo, 'vrelto', 5, 7, VAlign, 'valign', 8, 9, HRelTo, 'hrelto', 10, 12, HAlign, 'halign', 13, 'restrict_in_page', 14, 'overlap_others', 15, 17, WidthRelTo, 'width_relto', 18, 19, HeightRelTo, 'height_relto', 20, 'protect_size_when_vrelto_paragraph', 21, 23, Flow, 'flow', 24, 25, TextSide, 'text_side', 26, 27, NumberCategory, 'number_category') MARGIN_LEFT = 0 MARGIN_RIGHT = 1 MARGIN_TOP = 2 MARGIN_BOTTOM = 3 def attributes(cls): ''' 표 64 개체 공통 속성 ''' yield cls.CommonControlFlags, 'flags', yield SHWPUNIT, 'y', # DIFFSPEC yield SHWPUNIT, 'x', # DIFFSPEC yield HWPUNIT, 'width', yield HWPUNIT, 'height', yield INT16, 'z_order', yield INT16, 'unknown1', yield Margin, 'margin', yield UINT32, 'instance_id', yield dict(type=INT16, name='unknown2', version=(5, 0, 0, 5)) yield dict(type=BSTR, name='description', version=(5, 0, 0, 5)) attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/dutmal.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import BSTR from hwp5.binmodel.controls._shared import Control class Dutmal(Control): ''' 4.2.10.13. 덧말 ''' chid = CHID.TDUT Position = Enum(ABOVE=0, BELOW=1, CENTER=2) Align = Enum(BOTH=0, LEFT=1, RIGHT=2, CENTER=3, DISTRIBUTE=4, DISTRIBUTE_SPACE=5) def attributes(cls): yield BSTR, 'maintext' yield BSTR, 'subtext' yield Flags(UINT32, 0, 31, cls.Position, 'position'), 'position-flags' yield UINT32, 'fsizeratio' yield UINT32, 'option' yield UINT32, 'stylenumber' yield Flags(UINT32, 0, 31, cls.Align, 'align'), 'align-flags' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/field.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import BSTR from hwp5.dataio import BYTE from hwp5.binmodel.tagid71_ctrl_data import ControlData from hwp5.binmodel.controls._shared import Control class Field(Control): ''' 4.2.10.15 필드 시작 ''' Flags = Flags(UINT32, 0, 'editableInReadOnly', 11, 14, 'visitedType', 15, 'modified') def attributes(cls): yield cls.Flags, 'flags', yield BYTE, 'extra_attr', yield BSTR, 'command', yield UINT32, 'id', attributes = classmethod(attributes) class FieldUnknown(Field): chid = CHID.FIELD_UNK class FieldDate(Field): chid = CHID.FIELD_DTE class FieldDocDate(Field): chid = CHID.FIELD_DDT class FieldPath(Field): chid = CHID.FIELD_PAT class FieldBookmark(Field): chid = CHID.FIELD_BMK class FieldMailMerge(Field): chid = CHID.FIELD_MMG class FieldCrossRef(Field): chid = CHID.FIELD_XRF class FieldFormula(Field): chid = CHID.FIELD_FMU class FieldClickHere(Field): chid = CHID.FIELD_CLK class FieldClickHereData(ControlData): parent_model_type = FieldClickHere class FieldSummary(Field): chid = CHID.FIELD_SMR class FieldUserInfo(Field): chid = CHID.FIELD_USR class FieldHyperLink(Field): chid = CHID.FIELD_HLK def geturl(self): s = self.command.split(';') return s[0].replace('\\:', ':') class FieldRevisionSign(Field): chid = CHID.FIELD_REVISION_SIGN class FieldRevisionDelete(Field): chid = CHID.FIELD_REVISION_DELETE class FieldRevisionAttach(Field): chid = CHID.FIELD_REVISION_ATTACH class FieldRevisionClipping(Field): chid = CHID.FIELD_REVISION_CLIPPING class FieldRevisionSawtooth(Field): chid = CHID.FIELD_REVISION_SAWTOOTH class FieldRevisionThinking(Field): chid = CHID.FIELD_REVISION_THINKING class FieldRevisionPraise(Field): chid = CHID.FIELD_REVISION_PRAISE class FieldRevisionLine(Field): chid = CHID.FIELD_REVISION_LINE class FieldRevisionSimpleChange(Field): chid = CHID.FIELD_REVISION_SIMPLECHANGE class FieldRevisionHyperlink(Field): chid = CHID.FIELD_REVISION_HYPERLINK class FieldRevisionLineAttach(Field): chid = CHID.FIELD_REVISION_LINEATTACH class FieldRevisionLineLink(Field): chid = CHID.FIELD_REVISION_LINELINK class FieldRevisionLineTransfer(Field): chid = CHID.FIELD_REVISION_LINETRANSFER class FieldRevisionRightMove(Field): chid = CHID.FIELD_REVISION_RIGHTMOVE class FieldRevisionLeftMove(Field): chid = CHID.FIELD_REVISION_LEFTMOVE class FieldRevisionTransfer(Field): chid = CHID.FIELD_REVISION_TRANSFER class FieldRevisionSimpleInsert(Field): chid = CHID.FIELD_REVISION_SIMPLEINSERT class FieldRevisionSplit(Field): chid = CHID.FIELD_REVISION_SPLIT class FieldRevisionChange(Field): chid = CHID.FIELD_REVISION_CHANGE class FieldMemo(Field): chid = CHID.FIELD_MEMO class FieldPrivateInfoSecurity(Field): chid = CHID.FIELD_PRIVATE_INFO_SECURITY ================================================ FILE: src/hwp5/binmodel/controls/gshape_object_control.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controls.common_controls import CommonControl from hwp5.binmodel.controlchar import CHID class GShapeObjectControl(CommonControl): chid = CHID.GSO ================================================ FILE: src/hwp5/binmodel/controls/header_footer.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.binmodel.controls._shared import Control class HeaderFooter(Control): ''' 4.2.10.3. 머리말/꼬리말 ''' Places = Enum(BOTH_PAGES=0, EVEN_PAGE=1, ODD_PAGE=2) Flags = Flags(UINT32, 0, 1, Places, 'places') def attributes(cls): yield cls.Flags, 'flags' attributes = classmethod(attributes) class Header(HeaderFooter): ''' 머리말 ''' chid = CHID.HEADER class Footer(HeaderFooter): ''' 꼬리말 ''' chid = CHID.FOOTER ================================================ FILE: src/hwp5/binmodel/controls/hidden_comment.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.binmodel.controls._shared import Control class HiddenComment(Control): ''' 4.2.10.14 숨은 설명 ''' chid = CHID.TCMT def attributes(): if False: yield attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/index_marker.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import UINT16 from hwp5.dataio import BSTR from hwp5.binmodel.controls._shared import Control class IndexMarker(Control): ''' 4.2.10.10. 찾아보기 표식 ''' chid = CHID.IDXM def attributes(): yield BSTR, 'keyword1' yield BSTR, 'keyword2' yield UINT16, 'dummy' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/note.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.binmodel.controls._shared import Control class Note(Control): ''' 4.2.10.4 미주/각주 ''' def attributes(): yield UINT32, 'number' yield UINT32, 'unknown0' yield UINT32, 'unknown1' yield dict(type=UINT16, name='unknown2', version=(5, 0, 3, 0)) yield dict(type=UINT16, name='unknown3', version=(5, 0, 3, 0)) attributes = staticmethod(attributes) class FootNote(Note): ''' 각주 ''' chid = CHID.FN class EndNote(Note): ''' 미주 ''' chid = CHID.EN ================================================ FILE: src/hwp5/binmodel/controls/numbering.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import WCHAR from hwp5.binmodel.controls._shared import Control class NumberingControl(Control): Kind = Enum( PAGE=0, FOOTNOTE=1, ENDNOTE=2, PICTURE=3, TABLE=4, EQUATION=5, UNKNOWN6=6, ) Flags = Flags(UINT32, 0, 3, Kind, 'kind', 4, 11, 'footnoteshape', 12, 'superscript') def attributes(cls): yield cls.Flags, 'flags', yield UINT16, 'number', attributes = classmethod(attributes) class AutoNumbering(NumberingControl): ''' 4.2.10.5. 자동 번호 ''' chid = CHID.ATNO def attributes(cls): yield WCHAR, 'usersymbol', yield WCHAR, 'prefix', yield WCHAR, 'suffix', attributes = classmethod(attributes) def __unicode__(self): prefix = u'' suffix = u'' if self.flags.kind == self.Kind.FOOTNOTE: if self.suffix != u'\x00': suffix = self.suffix return prefix + unicode(self.number) + suffix class NewNumbering(NumberingControl): ''' 4.2.10.6. 새 번호 지정 ''' chid = CHID.NWNO ================================================ FILE: src/hwp5/binmodel/controls/page_hide.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.binmodel.controls._shared import Control class PageHide(Control): ''' 4.2.10.7 감추기 ''' chid = CHID.PGHD Flags = Flags(UINT32, 0, 'header', 1, 'footer', 2, 'basepage', 3, 'pageborder', 4, 'pagefill', 5, 'pagenumber') def attributes(cls): yield cls.Flags, 'flags' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/page_number_position.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import WCHAR from hwp5.binmodel.controls._shared import Control class PageNumberPosition(Control): ''' 4.2.10.9. 쪽 번호 위치 ''' chid = CHID.PGNP Position = Enum(NONE=0, TOP_LEFT=1, TOP_CENTER=2, TOP_RIGHT=3, BOTTOM_LEFT=4, BOTTOM_CENTER=5, BOTTOM_RIGHT=6, OUTSIDE_TOP=7, OUTSIDE_BOTTOM=8, INSIDE_TOP=9, INSIDE_BOTTOM=10) Flags = Flags(UINT32, 0, 7, 'shape', 8, 11, Position, 'position') def attributes(cls): yield cls.Flags, 'flags' yield WCHAR, 'usersymbol' yield WCHAR, 'prefix' yield WCHAR, 'suffix' yield WCHAR, 'dash' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/page_odd_even.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.binmodel.controls._shared import Control class PageOddEven(Control): ''' 4.2.10.8 홀/짝수 조정 ''' chid = CHID.PGCT OddEven = Enum(BOTH_PAGES=0, EVEN_PAGE=1, ODD_PAGE=2) Flags = Flags(UINT32, 0, 1, OddEven, 'pages') def attributes(cls): yield cls.Flags, 'flags' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/section_def.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import HWPUNIT from hwp5.dataio import HWPUNIT16 from hwp5.dataio import HexBytes from hwp5.binmodel.tagid71_ctrl_data import ControlData from hwp5.binmodel.controls._shared import Control class SectionDef(Control): ''' 4.2.10.1. 구역 정의 ''' chid = CHID.SECD Flags = Flags(UINT32, 0, 'hide_header', 1, 'hide_footer', 2, 'hide_page', 3, 'hide_border', 4, 'hide_background', 5, 'hide_pagenumber', 8, 'show_border_on_first_page_only', 9, 'show_background_on_first_page_only', 16, 18, 'text_direction', 19, 'hide_blank_line', 20, 21, 'pagenum_on_split_section', 22, 'squared_manuscript_paper') def attributes(cls): yield cls.Flags, 'flags', yield HWPUNIT16, 'columnspacing', yield HWPUNIT16, 'grid_vertical', yield HWPUNIT16, 'grid_horizontal', yield HWPUNIT, 'defaultTabStops', yield UINT16, 'numbering_shape_id', yield UINT16, 'starting_pagenum', yield UINT16, 'starting_picturenum', yield UINT16, 'starting_tablenum', yield UINT16, 'starting_equationnum', yield dict(type=UINT32, name='unknown1', version=(5, 0, 1, 7)) yield dict(type=UINT32, name='unknown2', version=(5, 0, 1, 7)) attributes = classmethod(attributes) class SectionDefData(ControlData): parent_model_type = SectionDef def attributes(): yield HexBytes(280), 'unknown' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/controls/table_control.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controls.common_controls import CommonControl from hwp5.binmodel.controlchar import CHID from hwp5.binmodel.tagid61_table import TableBody class TableControl(CommonControl): chid = CHID.TBL def on_child(cls, attributes, context, child): child_context, child_model = child if child_model['type'] is TableBody: # referenced in ListHeader parsing context['seen_table_body'] = True on_child = classmethod(on_child) ================================================ FILE: src/hwp5/binmodel/controls/tcps_control.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controlchar import CHID from hwp5.dataio import BSTR from hwp5.binmodel.controls._shared import Control class TCPSControl(Control): ''' 4.2.10.12. 글자 겹침 ''' chid = CHID.TCPS def attributes(): yield BSTR, 'textlength' # yield UINT8, 'frameType' # yield INT8, 'internalCharacterSize' # yield UINT8, 'internalCharacterFold' # yield N_ARRAY(UINT8, UINT32), 'characterShapeIds' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid16_document_properties.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_DOCUMENT_PROPERTIES from hwp5.dataio import UINT16 from hwp5.dataio import UINT32 class DocumentProperties(RecordModel): ''' 4.1.1. 문서 속성 ''' tagid = HWPTAG_DOCUMENT_PROPERTIES def attributes(): ''' 표 9 문서 속성 ''' yield UINT16, 'section_count', yield UINT16, 'page_startnum', yield UINT16, 'footnote_startnum', yield UINT16, 'endnote_startnum', yield UINT16, 'picture_startnum', yield UINT16, 'table_startnum', yield UINT16, 'math_startnum', yield UINT32, 'list_id', yield UINT32, 'paragraph_id', yield UINT32, 'character_unit_loc_in_paragraph', # yield UINT32, 'flags', # DIFFSPEC attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid17_id_mappings.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_ID_MAPPINGS from hwp5.dataio import UINT32 class IdMappings(RecordModel): ''' 4.1.2. 아이디 매핑 헤더 ''' tagid = HWPTAG_ID_MAPPINGS def attributes(): ''' 표 10 아이디 매핑 헤더 ''' yield UINT32, 'bindata', yield UINT32, 'ko_fonts', yield UINT32, 'en_fonts', yield UINT32, 'cn_fonts', yield UINT32, 'jp_fonts', yield UINT32, 'other_fonts', yield UINT32, 'symbol_fonts', yield UINT32, 'user_fonts', yield UINT32, 'borderfills', yield UINT32, 'charshapes', yield UINT32, 'tabdefs', yield UINT32, 'numberings', yield UINT32, 'bullets', yield UINT32, 'parashapes', yield UINT32, 'styles', # memoshapes are found from 5.0.1.7, but not in 5.0.1.6 yield dict(type=UINT32, name='memoshapes', version=(5, 0, 1, 7)) # TODO unknown fields: # followings are found from 5.0.3.2, but not in 5.0.3.1 # but some 5.0.3.3 files do not have them: # 5.0.3.3/d6dfac424525298119de54410c3b22d74aa85511 # yield dict(type=UINT32, name='unknown1', version=(5, 0, 3, 2)) # yield dict(type=UINT32, name='unknown2', version=(5, 0, 3, 2)) attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid18_bin_data.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_BIN_DATA from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT16 from hwp5.dataio import Struct from hwp5.dataio import BSTR from hwp5.dataio import SelectiveType from hwp5.dataio import ref_member_flag from hwp5.binmodel._shared import BinStorageId class BinDataLink(Struct): def attributes(): yield BSTR, 'abspath' yield BSTR, 'relpath' attributes = staticmethod(attributes) class BinDataEmbedding(Struct): def attributes(): yield BinStorageId, 'storage_id' yield BSTR, 'ext' attributes = staticmethod(attributes) class BinDataStorage(Struct): def attributes(): yield BinStorageId, 'storage_id' attributes = staticmethod(attributes) class BinData(RecordModel): ''' 4.1.3. 바이너리 데이터 ''' tagid = HWPTAG_BIN_DATA # 표 13 바이너리 데이터 속성 StorageType = Enum(LINK=0, EMBEDDING=1, STORAGE=2) CompressionType = Enum(STORAGE_DEFAULT=0, YES=1, NO=2) AccessState = Enum(NEVER=0, OK=1, FAILED=2, FAILED_IGNORED=3) Flags = Flags(UINT16, 0, 3, StorageType, 'storage', 4, 5, CompressionType, 'compression', 16, 17, AccessState, 'access') def attributes(cls): ''' 표 12 바이너리 데이터 ''' yield cls.Flags, 'flags' yield (SelectiveType(ref_member_flag('flags', 'storage'), {cls.StorageType.LINK: BinDataLink, cls.StorageType.EMBEDDING: BinDataEmbedding, cls.StorageType.STORAGE: BinDataStorage}), 'bindata') attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid19_face_name.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_FACE_NAME from hwp5.dataio import Flags from hwp5.dataio import Enum from hwp5.dataio import BSTR from hwp5.dataio import BYTE from hwp5.dataio import Struct class AlternateFont(Struct): def attributes(): yield BYTE, 'kind' yield BSTR, 'name' attributes = staticmethod(attributes) class Panose1(Struct): ''' 표 17 글꼴 유형 정보 ''' FamilyType = Enum('any', 'no_fit', 'text_display', 'script', 'decorative', 'pictorial') SerifStyle = Enum('any', 'no_fit', 'cove', 'obtuse_cove', 'square_cove', 'obtuse_square_cove', 'square', 'thin', 'bone', 'exaggerated', 'triangle', 'normal_sans', 'obtuse_sans', 'perp_sans', 'flared', 'rounded') Weight = Enum('any', 'no_fit', 'very_light', 'light', 'thin', 'book', 'medium', 'demi', 'bold', 'heavy', 'black', 'nord') Proportion = Enum('any', 'no_fit', 'old_style', 'modern', 'even_width', 'expanded', 'condensed', 'very_expanded', 'very_condensed', 'monospaced') Contrast = Enum('any', 'no_fit', 'none', 'very_low', 'low', 'medium_low', 'medium', 'medium_high', 'high', 'very_high') StrokeVariation = Enum('any', 'no_fit', 'gradual_diag', 'gradual_tran', 'gradual_vert', 'gradual_horz', 'rapid_vert', 'rapid_horz', 'instant_vert') ArmStyle = Enum('any', 'no_fit', 'straight_horz', 'straight_wedge', 'straight_vert', 'straight_single_serif', 'straight_double_serif', 'bent_horz', 'bent_wedge', 'bent_vert', 'bent_single_serif', 'bent_double_serif') Letterform = Enum('any', 'no_fit', 'normal_contact', 'normal_weighted', 'normal_boxed', 'normal_flattened', 'normal_rounded', 'normal_off_center', 'normal_square', 'oblique_contact', 'oblique_weighted', 'oblique_boxed', 'oblique_flattened', 'oblique_rounded', 'oblique_off_center', 'oblique_square') Midline = Enum('any', 'no_fit', 'standard_trimmed', 'standard_pointed', 'standard_serifed', 'high_trimmed', 'high_pointed', 'high_serifed', 'constant_trimmed', 'constant_pointed', 'constant_serifed', 'low_trimmed', 'low_pointed', 'low_serifed') XHeight = Enum('any', 'no_fit', 'constant_small', 'constant_std', 'constant_large', 'ducking_small', 'ducking_std', 'ducking_large') def attributes(): yield BYTE, 'family_type', yield BYTE, 'serif_style', yield BYTE, 'weight', yield BYTE, 'proportion', yield BYTE, 'contrast', yield BYTE, 'stroke_variation', yield BYTE, 'arm_style', yield BYTE, 'letterform', yield BYTE, 'midline', yield BYTE, 'x_height', attributes = staticmethod(attributes) class FaceName(RecordModel): ''' 4.1.4. 글꼴 ''' tagid = HWPTAG_FACE_NAME # 표 16 대체 글꼴 유형 FontFileType = Enum(UNKNOWN=0, TTF=1, HFT=2) # 표 15 글꼴 속성 Flags = Flags(BYTE, 0, 1, FontFileType, 'font_file_type', 5, 'default', 6, 'metric', 7, 'alternate') def attributes(cls): ''' 표 14 글꼴 ''' yield cls.Flags, 'flags' yield BSTR, 'name' def has_alternate(context, values): ''' flags.alternate == 1 ''' return values['flags'].alternate def has_metric(context, values): ''' flags.metric == 1 ''' return values['flags'].metric def has_default(context, values): ''' flags.default == 1 ''' return values['flags'].default yield dict(type=AlternateFont, name='alternate_font', condition=has_alternate) yield dict(type=Panose1, name='panose1', condition=has_metric) yield dict(type=BSTR, name='default_font', condition=has_default) attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid20_border_fill.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_BORDER_FILL from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import BYTE from hwp5.dataio import Flags # from hwp5.dataio import N_ARRAY from hwp5.binmodel._shared import Border from hwp5.binmodel._shared import FillColorPattern from hwp5.binmodel._shared import FillGradation from hwp5.binmodel._shared import FillImage class BorderFill(RecordModel): ''' 4.1.5. 테두리/배경 ''' tagid = HWPTAG_BORDER_FILL # 표 19 테두리/배경 속성 BorderFlags = Flags(UINT16, 0, 'effect_3d', 1, 'effect_shadow', 2, 4, 'slash', 5, 6, 'backslash') # 표 23 채우기 정보 FillFlags = Flags(UINT32, 0, 'colorpattern', 1, 'image', 2, 'gradation') def attributes(cls): ''' 표 18 테두리/배경 속성 ''' yield cls.BorderFlags, 'borderflags' yield Border, 'left', yield Border, 'right', yield Border, 'top', yield Border, 'bottom', yield Border, 'diagonal' yield cls.FillFlags, 'fillflags' def fill_colorpattern(context, values): ''' fillflags.fill_colorpattern ''' return values['fillflags'].colorpattern def fill_image(context, values): ''' fillflags.fill_image ''' return values['fillflags'].image def fill_gradation(context, values): ''' fillflags.fill_gradation ''' return values['fillflags'].gradation yield dict(type=FillColorPattern, name='fill_colorpattern', condition=fill_colorpattern) yield dict(type=FillGradation, name='fill_gradation', condition=fill_gradation) yield dict(type=FillImage, name='fill_image', condition=fill_image) yield dict(type=UINT32, name='shape', condition=fill_gradation) yield dict(type=BYTE, name='blur_center', condition=fill_gradation) # 스펙 1.2의 표28 설명과는 달리, # 적어도 5.0.1.7에서, 있는 경우가 있고 없는 경우가 있음 # yield N_ARRAY(UINT32, BYTE), 'extended' # SPEC attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid21_char_shape.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_CHAR_SHAPE from hwp5.dataio import StructType from hwp5.dataio import Struct from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import INT32 from hwp5.dataio import INT8 from hwp5.dataio import UINT8 from hwp5.dataio import WORD from hwp5.binmodel._shared import COLORREF def LanguageStruct(name, basetype): ''' 표 29 글꼴에 대한 언어 ''' def attributes(): for lang in ('ko', 'en', 'cn', 'jp', 'other', 'symbol', 'user'): yield basetype, lang attributes = staticmethod(attributes) return StructType(name, (Struct,), dict(basetype=basetype, attributes=attributes)) class ShadowSpace(Struct): def attributes(): yield INT8, 'x' yield INT8, 'y' attributes = staticmethod(attributes) class CharShape(RecordModel): ''' 4.1.6. 글자 모양 ''' tagid = HWPTAG_CHAR_SHAPE # 표 30 글자 모양 속성 Underline = Enum(NONE=0, UNDERLINE=1, LINE_THROUGH=2, OVERLINE=3) UnderlineStyle = Enum(SOLID=0, DASHED=1, DOTTED=2, DASH_DOT=3, DASH_DOT_DOT=4, LONG_DASHED=5, LARGE_DOTTED=6, DOUBLE=7, LOWER_WEIGHTED=8, UPPER_WEIGHTED=9, MIDDLE_WEIGHTED=10) Flags = Flags(UINT32, 0, 'italic', 1, 'bold', 2, 3, Underline, 'underline', 4, 7, UnderlineStyle, 'underline_style', 8, 10, 'outline', 11, 13, 'shadow') def attributes(cls): ''' 표 28 글자 모양 ''' yield LanguageStruct('FontFace', WORD), 'font_face', yield (LanguageStruct('LetterWidthExpansion', UINT8), 'letter_width_expansion') yield LanguageStruct('LetterSpacing', INT8), 'letter_spacing' yield LanguageStruct('RelativeSize', INT8), 'relative_size' yield LanguageStruct('Position', INT8), 'position' yield INT32, 'basesize', yield cls.Flags, 'charshapeflags', yield ShadowSpace, 'shadow_space' yield COLORREF, 'text_color', yield COLORREF, 'underline_color', yield COLORREF, 'shade_color', yield COLORREF, 'shadow_color', # yield UINT16, 'borderfill_id', # DIFFSPEC # yield COLORREF, 'strikeoutColor', # DIFFSPEC attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid22_tab_def.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_TAB_DEF from hwp5.dataio import HWPUNIT from hwp5.dataio import UINT32 from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import Struct from hwp5.dataio import N_ARRAY class Tab(Struct): Kind = Enum(LEFT=0, RIGHT=1, CENTER=2, FLOAT=3) Flags = Flags(UINT32, 0, 7, Kind, 'kind', 8, 15, 'fill_type') @classmethod def attributes(cls): yield HWPUNIT, 'pos', yield cls.Flags, 'flags' class TabDef(RecordModel): ''' 4.1.7. 탭 정의 ''' tagid = HWPTAG_TAB_DEF ''' 표 32 탭 정의 속성 ''' Flags = Flags(UINT32, 0, 'autotab_left', 1, 'autotab_right') @classmethod def attributes(cls): yield dict(type=cls.Flags, name='flags') yield dict(type=N_ARRAY(UINT32, Tab), name='tabs') ================================================ FILE: src/hwp5/binmodel/tagid23_numbering.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_NUMBERING from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import INT32 from hwp5.dataio import BSTR from hwp5.dataio import HWPUNIT16 from hwp5.dataio import Struct from hwp5.dataio import ARRAY class NumberingLevel(Struct): # 표 35 문단 머리 정보 속성 Align = Enum(LEFT=0, CENTER=1, RIGHT=2, UNKNOWN=3) DistanceType = Enum(RATIO=0, VALUE=1) Flags = Flags(UINT32, 0, 1, Align, 'align', 2, 'auto_width', 3, 'auto_indent', 4, DistanceType, 'space_type') @classmethod def attributes(cls): ''' 표 34 문단 머리 정보 ''' yield cls.Flags, 'flags' yield HWPUNIT16, 'width_correction' yield UINT16, 'space' yield INT32, 'charshape_id' yield BSTR, 'numbering_format' # see 표 36 문단 번호 형식 class Numbering(RecordModel): ''' 4.1.8. 문단 번호 ''' tagid = HWPTAG_NUMBERING Align = NumberingLevel.Align DistanceType = NumberingLevel.DistanceType Flags = NumberingLevel.Flags def attributes(cls): ''' 표 33 문단 번호 ''' yield ARRAY(NumberingLevel, 7), 'levels' yield UINT16, 'starting_number' yield dict(type=ARRAY(UINT32, 7), name='unknown', version=(5, 0, 3, 0)) attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid24_bullet.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_BULLET from hwp5.dataio import INT32 from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import HWPUNIT16 from hwp5.dataio import WCHAR from hwp5.dataio import Enum from hwp5.dataio import Flags BulletAlignEnum = Enum(LEFT=0, CENTER=1, RIGHT=2) BulletFlags = Flags(UINT32, 0, 1, BulletAlignEnum, 'align', 3, 'auto_indent') class Bullet(RecordModel): ''' 4.1.9. 글머리표 ''' tagid = HWPTAG_BULLET @staticmethod def attributes(): # TODO: Spec 1.2 is insufficient and incorrect yield BulletFlags, 'flags', yield HWPUNIT16, 'width', # 너비, 단위: HWPUNIT yield UINT16, 'space', # 본문과의 간격, 단위: % yield INT32, 'charshape_id', yield WCHAR, 'char' ================================================ FILE: src/hwp5/binmodel/tagid25_para_shape.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_SHAPE from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import INT32 from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import SHWPUNIT from hwp5.dataio import HWPUNIT16 class ParaShape(RecordModel): ''' 4.1.10. 문단 모양 ''' tagid = HWPTAG_PARA_SHAPE # 표 39 문단 모양 속성1 LineSpacingType = Enum(RATIO=0, FIXED=1, SPACEONLY=2, MINIMUM=3) Align = Enum(BOTH=0, LEFT=1, RIGHT=2, CENTER=3, DISTRIBUTE=4, DISTRIBUTE_SPACE=5) VAlign = Enum(FONT=0, TOP=1, CENTER=2, BOTTOM=3) LineBreakAlphabet = Enum(WORD=0, HYPHEN=1, CHAR=2) LineBreakHangul = Enum(WORD=0, CHAR=1) HeadShape = Enum(NONE=0, OUTLINE=1, NUMBER=2, BULLET=3) Flags1 = Flags(UINT32, 0, 1, LineSpacingType, 'linespacing_type', 2, 4, Align, 'align', 5, 6, LineBreakAlphabet, 'linebreak_alphabet', 7, LineBreakHangul, 'linebreak_hangul', 8, 'use_paper_grid', 9, 15, 'minimum_space', # 공백 최소값 16, 'protect_single_line', # 외톨이줄 보호 17, 'with_next_paragraph', # 다음 문단과 함께 18, 'protect', # 문단 보호 19, 'start_new_page', # 문단 앞에서 항상 쪽 나눔 20, 21, VAlign, 'valign', 22, 'lineheight_along_fontsize', # 글꼴에 어울리는 줄 높이 23, 24, HeadShape, 'head_shape', # 문단 머리 모양 25, 27, 'level', # 문단 수준 28, 'linked_border', # 문단 테두리 연결 여부 29, 'ignore_margin', # 문단 여백 무시 30, 'tail_shape') # 문단 꼬리 모양 # 표 40 문단 모양 속성2 Flags2 = Flags(UINT32, 0, 1, 'in_single_line', 2, 3, 'reserved', 4, 'autospace_alphabet', 5, 'autospace_number') # 표 41 줄 간격 종류 Flags3 = Flags(UINT32, 0, 4, LineSpacingType, 'linespacing_type3') Flags = Flags1 def attributes(cls): ''' 표 38 문단 모양 ''' yield cls.Flags, 'parashapeflags', yield INT32, 'doubled_margin_left', # 1/7200 * 2 # DIFFSPEC yield INT32, 'doubled_margin_right', # 1/7200 * 2 yield SHWPUNIT, 'indent', yield INT32, 'doubled_margin_top', # 1/7200 * 2 yield INT32, 'doubled_margin_bottom', # 1/7200 * 2 yield SHWPUNIT, 'linespacing', yield UINT16, 'tabdef_id', yield UINT16, 'numbering_bullet_id', yield UINT16, 'borderfill_id', yield HWPUNIT16, 'border_left', yield HWPUNIT16, 'border_right', yield HWPUNIT16, 'border_top', yield HWPUNIT16, 'border_bottom', yield dict(type=cls.Flags2, name='flags2', version=(5, 0, 1, 7)) # yield cls.Flags3, 'flags3', # DIFFSPEC # yield UINT32, 'lineSpacing', # DIFFSPEC attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid26_style.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_STYLE from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import BYTE from hwp5.dataio import BSTR from hwp5.dataio import INT16 from hwp5.dataio import UINT16 class Style(RecordModel): ''' 4.1.11. 스타일 ''' tagid = HWPTAG_STYLE # 표 43 스타일 종류 Kind = Enum(PARAGRAPH=0, CHAR=1) Flags = Flags(BYTE, 0, 1, Kind, 'kind') def attributes(cls): ''' 표 42 스타일 ''' yield BSTR, 'local_name', yield BSTR, 'name', yield cls.Flags, 'flags', yield BYTE, 'next_style_id', yield INT16, 'lang_id', yield UINT16, 'parashape_id', yield UINT16, 'charshape_id', # unknown fields # following fields are found from 5.0.0.0 yield UINT16, 'unknown' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid27_doc_data.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_DOC_DATA class DocData(RecordModel): ''' 4.1.12. 문서 임의의 데이터 ''' tagid = HWPTAG_DOC_DATA # TODO ================================================ FILE: src/hwp5/binmodel/tagid28_distribute_doc_data.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_DISTRIBUTE_DOC_DATA class DistributeDocData(RecordModel): ''' 4.1.13. 배포용 문서 데이터 ''' tagid = HWPTAG_DISTRIBUTE_DOC_DATA ================================================ FILE: src/hwp5/binmodel/tagid30_compatible_document.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_COMPATIBLE_DOCUMENT from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 class CompatibleDocument(RecordModel): ''' 4.1.14. 호환 문서 ''' tagid = HWPTAG_COMPATIBLE_DOCUMENT # 표 50 대상 프로그램 Target = Enum(DEFAULT=0, HWP2007=1, MSWORD=2) Flags = Flags(UINT32, 0, 1, 'target') def attributes(cls): ''' 표 49 호환 문서 ''' yield cls.Flags, 'flags' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid31_layout_compatibility.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_LAYOUT_COMPATIBILITY from hwp5.dataio import UINT32 class LayoutCompatibility(RecordModel): ''' 4.1.15. 레이아웃 호환성 ''' tagid = HWPTAG_LAYOUT_COMPATIBILITY def attributes(): ''' 표 51 레이아웃 호환성 ''' yield UINT32, 'char', yield UINT32, 'paragraph', yield UINT32, 'section', yield UINT32, 'object', yield UINT32, 'field', attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid32_unknown.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_BEGIN_PLUS_16 class TagModel32(RecordModel): tagid = HWPTAG_BEGIN_PLUS_16 # TODO ================================================ FILE: src/hwp5/binmodel/tagid50_para_header.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_HEADER from hwp5.dataio import Flags from hwp5.dataio import BYTE from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 class Paragraph(RecordModel): ''' 4.2.1. 문단 헤더 ''' tagid = HWPTAG_PARA_HEADER # 표 54 단 나누기 종류 SplitFlags = Flags(BYTE, 0, 'new_section', 1, 'new_columnsdef', 2, 'new_page', 3, 'new_column') ControlMask = Flags(UINT32, 2, 'unknown1', 11, 'control', 21, 'new_number') Flags = Flags(UINT32, 31, 'unknown', 0, 30, 'chars') def attributes(cls): ''' 표 53 문단 헤더 ''' yield cls.Flags, 'text', yield cls.ControlMask, 'controlmask', yield UINT16, 'parashape_id', yield BYTE, 'style_id', yield cls.SplitFlags, 'split', yield UINT16, 'charshapes', yield UINT16, 'rangetags', yield UINT16, 'linesegs', yield UINT32, 'instance_id', attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid51_para_text.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from __future__ import division from six import with_metaclass from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_TEXT from hwp5.dataio import ArrayType from hwp5.binmodel.controlchar import ControlChar class ParaTextChunks(with_metaclass(ArrayType, list)): def read(cls, f): bytes = f.read() return [x for x in cls.parse_chunks(bytes)] read = classmethod(read) def parse_chunks(bytes): from hwp5.dataio import decode_utf16le_with_hypua size = len(bytes) idx = 0 while idx < size: ctrlpos, ctrlpos_end = ControlChar.find(bytes, idx) if idx < ctrlpos: text = decode_utf16le_with_hypua(bytes[idx:ctrlpos]) yield (idx // 2, ctrlpos // 2), text if ctrlpos < ctrlpos_end: cch = ControlChar.decode(bytes[ctrlpos:ctrlpos_end]) yield (ctrlpos // 2, ctrlpos_end // 2), cch idx = ctrlpos_end parse_chunks = staticmethod(parse_chunks) class ParaText(RecordModel): ''' 4.2.2. 문단의 텍스트 ''' tagid = HWPTAG_PARA_TEXT def attributes(): yield ParaTextChunks, 'chunks' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid52_para_char_shape.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from six import with_metaclass from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_CHAR_SHAPE from hwp5.dataio import ArrayType from hwp5.dataio import X_ARRAY from hwp5.dataio import ARRAY from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.binmodel._shared import ref_parent_member class ParaCharShape(RecordModel): ''' 4.2.3. 문단의 글자 모양 ''' tagid = HWPTAG_PARA_CHAR_SHAPE def attributes(): ''' 표 56 문단의 글자 모양 ''' yield dict(name='charshapes', type=X_ARRAY(ARRAY(UINT32, 2), ref_parent_member('charshapes'))) attributes = staticmethod(attributes) class ParaCharShapeList(with_metaclass(ArrayType, list)): itemtype = ARRAY(UINT16, 2) def read(cls, f, context): bytes = f.read() return cls.decode(bytes, context) read = classmethod(read) def decode(payload, context=None): import struct fmt = 'II' unitsize = struct.calcsize('<' + fmt) unitcount = len(payload) / unitsize values = struct.unpack('<' + (fmt * unitcount), payload) return list(tuple(values[i * 2:i * 2 + 2]) for i in range(0, unitcount)) decode = staticmethod(decode) ================================================ FILE: src/hwp5/binmodel/tagid53_para_line_seg.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from six import with_metaclass from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_LINE_SEG from hwp5.binmodel._shared import ref_parent_member from hwp5.dataio import ArrayType from hwp5.dataio import Struct from hwp5.dataio import UINT32 from hwp5.dataio import Flags from hwp5.dataio import SHWPUNIT from hwp5.dataio import INT32 from hwp5.dataio import X_ARRAY class LineSeg(Struct): Flags = Flags(UINT32, # 0, 'first_in_page', # 1, 'first_in_column', # 16, 'empty', 17, 'line_head', 18, 'line_tail', # 19, 'auto_hyphen', 20, 'indented', 21, 'bullet') def attributes(cls): yield INT32, 'chpos', yield SHWPUNIT, 'y', yield SHWPUNIT, 'height', yield SHWPUNIT, 'height_text', yield SHWPUNIT, 'height_baseline', yield SHWPUNIT, 'space_below', yield SHWPUNIT, 'x', yield SHWPUNIT, 'width' yield cls.Flags, 'lineseg_flags' attributes = classmethod(attributes) class ParaLineSeg(RecordModel): ''' 4.2.4. 문단의 레이아웃 ''' tagid = HWPTAG_PARA_LINE_SEG def attributes(cls): ''' 표 57 문단의 레이아웃 ''' yield dict(name='linesegs', type=X_ARRAY(LineSeg, ref_parent_member('linesegs'))) attributes = classmethod(attributes) class ParaLineSegList(with_metaclass(ArrayType, list)): itemtype = LineSeg def read(cls, f, context): payload = context['stream'].read() return cls.decode(context, payload) read = classmethod(read) def decode(cls, context, payload): import struct unitfmt = 'iiiiiiiiHH' unitsize = struct.calcsize('<' + unitfmt) unitcount = len(payload) // unitsize values = struct.unpack('<' + unitfmt * unitcount, payload) names = ['chpos', 'y', 'height', 'height2', 'height85', 'space_below', 'x', 'width', 'a8', 'flags'] x = list(dict(zip(names, tuple(values[i * 10:i * 10 + 10]))) for i in range(0, unitcount)) for d in x: d['flags'] = LineSeg.Flags(d['flags']) return x decode = classmethod(decode) ================================================ FILE: src/hwp5/binmodel/tagid54_para_range_tag.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PARA_RANGE_TAG from hwp5.dataio import UINT32 from hwp5.dataio import Flags from hwp5.dataio import Struct from hwp5.dataio import X_ARRAY from hwp5.binmodel._shared import ref_parent_member class RangeTag(Struct): ''' 표 58 문단의 영역 태그 ''' Tag = Flags(UINT32, 0, 23, 'data', 24, 31, 'kind') @classmethod def attributes(cls): yield UINT32, 'start' yield UINT32, 'end' yield cls.Tag, 'tag' class ParaRangeTag(RecordModel): ''' 4.2.5. 문단의 영역 태그 ''' tagid = HWPTAG_PARA_RANGE_TAG @staticmethod def attributes(): yield dict(name='range_tags', type=X_ARRAY(RangeTag, ref_parent_member('rangetags'))) ================================================ FILE: src/hwp5/binmodel/tagid55_ctrl_header.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel.controls._shared import Control import hwp5.binmodel.controls.bookmark_control import hwp5.binmodel.controls.columns_def import hwp5.binmodel.controls.common_controls import hwp5.binmodel.controls.dutmal import hwp5.binmodel.controls.field import hwp5.binmodel.controls.gshape_object_control import hwp5.binmodel.controls.header_footer import hwp5.binmodel.controls.hidden_comment import hwp5.binmodel.controls.index_marker import hwp5.binmodel.controls.note import hwp5.binmodel.controls.numbering import hwp5.binmodel.controls.page_hide import hwp5.binmodel.controls.page_number_position import hwp5.binmodel.controls.page_odd_even import hwp5.binmodel.controls.section_def import hwp5.binmodel.controls.table_control import hwp5.binmodel.controls.tcps_control hwp5 Control ================================================ FILE: src/hwp5/binmodel/tagid56_list_header.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from six import with_metaclass from hwp5.binmodel._shared import RecordModelType from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_LIST_HEADER from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import SHWPUNIT from hwp5.dataio import HWPUNIT from hwp5.dataio import HWPUNIT16 from hwp5.dataio import BYTE from hwp5.binmodel._shared import Margin from hwp5.binmodel.controls.table_control import TableControl from hwp5.binmodel.controls.gshape_object_control import GShapeObjectControl from hwp5.binmodel.controls.header_footer import Header from hwp5.binmodel.controls.header_footer import Footer from hwp5.binmodel.tagid60_shape_component import ShapeComponent list_header_models = dict() class ListHeaderType(RecordModelType): def __new__(mcs, name, bases, attrs): cls = RecordModelType.__new__(mcs, name, bases, attrs) if 'parent_model_type' in attrs: parent_model_type = attrs['parent_model_type'] before_tablebody = attrs.get('before_tablebody', False) list_type_key = parent_model_type, before_tablebody assert list_type_key not in list_header_models list_header_models[list_type_key] = cls return cls class ListHeader(with_metaclass(ListHeaderType, RecordModel)): ''' 4.2.7. 문단 리스트 헤더 ''' tagid = HWPTAG_LIST_HEADER VAlign = Enum(TOP=0, MIDDLE=1, BOTTOM=2) Flags = Flags(UINT32, 0, 2, 'textdirection', 3, 4, 'linebreak', 5, 6, VAlign, 'valign') def attributes(cls): ''' 표 60 문단 리스트 헤더 ''' yield UINT16, 'paragraphs', yield UINT16, 'unknown1', yield cls.Flags, 'listflags', attributes = classmethod(attributes) extension_types = list_header_models def get_extension_key(context, model): ''' (parent model type, after TableBody) ''' if 'parent' in context: context, model = context['parent'] seen_table_body = context.get('seen_table_body', False) return model['type'], seen_table_body get_extension_key = staticmethod(get_extension_key) class TableCaption(ListHeader): ''' 표 66 캡션 리스트 ''' parent_model_type = TableControl before_tablebody = False # 표 68 캡션 속성 Position = Enum(LEFT=0, RIGHT=1, TOP=2, BOTTOM=3) Flags = Flags(UINT32, 0, 1, Position, 'position', # 캡션이 긴 경우 테이블 여백 영역까지 확장 2, 'expand_to_margin') def attributes(cls): ''' 표 67 캡션 ''' yield cls.Flags, 'flags', yield HWPUNIT, 'width', yield HWPUNIT16, 'separation', # 캡션과 틀 사이 간격 yield HWPUNIT, 'max_width', # expand_to_margin 고려한 최대 너비 attributes = classmethod(attributes) class TableCell(ListHeader): ''' 표 75 셀 속성 ''' parent_model_type = TableControl before_tablebody = True def attributes(): yield UINT16, 'col', yield UINT16, 'row', yield UINT16, 'colspan', yield UINT16, 'rowspan', yield SHWPUNIT, 'width', yield SHWPUNIT, 'height', yield Margin, 'padding', yield UINT16, 'borderfill_id', yield SHWPUNIT, 'unknown_width', attributes = staticmethod(attributes) class GShapeObjectCaption(TableCaption): parent_model_type = GShapeObjectControl class TextboxParagraphList(ListHeader): ''' 표 85 그리기 개체 글상자용 텍스트 속성 ''' parent_model_type = ShapeComponent def attributes(): yield Margin, 'padding' yield HWPUNIT, 'maxwidth' attributes = staticmethod(attributes) class HeaderFooterParagraphList(ListHeader): ''' 표 129 머리말/꼬리말 ''' def attributes(): yield HWPUNIT, 'width' yield HWPUNIT, 'height' yield BYTE, 'textrefsbitmap' yield BYTE, 'numberrefsbitmap' attributes = staticmethod(attributes) class HeaderParagraphList(HeaderFooterParagraphList): parent_model_type = Header class FooterParagraphList(HeaderFooterParagraphList): parent_model_type = Footer ================================================ FILE: src/hwp5/binmodel/tagid57_page_def.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PAGE_DEF from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import HWPUNIT class PageDef(RecordModel): tagid = HWPTAG_PAGE_DEF Orientation = Enum(PORTRAIT=0, LANDSCAPE=1) BookBinding = Enum(LEFT=0, RIGHT=1, TOP=2, BOTTOM=3) Flags = Flags(UINT32, 0, Orientation, 'orientation', 1, 2, BookBinding, 'bookbinding') def attributes(cls): yield HWPUNIT, 'width', yield HWPUNIT, 'height', yield HWPUNIT, 'left_offset', yield HWPUNIT, 'right_offset', yield HWPUNIT, 'top_offset', yield HWPUNIT, 'bottom_offset', yield HWPUNIT, 'header_offset', yield HWPUNIT, 'footer_offset', yield HWPUNIT, 'bookbinding_offset', yield cls.Flags, 'attr', # yield UINT32, 'attr', attributes = classmethod(attributes) def getDimension(self): width = HWPUNIT(self.paper_width - self.offsetLeft - self.offsetRight) height = HWPUNIT(self.paper_height - (self.offsetTop + self.offsetHeader) - (self.offsetBottom + self.offsetFooter)) if self.attr.landscape: return (height, width) else: return (width, height) dimension = property(getDimension) def getHeight(self): if self.attr.landscape: width = HWPUNIT(self.paper_width - self.offsetLeft - self.offsetRight) return width else: height = HWPUNIT(self.paper_height - (self.offsetTop + self.offsetHeader) - (self.offsetBottom + self.offsetFooter)) return height height = property(getHeight) def getWidth(self): if self.attr.landscape: height = HWPUNIT(self.paper_height - (self.offsetTop + self.offsetHeader) - (self.offsetBottom + self.offsetFooter)) return height else: width = HWPUNIT(self.paper_width - self.offsetLeft - self.offsetRight) return width width = property(getWidth) ================================================ FILE: src/hwp5/binmodel/tagid58_footnote_shape.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_FOOTNOTE_SHAPE from hwp5.dataio import Flags from hwp5.dataio import WCHAR from hwp5.dataio import HWPUNIT16 from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.binmodel._shared import COLORREF from hwp5.binmodel._shared import Border class FootnoteShape(RecordModel): tagid = HWPTAG_FOOTNOTE_SHAPE Flags = Flags(UINT32) def attributes(cls): yield cls.Flags, 'flags' yield WCHAR, 'usersymbol' yield WCHAR, 'prefix' yield WCHAR, 'suffix' yield UINT16, 'starting_number' yield HWPUNIT16, 'splitter_length' yield HWPUNIT16, 'splitter_unknown' yield HWPUNIT16, 'splitter_margin_top' yield HWPUNIT16, 'splitter_margin_bottom' yield HWPUNIT16, 'notes_spacing' yield Border.StrokeType, 'splitter_stroke_type' yield Border.Width, 'splitter_width' yield COLORREF, 'splitter_color' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid59_page_border_fill.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_PAGE_BORDER_FILL from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.binmodel._shared import Margin class PageBorderFill(RecordModel): tagid = HWPTAG_PAGE_BORDER_FILL RelativeTo = Enum(BODY=0, PAPER=1) FillArea = Enum(PAPER=0, PAGE=1, BORDER=2) Flags = Flags(UINT32, 0, RelativeTo, 'relative_to', 1, 'include_header', 2, 'include_footer', 3, 4, FillArea, 'fill') def attributes(cls): yield cls.Flags, 'flags' yield Margin, 'margin' yield UINT16, 'borderfill_id' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid60_shape_component.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import UINT8 from hwp5.dataio import SHWPUNIT from hwp5.dataio import WORD from hwp5.dataio import BYTE from hwp5.dataio import X_ARRAY from hwp5.dataio import N_ARRAY from hwp5.dataio import Struct from hwp5.dataio import DOUBLE from hwp5.dataio import ref_member from hwp5.dataio import HexBytes from hwp5.binmodel.controlchar import CHID from hwp5.binmodel._shared import Coord from hwp5.binmodel._shared import BorderLine from hwp5.binmodel._shared import FillColorPattern from hwp5.binmodel._shared import FillGradation from hwp5.binmodel._shared import FillImage from hwp5.binmodel.controls.gshape_object_control import GShapeObjectControl class Matrix(Struct): ''' 표 80 matrix 정보 2D Transform Matrix [a c e][x] [b d f][y] [0 0 1][1] ''' def attributes(): yield DOUBLE, 'a' yield DOUBLE, 'c' yield DOUBLE, 'e' yield DOUBLE, 'b' yield DOUBLE, 'd' yield DOUBLE, 'f' attributes = staticmethod(attributes) class ScaleRotationMatrix(Struct): def attributes(): yield Matrix, 'scaler', yield Matrix, 'rotator', attributes = staticmethod(attributes) def parent_must_be_gso(context, values): ''' parent record type is GShapeObjectControl ''' # GSO-child ShapeComponent specific: # it may be a GSO model's attribute, e.g. 'child_chid' if 'parent' in context: parent_context, parent_model = context['parent'] return parent_model['type'] is GShapeObjectControl def chid_is_container(context, values): ''' chid == CHID.CONTAINER ''' return values['chid'] == CHID.CONTAINER def chid_is_rect(context, values): ''' chid == CHID.RECT ''' return values['chid'] == CHID.RECT def chid_is_rect_and_fill_colorpattern(context, values): ''' chid == CHID.RECT and fill_flags.fill_colorpattern ''' return (values['chid'] == CHID.RECT and values['fill_flags'].fill_colorpattern) def chid_is_rect_and_fill_image(context, values): ''' chid == CHID.RECT and fill_flags.fill_image ''' return (values['chid'] == CHID.RECT and values['fill_flags'].fill_image) def chid_is_rect_and_fill_gradation(context, values): ''' chid == CHID.RECT and fill_flags.fill_gradation ''' return (values['chid'] == CHID.RECT and values['fill_flags'].fill_gradation) def chid_is_line(context, values): ''' chid == CHID.LINE ''' return values['chid'] == CHID.LINE class ShapeComponent(RecordModel): ''' 4.2.9.2.1. 개체 요소 ''' tagid = HWPTAG_SHAPE_COMPONENT FillFlags = Flags(UINT16, 8, 'fill_colorpattern', 9, 'fill_image', 10, 'fill_gradation') Flags = Flags(UINT32, 0, 'flip') def attributes(cls): ''' 표 78 개체 요소 속성 ''' yield dict(type=CHID, name='chid0', condition=parent_must_be_gso) yield CHID, 'chid' yield SHWPUNIT, 'x_in_group' yield SHWPUNIT, 'y_in_group' yield WORD, 'level_in_group' yield WORD, 'local_version' yield SHWPUNIT, 'initial_width' yield SHWPUNIT, 'initial_height' yield SHWPUNIT, 'width' yield SHWPUNIT, 'height' yield cls.Flags, 'flags' yield WORD, 'angle' yield Coord, 'rotation_center' ''' 표 79 Rendering 정보 ''' yield WORD, 'scalerotations_count' yield Matrix, 'translation' yield dict(type=X_ARRAY(ScaleRotationMatrix, ref_member('scalerotations_count')), name='scalerotations') # # Container # yield dict(type=N_ARRAY(WORD, CHID), name='controls', condition=chid_is_container) # # Rectangle # ''' 표 81 테두리 선 정보 ''' yield dict(type=BorderLine, name='border', condition=chid_is_rect) ''' 표 83 Outline style ''' # TODO: Outline ??? yield dict(type=cls.FillFlags, name='fill_flags', condition=chid_is_rect) yield dict(type=UINT16, name='unknown', condition=chid_is_rect) yield dict(type=UINT8, name='unknown1', condition=chid_is_rect) yield dict(type=FillColorPattern, name='fill_colorpattern', condition=chid_is_rect_and_fill_colorpattern) yield dict(type=FillGradation, name='fill_gradation', condition=chid_is_rect_and_fill_gradation) yield dict(type=FillImage, name='fill_image', condition=chid_is_rect_and_fill_image) yield dict(type=UINT32, name='fill_shape', condition=chid_is_rect) yield dict(type=BYTE, name='fill_blur_center', condition=chid_is_rect_and_fill_gradation) # TODO: 아래 두 필드: chid == $rec일 때만인지 확인 필요 yield dict(type=HexBytes(5), name='unknown2', condition=chid_is_rect, version=(5, 0, 2, 4)) yield dict(type=HexBytes(16), name='unknown3', condition=chid_is_rect, version=(5, 0, 2, 4)) # # Line # yield dict(type=BorderLine, name='line', condition=chid_is_line) attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid61_table.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_TABLE from hwp5.dataio import Enum from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import HWPUNIT16 from hwp5.dataio import N_ARRAY from hwp5.dataio import X_ARRAY from hwp5.dataio import ref_member from hwp5.dataio import Struct from hwp5.binmodel._shared import Margin class ZoneInfo(Struct): def attributes(): ''' 표 73 영역 속성 ''' yield UINT16, 'starting_column' yield UINT16, 'starting_row' yield UINT16, 'end_column' yield UINT16, 'end_row' yield UINT16, 'borderfill_id' attributes = staticmethod(attributes) class TableBody(RecordModel): ''' 4.2.9.1. 표 개체 ''' tagid = HWPTAG_TABLE # 표 71 표 속성의 속성 Split = Enum(NONE=0, BY_CELL=1, SPLIT=2) Flags = Flags(UINT32, 0, 1, Split, 'split_page', 2, 'repeat_header') def attributes(cls): ''' 표 70 표 개체 속성 ''' yield cls.Flags, 'flags' yield UINT16, 'rows' yield UINT16, 'cols' yield HWPUNIT16, 'cellspacing' # 표 72 안쪽 여백 정보 yield Margin, 'padding' yield dict(type=X_ARRAY(UINT16, ref_member('rows')), name='rowcols') yield UINT16, 'borderfill_id' yield dict(type=N_ARRAY(UINT16, ZoneInfo), name='validZones', version=(5, 0, 0, 7)) attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid62_shape_component_line.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_LINE from hwp5.dataio import UINT16 from hwp5.binmodel._shared import Coord class ShapeLine(RecordModel): ''' 4.2.9.2.2. 선 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_LINE def attributes(): ''' 표 87 선 개체 속성 ''' yield Coord, 'p0' yield Coord, 'p1' yield UINT16, 'attr' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid63_shape_component_rectangle.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_RECTANGLE from hwp5.dataio import BYTE from hwp5.binmodel._shared import Coord class ShapeRectangle(RecordModel): ''' 4.2.9.2.3. 사각형 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_RECTANGLE def attributes(): ''' 표 89 사각형 개체 속성 ''' yield BYTE, 'round', yield Coord, 'p0' yield Coord, 'p1' yield Coord, 'p2' yield Coord, 'p3' attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid64_shape_component_ellipse.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_ELLIPSE from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.binmodel._shared import Coord class ShapeEllipse(RecordModel): ''' 4.2.9.2.4. 타원 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_ELLIPSE ''' 표 92 타원/호 개체 속성 ''' Flags = Flags(UINT32, 0, 'arc_recalc_required', 1, 'arc', 2, 9, 'arc_kind') def attributes(cls): ''' 표 91 타원 개체 속성 ''' yield cls.Flags, 'flags' yield Coord, 'center' yield Coord, 'axis1' yield Coord, 'axis2' yield Coord, 'start1' yield Coord, 'end1' yield Coord, 'start2' yield Coord, 'end2' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid65_shape_component_arc.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_ARC from hwp5.binmodel._shared import Coord class ShapeArc(RecordModel): ''' 4.2.9.2.6. 호 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_ARC def attributes(cls): ''' 표 96 호 개체 속성 ''' # yield ShapeEllipse.Flags, 'flags' # SPEC TODO yield Coord, 'center' yield Coord, 'axis1' yield Coord, 'axis2' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid66_shape_component_polygon.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_POLYGON from hwp5.dataio import N_ARRAY from hwp5.dataio import UINT16 from hwp5.binmodel._shared import Coord class ShapePolygon(RecordModel): ''' 4.2.9.2.5. 다각형 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_POLYGON def attributes(cls): ''' 표 94 다각형 개체 속성 ''' yield N_ARRAY(UINT16, Coord), 'points' attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid67_shape_component_curve.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_CURVE from hwp5.dataio import N_ARRAY from hwp5.dataio import UINT16 from hwp5.binmodel._shared import Coord class ShapeCurve(RecordModel): ''' 4.2.9.2.7. 곡선 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_CURVE def attributes(cls): ''' 표 98 곡선 개체 속성 ''' yield N_ARRAY(UINT16, Coord), 'points' # TODO: segment type attributes = classmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid68_shape_component_ole.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_OLE from hwp5.dataio import Flags from hwp5.dataio import UINT32 from hwp5.dataio import INT32 from hwp5.binmodel._shared import BinStorageId from hwp5.binmodel._shared import BorderLine class ShapeOLE(RecordModel): ''' 4.2.9.5 OLE 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_OLE Flags = Flags(UINT32, 0, 7, 'dvaspect', 8, 'moniker', # baseline: # 0 means defaut (85%) # 1 means 0% # 101 means 100% 9, 15, 'baseline') @classmethod def attributes(cls): yield cls.Flags, 'flags' yield INT32, 'extent_x' yield INT32, 'extent_y' yield BinStorageId, 'storage_id' yield BorderLine, 'border' ================================================ FILE: src/hwp5/binmodel/tagid69_shape_component_picture.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_PICTURE from hwp5.dataio import Struct from hwp5.dataio import Flags from hwp5.dataio import SHWPUNIT from hwp5.dataio import UINT32 from hwp5.dataio import UINT16 from hwp5.dataio import INT8 from hwp5.dataio import BYTE from hwp5.binmodel._shared import Margin from hwp5.binmodel._shared import Coord from hwp5.binmodel._shared import BorderLine class PictureInfo(Struct): ''' 표 27 그림 정보 ''' def attributes(): yield INT8, 'brightness', yield INT8, 'contrast', yield BYTE, 'effect', yield UINT16, 'bindata_id', attributes = staticmethod(attributes) class PictureEffect(Struct): ''' 표 103 그림 효과 속성 ''' Flags = Flags(UINT32) @classmethod def attributes(cls): yield cls.Flags, 'flags' # TODO # HWPML에서의 이름 사용 class ImageRect(Struct): ''' 이미지 좌표 정보 ''' def attributes(): yield Coord, 'p0' yield Coord, 'p1' yield Coord, 'p2' yield Coord, 'p3' attributes = staticmethod(attributes) # HWPML에서의 이름 사용 class ImageClip(Struct): ''' 이미지 자르기 정보 ''' def attributes(): yield SHWPUNIT, 'left', yield SHWPUNIT, 'top', yield SHWPUNIT, 'right', yield SHWPUNIT, 'bottom', attributes = staticmethod(attributes) class ShapePicture(RecordModel): ''' 4.2.9.4. 그림 개체 ''' tagid = HWPTAG_SHAPE_COMPONENT_PICTURE def attributes(): ''' 표 102 그림 개체 속성 ''' yield BorderLine, 'border' yield ImageRect, 'rect', yield ImageClip, 'clip', yield Margin, 'padding', yield PictureInfo, 'picture', yield dict(type=BYTE, name='border_transparency', version=(5, 0, 2, 2)) yield dict(type=UINT32, name='instance_id', version=(5, 0, 2, 5)) # TODO: this choke on 5.0.3.3 d6dfac424525298119de54410c3b22d74aa85511 # Strangely, its ok on 5.0.3.3 83a0ea1f9da368ff9f0b45f72e9306b776edf38a # and other 5.0.3.0, 5.0.3.2 and 5.0.3.4 files. yield dict(type=PictureEffect, name='picture_effect', version=(5, 0, 3, 4)) attributes = staticmethod(attributes) ================================================ FILE: src/hwp5/binmodel/tagid70_shape_component_container.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_CONTAINER class ShapeContainer(RecordModel): tagid = HWPTAG_SHAPE_COMPONENT_CONTAINER # TODO ================================================ FILE: src/hwp5/binmodel/tagid71_ctrl_data.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from six import with_metaclass from hwp5.binmodel._shared import RecordModelType from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_CTRL_DATA control_data_models = dict() class ControlDataType(RecordModelType): def __new__(mcs, name, bases, attrs): cls = RecordModelType.__new__(mcs, name, bases, attrs) if 'parent_model_type' in attrs: parent_model_type = attrs['parent_model_type'] assert parent_model_type not in control_data_models control_data_models[parent_model_type] = cls return cls class ControlData(with_metaclass(ControlDataType, RecordModel)): ''' 4.2.8. 컨트롤 임의의 데이터 ''' tagid = HWPTAG_CTRL_DATA extension_types = control_data_models def get_extension_key(cls, context, model): ''' parent model type ''' parent = context.get('parent') if parent: return parent[1]['type'] get_extension_key = classmethod(get_extension_key) ================================================ FILE: src/hwp5/binmodel/tagid72_ctrl_eqedit.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_CTRL_EQEDIT from hwp5.dataio import UINT32 from hwp5.dataio import Enum from hwp5.dataio import Flags class EqEdit(RecordModel): ''' 4.2.9.3. 한글 스크립트 수식 (한글 97 방식 수식) ''' tagid = HWPTAG_CTRL_EQEDIT ScriptScope = Enum(CHAR=0, LINE=1) Flags = Flags(UINT32, 0, ScriptScope, 'script_scope') @classmethod def attributes(cls): ''' 표 100 수식 개체 속성 ''' # TODO: followings are not tested against real files if False: yield # yield cls.Flags, 'flags' # yield BSTR, 'script' # yield HWPUNIT, 'font_size' # yield COLORREF, 'color' # yield INT16, 'baseline' ================================================ FILE: src/hwp5/binmodel/tagid74_shape_component_textart.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_TEXTART class ShapeTextArt(RecordModel): tagid = HWPTAG_SHAPE_COMPONENT_TEXTART # TODO ================================================ FILE: src/hwp5/binmodel/tagid75_form_object.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_FORM_OBJECT class FormObject(RecordModel): tagid = HWPTAG_FORM_OBJECT # TODO ================================================ FILE: src/hwp5/binmodel/tagid76_memo_shape.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_MEMO_SHAPE class MemoShape(RecordModel): tagid = HWPTAG_MEMO_SHAPE # TODO ================================================ FILE: src/hwp5/binmodel/tagid77_memo_list.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_MEMO_LIST class MemoList(RecordModel): tagid = HWPTAG_MEMO_LIST # TODO ================================================ FILE: src/hwp5/binmodel/tagid78_forbidden_char.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_FORBIDDEN_CHAR class ForbiddenChar(RecordModel): tagid = HWPTAG_FORBIDDEN_CHAR # TODO ================================================ FILE: src/hwp5/binmodel/tagid79_chart_data.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_CHART_DATA class ChartData(RecordModel): tagid = HWPTAG_CHART_DATA # TODO ================================================ FILE: src/hwp5/binmodel/tagid99_shape_component_unknown.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from hwp5.binmodel._shared import RecordModel from hwp5.tagids import HWPTAG_SHAPE_COMPONENT_UNKNOWN class ShapeUnknown(RecordModel): tagid = HWPTAG_SHAPE_COMPONENT_UNKNOWN # TODO ================================================ FILE: src/hwp5/binspec.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # '''Generate HWPv5 Binary Spec Document Usage:: hwp5spec xml [--loglevel=] hwp5spec -h | --help hwp5spec --version Options:: -h --help Show this screen --version Show version --loglevel= Set log level [default: warning] ''' import logging import xml.etree.ElementTree as ET logger = logging.getLogger(__name__) def define_enum_type(enum_type): attrs = dict(name=enum_type.__name__) if enum_type.scoping_struct: attrs['scope'] = enum_type.scoping_struct.__name__ elem = ET.Element('EnumType', attrs) value_names = list((e, e.name) for e in enum_type.instances) value_names.sort() for value, name in value_names: item = ET.Element('item', dict(name=name, value=str(value))) elem.append(item) return elem def define_bitfield(bitgroup_name, bitgroup_desc): attrs = dict(name=bitgroup_name, lsb=str(bitgroup_desc.lsb), msb=str(bitgroup_desc.msb)) elem = ET.Element('BitField', attrs) elem.append(reference_type(bitgroup_desc.valuetype)) return elem def define_flags_type(flags_type): elem = ET.Element('FlagsType') from hwp5.dataio import BitGroupDescriptor base = ET.SubElement(elem, 'base') base.append(reference_type(flags_type.basetype)) bitgroups = flags_type.__dict__.items() bitgroups = ((v.lsb, (k, v)) for k, v in bitgroups if isinstance(v, BitGroupDescriptor)) bitgroups = list(bitgroups) bitgroups.sort() bitgroups = reversed(bitgroups) bitgroups = ((k, v) for lsb, (k, v) in bitgroups) bitgroups = (define_bitfield(k, v) for k, v in bitgroups) for bitgroup in bitgroups: elem.append(bitgroup) return elem def define_fixed_array_type(array_type): attrs = dict() attrs['size'] = str(array_type.size) elem = ET.Element('FixedArrayType', attrs) item_type_elem = ET.SubElement(elem, 'item-type') item_type_elem.append(reference_type(array_type.itemtype)) return elem def define_variable_length_array_type(array_type): elem = ET.Element('VariableLengthArrayType') count_type_elem = ET.SubElement(elem, 'count-type') count_type_elem.append(reference_type(array_type.counttype)) item_type_elem = ET.SubElement(elem, 'item-type') item_type_elem.append(reference_type(array_type.itemtype)) return elem def define_x_array_type(t): elem = ET.Element('XArrayType', dict(size=t.count_reference.__doc__)) item_type_elem = ET.SubElement(elem, 'item-type') item_type_elem.append(reference_type(t.itemtype)) return elem def define_selective_type(t): elem = ET.Element('SelectiveType', dict(selector=t.selector_reference.__doc__)) for k, v in t.selections.items(): sel = ET.SubElement(elem, 'selection', dict(when=make_condition_value(k))) sel.append(reference_type(v)) return elem def reference_type(t): attrs = dict() attrs['name'] = t.__name__ attrs['meta'] = type(t).__name__ elem = ET.Element('type-ref', attrs) from hwp5.dataio import EnumType from hwp5.dataio import FlagsType from hwp5.dataio import FixedArrayType from hwp5.dataio import X_ARRAY from hwp5.dataio import VariableLengthArrayType from hwp5.dataio import SelectiveType if isinstance(t, EnumType): if t.scoping_struct: elem.attrib['scope'] = t.scoping_struct.__name__ elif isinstance(t, FlagsType): elem.append(define_flags_type(t)) elif isinstance(t, FixedArrayType): elem.append(define_fixed_array_type(t)) elif isinstance(t, X_ARRAY): elem.append(define_x_array_type(t)) elif isinstance(t, VariableLengthArrayType): elem.append(define_variable_length_array_type(t)) elif isinstance(t, SelectiveType): elem.append(define_selective_type(t)) return elem def referenced_types_by_member(member): t = member.get('type') if t: yield t for x in direct_referenced_types(t): yield x def define_member(struct_type, member): attrs = dict(name=member['name']) version = member.get('version') if version: version = '.'.join(str(x) for x in version) attrs['version'] = version elem = ET.Element('member', attrs) t = member.get('type') if t: elem.append(reference_type(t)) condition = member.get('condition') if condition: condition = condition.__doc__ or condition.__name__ or '' condition = condition.strip() condition_elem = ET.Element('condition') condition_elem.text = condition elem.append(condition_elem) return elem def direct_referenced_types(t): from hwp5.dataio import FlagsType from hwp5.dataio import FixedArrayType from hwp5.dataio import X_ARRAY from hwp5.dataio import VariableLengthArrayType from hwp5.dataio import StructType from hwp5.dataio import SelectiveType if isinstance(t, FlagsType): for k, desc in t.bitfields.items(): yield desc.valuetype elif isinstance(t, FixedArrayType): yield t.itemtype elif isinstance(t, X_ARRAY): yield t.itemtype elif isinstance(t, VariableLengthArrayType): yield t.counttype yield t.itemtype elif isinstance(t, StructType): if 'members' in t.__dict__: for member in t.members: for x in referenced_types_by_member(member): yield x elif isinstance(t, SelectiveType): for selection in t.selections.values(): yield selection def referenced_types_by_struct_type(t): if 'members' in t.__dict__: for member in t.members: for x in referenced_types_by_member(member): yield x def extension_sort_key(cls): import inspect key = inspect.getmro(cls) key = list(x.__name__ for x in key) key = tuple(reversed(key)) return key def sort_extensions(extension_types): extension_types = extension_types.items() extension_types = list((extension_sort_key(cls), (k, cls)) for k, cls in extension_types) extension_types.sort() extension_types = ((k, cls) for sort_key, (k, cls) in extension_types) return extension_types def extensions_of_tag_model(tag_model): extension_types = getattr(tag_model, 'extension_types', None) if extension_types: extension_types = sort_extensions(extension_types) key_condition = getattr(tag_model, 'get_extension_key', None) key_condition = key_condition.__doc__.strip() for key, extension_type in extension_types: yield (key_condition, key), extension_type def define_struct_type(t): elem = ET.Element('StructType', dict(name=t.__name__)) for extend in get_extends(t): elem.append(define_extends(extend)) if 'members' in t.__dict__: for member in t.members: elem.append(define_member(t, member)) return elem def define_tag_model(tag_id): from hwp5.tagids import tagnames from hwp5.binmodel import tag_models tag_name = tagnames[tag_id] tag_model = tag_models[tag_id] elem = ET.Element('TagModel', dict(tag_id=str(tag_id), name=tag_name)) elem.append(define_base_type(tag_model)) for (name, value), extension_type in extensions_of_tag_model(tag_model): elem.append(define_extension(extension_type, tag_model, name, value)) return elem def define_base_type(t): elem = ET.Element('base', dict(name=t.__name__)) return elem def make_condition_value(value): from hwp5.dataio import EnumType if isinstance(value, tuple): value = tuple(make_condition_value(v) for v in value) return '('+', '.join(value)+')' elif isinstance(type(value), EnumType): return repr(value) elif isinstance(value, type): return value.__name__ else: return str(value) def define_extension(t, up_to_type, name, value): attrs = dict(name=t.__name__) elem = ET.Element('extension', attrs) condition = ET.Element('condition') condition.text = name + ' == ' + make_condition_value(value) elem.append(condition) for extend in get_extends(t, up_to_type): elem.append(define_extends(extend)) if 'members' in t.__dict__: for member in t.members: elem.append(define_member(t, member)) return elem def get_extends(t, up_to_type=None): def take_up_to(up_to_type, mro): for t in mro: yield t if t is up_to_type: return from itertools import takewhile import inspect mro = inspect.getmro(t) mro = mro[1:] # exclude self # mro = take_up_to(up_to_type, mro) mro = takewhile(lambda cls: cls is not up_to_type, mro) mro = (t for t in mro if 'members' in t.__dict__) mro = list(mro) mro = reversed(mro) return mro def define_extends(t): attrs = dict(name=t.__name__) elem = ET.Element('extends', attrs) return elem def define_primitive_type(t): attrs = dict(name=t.__name__) fixed_size = getattr(t, 'fixed_size', None) if fixed_size: attrs['size'] = str(fixed_size) elem = ET.Element('PrimitiveType', attrs) binfmt = getattr(t, 'binfmt', None) if binfmt: binfmt_elem = ET.Element('binfmt') binfmt_elem.text = binfmt elem.append(binfmt_elem) return elem def main(): from docopt import docopt from hwp5 import __version__ from hwp5.proc import rest_to_docopt doc = rest_to_docopt(__doc__) args = docopt(doc, version=__version__) if '--loglevel' in args: loglevel = args['--loglevel'].lower() loglevel = dict(error=logging.ERROR, warning=logging.WARNING, info=logging.INFO, debug=logging.DEBUG).get(loglevel, logging.WARNING) logger.setLevel(loglevel) logger.addHandler(logging.StreamHandler()) from hwp5 import binmodel import sys enum_types = set() extensions = set() struct_types = set() primitive_types = set() root = ET.Element('binspec', dict(version=__version__)) for tag_id, tag_model in binmodel.tag_models.items(): logger.debug('TAG_MODEL: %s', tag_model.__name__) root.append(define_tag_model(tag_id)) struct_types.add(tag_model) from hwp5.dataio import EnumType from hwp5.dataio import StructType from hwp5.dataio import PrimitiveType for t in referenced_types_by_struct_type(tag_model): if isinstance(t, EnumType): enum_types.add(t) if isinstance(t, StructType): struct_types.add(t) if isinstance(t, PrimitiveType): logger.debug('- PrimitiveType: %s', t.__name__) primitive_types.add(t) for _, t in extensions_of_tag_model(tag_model): extensions.add(t) for t in extensions: struct_types.add(t) for extends in get_extends(t): struct_types.add(extends) for struct_type in struct_types: for t in referenced_types_by_struct_type(struct_type): if isinstance(t, EnumType): enum_types.add(t) if isinstance(t, PrimitiveType): primitive_types.add(t) enum_types = list((t.__name__, t) for t in enum_types) enum_types.sort() enum_types = (t for name, t in enum_types) for t in enum_types: root.append(define_enum_type(t)) struct_types = list((t.__name__, t) for t in struct_types) struct_types.sort() struct_types = (t for name, t in struct_types) for t in struct_types: root.append(define_struct_type(t)) primitive_types = list((t.__name__, t) for t in primitive_types) primitive_types.sort() primitive_types = (t for name, t in primitive_types) for t in primitive_types: root.append(define_primitive_type(t)) doc = ET.ElementTree(root) doc.write(sys.stdout, 'utf-8') ================================================ FILE: src/hwp5/bintype.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from collections import deque from pprint import pprint import logging import struct import sys from .dataio import BSTR from .dataio import FixedArrayType from .dataio import FlagsType from .dataio import ParseError from .dataio import SelectiveType from .dataio import StructType from .dataio import VariableLengthArrayType from .dataio import X_ARRAY from .dataio import readn from .treeop import STARTEVENT, ENDEVENT from .treeop import iter_subevents logger = logging.getLogger(__name__) def bintype_map_events(bin_item): bin_type = bin_item['type'] if isinstance(bin_type, StructType): yield STARTEVENT, bin_item if hasattr(bin_type, 'members'): for member in bin_type.members: for x in bintype_map_events(member): yield x yield ENDEVENT, bin_item elif isinstance(bin_type, FixedArrayType): yield STARTEVENT, bin_item item = dict(type=bin_type.itemtype) for x in bintype_map_events(item): yield x yield ENDEVENT, bin_item elif isinstance(bin_type, VariableLengthArrayType): yield STARTEVENT, bin_item item = dict(type=bin_type.itemtype) for x in bintype_map_events(item): yield x yield ENDEVENT, bin_item elif isinstance(bin_type, X_ARRAY): yield STARTEVENT, bin_item item = dict(type=bin_type.itemtype) for x in bintype_map_events(item): yield x yield ENDEVENT, bin_item elif isinstance(bin_type, SelectiveType): yield STARTEVENT, bin_item for k, v in bin_type.selections.items(): item = dict(bin_item, select_when=k, type=v) for x in bintype_map_events(item): yield x yield ENDEVENT, bin_item elif isinstance(bin_type, FlagsType): # TODO: this should be done in model definitions # bin_type: used in binary reading # flags_type: binary value to flags type bin_item['bin_type'] = bin_type.basetype bin_item['flags_type'] = bin_type yield None, bin_item else: yield None, bin_item def filter_with_version(events, version): for ev, item in events: required_version = item.get('version') if required_version is not None and version < required_version: # just consume and skip this tree logger.debug('skip following: (required version: %s)', required_version) logger.debug(' %s', (ev, item)) if ev is STARTEVENT: for x in iter_subevents(events): pass continue yield ev, item def make_items_immutable(events): stack = [] for ev, item in events: if ev is None: item = tuple(sorted(item.items())) elif ev is STARTEVENT: item = tuple(sorted(item.items())) stack.append(item) elif ev is ENDEVENT: item = stack.pop() yield ev, item def compile_type_definition(bin_item): events = bintype_map_events(bin_item) events = make_items_immutable(events) return tuple(events) master_typedefs = dict() def get_compiled_typedef(type): if type not in master_typedefs: logger.info('compile typedef of %s', type) typedef_events = compile_type_definition(dict(type=type)) master_typedefs[type] = typedef_events return master_typedefs[type] versioned_typedefs = dict() def get_compiled_typedef_with_version(type, version): if version not in versioned_typedefs: versioned_typedefs[version] = typedefs = dict() typedefs = versioned_typedefs[version] if type not in typedefs: logger.info('filter compiled typedef of %s with version %s', type, version) typedef_events = get_compiled_typedef(type) events = static_to_mutable(typedef_events) events = filter_with_version(events, version) events = make_items_immutable(events) events = tuple(events) typedefs[type] = events return typedefs[type] class ERROREVENT(object): pass def static_to_mutable(events): stack = [] for ev, item in events: if ev is None: item = dict(item) elif ev is STARTEVENT: item = dict(item) stack.append(item) elif ev is ENDEVENT: item = stack.pop() yield ev, item def pop_subevents(events_deque): level = 0 while len(events_deque) > 0: event, item = events_deque.popleft() yield event, item if event is STARTEVENT: level += 1 elif event is ENDEVENT: if level > 0: level -= 1 else: return def resolve_typedefs(typedef_events, context): array_types = (X_ARRAY, VariableLengthArrayType, FixedArrayType) stack = [] selective_stack = [] events = static_to_mutable(typedef_events) events = deque(events) while len(events) > 0: ev, item = events.popleft() if isinstance(item['type'], SelectiveType): if ev is STARTEVENT: parent_struct = stack[-1] struct_value = parent_struct['value'] selector_reference = item['type'].selector_reference select_key = selector_reference(context, struct_value) logger.debug('select_key: %s', select_key) item['select_key'] = select_key selective_stack.append(item) elif ev is ENDEVENT: selective_stack.pop() else: assert False elif 'select_when' in item: assert ev in (None, STARTEVENT) select_key = selective_stack[-1]['select_key'] select_when = item.pop('select_when') if select_when != select_key: # just consume and skip this tree logger.debug('skip following: (select key %r != %r)', select_key, select_when) logger.debug(' %s', (ev, item)) if ev is STARTEVENT: for x in pop_subevents(events): logger.debug(' %s', x) pass continue logger.debug('selected for: %r', select_when) events.appendleft((ev, item)) elif 'condition' in item: assert ev in (STARTEVENT, None) condition = item.pop('condition') parent_struct = stack[-1] if not condition(context, parent_struct['value']): # just consume and skip this tree logger.debug('skip following: (not matched condition: %s)', condition) logger.debug(' %s', (ev, item)) if ev is STARTEVENT: for x in pop_subevents(events): logger.debug(' %s', x) pass continue events.appendleft((ev, item)) elif isinstance(item['type'], array_types) and 'count' not in item: assert ev is STARTEVENT if isinstance(item['type'], X_ARRAY): parent_struct = stack[-1] struct_value = parent_struct['value'] count_reference = item['type'].count_reference count = count_reference(context, struct_value) elif isinstance(item['type'], VariableLengthArrayType): count = dict(type=item['type'].counttype, dontcollect=True) yield None, count count = count['value'] elif isinstance(item['type'], FixedArrayType): count = item['type'].size item['count'] = count subevents = list(pop_subevents(events)) endevent = subevents[-1] subevents = subevents[:-1] def clone(events): stack = [] for ev, item in events: if ev in (STARTEVENT, None): item = dict(item) if ev is STARTEVENT: stack.append(item) else: item = stack.pop() yield ev, item events.appendleft(endevent) for _ in range(0, count): cloned = list(clone(subevents)) events.extendleft(reversed(cloned)) events.appendleft((ev, item)) else: if ev is STARTEVENT: stack.append(item) elif ev is ENDEVENT: stack.pop() yield ev, item def evaluate_bin_values(events): for ev, item in events: if 'flags_type' in item: flags_type = item['flags_type'] assert isinstance(flags_type, FlagsType) item['value'] = flags_type(item['value']) yield ev, item def construct_composite_values(events): stack = [] for ev, item in events: if ev is STARTEVENT: if isinstance(item['type'], StructType): item['value'] = dict() elif isinstance(item['type'], (X_ARRAY, VariableLengthArrayType, FixedArrayType)): item['value'] = list() else: assert False stack.append(item) elif ev in (None, ENDEVENT): if ev is ENDEVENT: item = stack.pop() if isinstance(item['type'], FixedArrayType): item['value'] = tuple(item['value']) if len(stack) > 0: if not item.get('dontcollect', False): if isinstance(stack[-1]['type'], StructType): # reduce a struct member into struct value stack[-1]['value'][item['name']] = item['value'] elif isinstance(stack[-1]['type'], (X_ARRAY, VariableLengthArrayType, FixedArrayType)): stack[-1]['value'].append(item['value']) yield ev, item def log_events(events, log_fn): for ev, item in events: if ev in (STARTEVENT, ENDEVENT): fmt = ['%s:'] val = [ev.__name__] else: fmt = [' %04x:'] val = [item['bin_offset']] fmt.append('%s') val.append(item['type'].__name__) if 'name' in item: fmt.append('%r') val.append(str(item['name'])) if 'value' in item and ev is None: fmt.append('%r') val.append(item['value']) if 'exception' in item: fmt.append('-- Exception: %r') val.append(item['exception']) log_fn(' '.join(fmt), *val) yield ev, item def eval_typedef_events(typedef_events, context, resolve_values): events = static_to_mutable(typedef_events) events = resolve_typedefs(events, context) events = resolve_values(events) events = evaluate_bin_values(events) events = construct_composite_values(events) events = log_events(events, logger.debug) return events def resolve_values_from_stream(stream): def resolve_values(events): for ev, item in events: if ev is None: item['bin_offset'] = stream.tell() try: item['value'] = resolve_value_from_stream(item, stream) except Exception as e: item['exception'] = e ev = ERROREVENT yield ev, item return resolve_values def resolve_value_from_stream(item, stream): from hwp5.binmodel import ParaTextChunks from hwp5.binmodel import CHID if 'bin_type' in item: item_type = item['bin_type'] else: item_type = item['type'] if hasattr(item_type, 'binfmt'): binfmt = item_type.binfmt binsize = struct.calcsize(binfmt) bytes = readn(stream, binsize) unpacked = struct.unpack(binfmt, bytes) return unpacked[0] elif item_type is CHID: bytes = readn(stream, 4) return CHID.decode(bytes) elif item_type is BSTR: return BSTR.read(stream) elif item_type is ParaTextChunks: return ParaTextChunks.read(stream) elif hasattr(item_type, 'fixed_size'): bytes = readn(stream, item_type.fixed_size) if hasattr(item_type, 'decode'): return item_type.decode(bytes) return bytes else: assert hasattr(item_type, 'read') logger.warning('%s: item type relies on its read() to resolve a value', item_type.__name__) return item_type.read(stream) def resolve_type_events(type, context, resolve_values): # get typedef events: if current version is specified in the context, # get version specific typedef if 'version' in context: version = context['version'] events = get_compiled_typedef_with_version(type, version) else: events = get_compiled_typedef(type) # evaluate with context/stream return eval_typedef_events(events, context, resolve_values) def read_type_events(type, context, stream): resolve_values = resolve_values_from_stream(stream) events = resolve_type_events(type, context, resolve_values) for ev, item in events: yield ev, item if ev is ERROREVENT: e = item['exception'] msg = 'can\'t parse %s' % type pe = ParseError(msg) pe.cause = e pe.path = context.get('path') pe.treegroup = context.get('treegroup') pe.record = context.get('record') pe.offset = item.get('bin_offset') raise pe def read_type_item(type, context, stream, binevents=None): if binevents is None: binevents = [] try: binevents.extend(read_type_events(type, context, stream)) except ParseError as e: e.binevents = binevents raise return binevents[-1][1] def read_type(type, context, stream, binevents=None): item = read_type_item(type, context, stream, binevents) return item['value'] def dump_events(events): def prefix_level(event_prefixed_items): level = 0 for ev, item in event_prefixed_items: if ev is STARTEVENT: yield level, item level += 1 elif ev is ENDEVENT: level -= 1 else: yield level, item def item_to_dict(events): for ev, item in events: yield ev, dict(item) def type_to_string(events): for ev, item in events: item['type'] = item['type'].__name__ yield ev, item def condition_to_string(events): for ev, item in events: if 'condition' in item: item['condition'] = item['condition'].__name__ yield ev, item events = item_to_dict(events) events = type_to_string(events) events = condition_to_string(events) for level, item in prefix_level(events): indents = '' if level > 0: if level > 1: indents = ' ' * (level - 2) + ' ' indents += '- ' print('{}{}'.format(indents, item)) def main(): logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler()) import hwp5.binmodel name = sys.argv[1] type = getattr(hwp5.binmodel, name) typedef_events = compile_type_definition(dict(type=type)) pprint(typedef_events) context = {} def resolve_values(events): for ev, item in events: if ev is None: print('') for k, v in sorted(item.items()): print('- {} : {}'.format(k, v)) value = raw_input('>> ') value = eval(value) if isinstance(item['type'], FlagsType): value = item['type'](value) item['value'] = value yield ev, item events = eval_typedef_events(typedef_events, context, resolve_values) for ev, item in events: print('{} {}'.format(ev, item)) ================================================ FILE: src/hwp5/charsets.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals def get_unichr_lang(uch): # Hangul Syllables # U+AC00..U+D7AF # Hangul Jamo Extended-B # U+D7B0..D7FF if u'\uAC00' <= uch <= u'\uD7FF': return 'ko' # Control Characters and Numbers in Basic Latin if u'\u0000' <= uch <= u'\u0040': return None # Hangul Jamo if u'\u1100' <= uch <= u'\u11FF': return 'ko' # Hangul Compatibility Jamo if u'\u3130' <= uch <= u'\u318F': return 'ko' # Hangul Jamo Extended-A if u'\uA960' <= uch <= u'\uA97F': return 'ko' # -- en -- # Basic Latin, Latin Extended-A/B if u'\u0040' <= uch <= u'\u024F': return 'en' # -- cn -- # CJK Unified Ideographs # U+4E00..U+9FFF if u'\u4E00' <= uch <= u'\u9FFF': return 'cn' # CJK Radicals Supplement # U+2E80..U+2EFF # Kangxi Radicals # U+2F00..U+2FDF if u'\u2E80' <= uch <= u'\u2FDF': return 'cn' # CJK Unified Ideographs Extension A # U+3400..U+4DBF if u'\u3400' <= uch <= u'\u4DBF': return 'cn' # CJK Compatibility Ideographs # U+F900..U+FAFF if u'\uF900' <= uch <= u'\uFAFF': return 'cn' # CJK Symbols and Punctuation # U+3000..U+303F if u'\u3000' <= uch <= u'\u303F': return 'symbol' # -- jp -- # Hiragana + Katakana if u'\u3040' <= uch <= u'\u30FF': return 'jp' return 'other' def tokenize_unicode_by_lang(text): buf = [] buf_lang = None for uch in text: lang = get_unichr_lang(uch) if lang is None: buf.append(uch) continue if buf_lang == lang or buf_lang is None: buf_lang = lang buf.append(uch) continue else: yield buf_lang or 'ko', ''.join(buf) buf = [uch] buf_lang = lang if buf: yield buf_lang or 'ko', ''.join(buf) ================================================ FILE: src/hwp5/cli.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import logging import os from .plat import xsltproc from .plat import xmllint from .storage import ExtraItemStorage from .storage import open_storage_item from .storage.ole import OleStorage from .xmlmodel import Hwp5File def init_logger(args): logger = logging.getLogger('hwp5') try: from colorlog import ColoredFormatter except ImportError: formatter = None else: formatter = ColoredFormatter( '%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s', datefmt=None, reset=True, log_colors={ 'DEBUG': 'cyan', 'INFO': 'green', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'red' } ) loglevel = args.loglevel if not loglevel: loglevel = os.environ.get('PYHWP_LOGLEVEL') if loglevel: levels = dict(debug=logging.DEBUG, info=logging.INFO, warning=logging.WARNING, error=logging.ERROR, critical=logging.CRITICAL) loglevel = loglevel.lower() loglevel = levels.get(loglevel, logging.WARNING) logger.setLevel(loglevel) logfile = args.logfile if not logfile: logfile = os.environ.get('PYHWP_LOGFILE') if logfile: handler = logging.FileHandler(logfile) else: handler = logging.StreamHandler() if formatter: handler.setFormatter(formatter) logger.addHandler(handler) def init_with_environ(): if 'PYHWP_XSLTPROC' in os.environ: xsltproc.executable = os.environ['PYHWP_XSLTPROC'] xsltproc.enable() if 'PYHWP_XMLLINT' in os.environ: xmllint.executable = os.environ['PYHWP_XMLLINT'] xmllint.enable() def open_hwpfile(args): filename = args.hwp5file if args.ole: hwpfile = OleStorage(filename) else: hwpfile = Hwp5File(filename) if args.vstreams: hwpfile = ExtraItemStorage(hwpfile) return hwpfile def parse_recordstream_name(hwpfile, streamname): if streamname == 'docinfo': return hwpfile.docinfo segments = streamname.split('/') if len(segments) == 2: if segments[0] == 'bodytext': try: idx = int(segments[1]) return hwpfile.bodytext.section(idx) except ValueError: pass return open_storage_item(hwpfile, streamname) ================================================ FILE: src/hwp5/compressed.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from io import BytesIO import codecs import zlib from .utils import GeneratorReader class ZLibIncrementalDecoder(codecs.IncrementalDecoder): def __init__(self, errors='strict', wbits=15): assert errors == 'strict' self.errors = errors self.wbits = wbits self.reset() def decode(self, input, final=False): c = self.decompressobj.decompress(input) if final: c += self.decompressobj.flush() return c def reset(self): self.decompressobj = zlib.decompressobj(self.wbits) def decompress_gen(source, bufsize=4096): dec = ZLibIncrementalDecoder(wbits=-15) exausted = False while not exausted: input = source.read(bufsize) if len(input) < bufsize: exausted = True yield dec.decode(input, exausted) def decompress_experimental(source, bufsize=4096): ''' decompress inputstream stream: a file-like readable returns a file-like readable ''' return GeneratorReader(decompress_gen(source, bufsize)) def decompress(stream): ''' decompress inputstream stream: a file-like readable returns a file-like readable ''' # #176 참고. #175의 임시방편을 사용한다. compressed_maybe = stream.read() try: decompressed = zlib.decompress(compressed_maybe, -15) # without gzip header except zlib.error: return BytesIO(compressed_maybe) else: return BytesIO(decompressed) ================================================ FILE: src/hwp5/dataio.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from array import array from binascii import b2a_hex from itertools import takewhile import inspect import logging import struct import sys from six import with_metaclass PY3 = sys.version_info.major == 3 if PY3: long = int unicode = str basestring = str logger = logging.getLogger(__name__) class Eof(Exception): def __init__(self, *args): self.args = args class OutOfData(Exception): pass def readn(f, size): data = f.read(size) datasize = len(data) if datasize == 0: try: pos = f.tell() except IOError: pos = '' raise Eof(pos) return data class PrimitiveType(type): def __new__(mcs, name, bases, attrs): basetype = bases[0] attrs['basetype'] = basetype attrs.setdefault('__slots__', []) never_instantiate = attrs.pop('never_instantiate', True) if never_instantiate and '__new__' not in attrs: def __new__(cls, *args, **kwargs): return basetype.__new__(basetype, *args, **kwargs) attrs['__new__'] = __new__ if 'binfmt' in attrs: binfmt = attrs['binfmt'] fixed_size = struct.calcsize(binfmt) if 'fixed_size' in attrs: assert fixed_size == attrs['fixed_size'] else: attrs['fixed_size'] = fixed_size if 'decode' not in attrs: def decode(cls, s): return struct.unpack(binfmt, s)[0] attrs['decode'] = classmethod(decode) if 'fixed_size' in attrs and 'read' not in attrs: fixed_size = attrs['fixed_size'] def read(cls, f): s = readn(f, fixed_size) decode = getattr(cls, 'decode', None) if decode: return decode(s) return s attrs['read'] = classmethod(read) return type.__new__(mcs, str(name), bases, attrs) def Primitive(name, basetype, binfmt, **attrs): attrs['binfmt'] = binfmt return PrimitiveType(name, (basetype,), attrs) UINT32 = Primitive('UINT32', long, ' 2: lsb, msb, valuetype = bitgroup else: lsb, msb = bitgroup else: lsb = msb = bitgroup self.lsb = lsb self.msb = msb self.valuetype = valuetype def __get__(self, instance, owner): valuetype = self.valuetype return valuetype(self.get_int_value(instance)) def get_int_value(self, instance): lsb = self.lsb msb = self.msb return int(instance >> lsb) & int((2 ** (msb + 1 - lsb)) - 1) class FlagsType(type): def __new__(mcs, name, bases, attrs): basetype = attrs.pop('basetype') bases = (basetype.basetype,) bitgroups = dict((k, BitGroupDescriptor(v)) for k, v in attrs.items()) attrs = dict(bitgroups) attrs['__name__'] = name attrs['__slots__'] = () attrs['basetype'] = basetype attrs['bitfields'] = bitgroups def dictvalue(self): return dict((name, getattr(self, name)) for name in bitgroups.keys()) attrs['dictvalue'] = dictvalue return type.__new__(mcs, str(name), bases, attrs) def _lex_flags_args(args): for idx, arg in enumerate(args): while True: pushback = (yield idx, arg) if pushback is arg: yield continue break def _parse_flags_args(args): args = _lex_flags_args(args) try: idx = -1 while True: # lsb try: idx, lsb = next(args) except StopIteration: break assert isinstance(lsb, int), ('#%d arg is expected to be' 'a int: %s' % (idx, repr(lsb))) # msb (default: lsb) idx, x = next(args) if isinstance(x, int): msb = x elif isinstance(x, (type, basestring)): args.send(x) # pushback msb = lsb else: assert False, '#%d arg is unexpected type: %s' % (idx, repr(x)) # type (default: int) idx, x = next(args) assert not isinstance(x, int), ('#%d args is expected to be a type' 'or name: %s' % (idx, repr(x))) if isinstance(x, type): t = x elif isinstance(x, basestring): args.send(x) # pushback t = int else: assert False, '#%d arg is unexpected type: %s' % (idx, repr(x)) # name idx, name = next(args) assert isinstance(name, basestring), ('#%d args is expected to be ' 'a name: %s' % (idx, repr(name))) yield name, (lsb, msb, t) except StopIteration: assert False, '#%d arg is expected' % (idx + 1) def Flags(basetype, *args): attrs = dict(_parse_flags_args(args)) attrs['basetype'] = basetype return FlagsType('Flags', (), attrs) enum_type_instances = set() class EnumType(type): def __new__(mcs, enum_type_name, bases, attrs): items = attrs.pop('items') moreitems = attrs.pop('moreitems') populate_state = [1] names_by_instance = dict() instances_by_name = dict() instances_by_value = dict() def __new__(cls, value, name=None): if isinstance(value, cls): return value if name is None: if value in instances_by_value: return instances_by_value[value] else: logger.warning('undefined %s value: %s', cls.__name__, value) logger.warning('defined name/values: %s', str(instances_by_name)) return int.__new__(cls, value) if len(populate_state) == 0: raise TypeError() assert name not in instances_by_name if value in instances_by_value: self = instances_by_value[value] else: # define new instance of this enum self = int.__new__(cls, value) instances_by_value[value] = self names_by_instance[self] = name instances_by_name[name] = self return self attrs['__new__'] = __new__ attrs['__slots__'] = [] attrs['scoping_struct'] = None class NameDescriptor(object): def __get__(self, instance, owner): if instance is None: return owner.__name__ return names_by_instance.get(instance) attrs['name'] = NameDescriptor() def __repr__(self): enum_name = type(self).__name__ item_name = self.name if item_name is not None: return enum_name + '.' + item_name else: return '%s(%d)' % (enum_name, self) attrs['__repr__'] = __repr__ cls = type.__new__(mcs, str(enum_type_name), bases, attrs) for v, k in enumerate(items): setattr(cls, k, cls(v, k)) for k, v in moreitems.items(): setattr(cls, k, cls(v, k)) cls.names = set(instances_by_name.keys()) cls.instances = set(names_by_instance.keys()) # no more population populate_state.pop() enum_type_instances.add(cls) return cls def __init__(cls, *args, **kwargs): pass def Enum(*items, **moreitems): attrs = dict(items=items, moreitems=moreitems) return EnumType('Enum', (int,), attrs) class CompoundType(type): def __new__(mcs, name, bases, attrs): return type.__new__(mcs, str(name), bases, attrs) class ArrayType(CompoundType): def __init__(self, *args, **kwargs): pass class FixedArrayType(ArrayType): classes = dict() def __new__(mcs, itemtype, size): key = itemtype, size cls = mcs.classes.get(key) if cls is not None: return cls attrs = dict(itemtype=itemtype, size=size) name = 'ARRAY(%s,%s)' % (itemtype.__name__, size) cls = ArrayType.__new__(mcs, str(name), (tuple,), attrs) mcs.classes[key] = cls return cls ARRAY = FixedArrayType class VariableLengthArrayType(ArrayType): classes = dict() def __new__(mcs, counttype, itemtype): key = counttype, itemtype cls = mcs.classes.get(key) if cls is not None: return cls attrs = dict(itemtype=itemtype, counttype=counttype) name = 'N_ARRAY(%s,%s)' % (counttype.__name__, itemtype.__name__) cls = ArrayType.__new__(mcs, str(name), (list,), attrs) mcs.classes[key] = cls return cls N_ARRAY = VariableLengthArrayType def ref_member(member_name): def fn(context, values): return values[member_name] fn.__doc__ = member_name return fn def ref_member_flag(member_name, bitfield_name): def fn(context, values): return getattr(values[member_name], bitfield_name) fn.__doc__ = '%s.%s' % (member_name, bitfield_name) return fn class X_ARRAY(object): def __init__(self, itemtype, count_reference): name = 'ARRAY(%s, \'%s\')' % (itemtype.__name__, count_reference.__doc__) self.__doc__ = self.__name__ = name self.itemtype = itemtype self.count_reference = count_reference def __call__(self, context, values): count = self.count_reference(context, values) return ARRAY(self.itemtype, count) class SelectiveType(object): def __init__(self, selector_reference, selections): self.__name__ = 'SelectiveType' self.selections = selections self.selector_reference = selector_reference def __call__(self, context, values): selector = self.selector_reference(context, values) return self.selections.get(selector, Struct) # default: empty struct class ParseError(Exception): treegroup = None def __init__(self, *args, **kwargs): Exception.__init__(self, *args, **kwargs) self.cause = None self.path = None self.record = None self.binevents = None self.parse_stack_traces = [] def print_to_logger(self, logger): e = self logger.error('ParseError: %s', e) logger.error('Caused by: %s', repr(e.cause)) logger.error('Path: %s', e.path) if e.treegroup is not None: logger.error('Treegroup: %s', e.treegroup) if e.record: logger.error('Record: %s', e.record['seqno']) logger.error('Record Payload:') for line in dumpbytes(e.record['payload'], True): logger.error(' %s', line) logger.error('Problem Offset: at %d (=0x%x)', e.offset, e.offset) if self.binevents: logger.error('Binary Parse Events:') from hwp5.bintype import log_events for ev, item in log_events(self.binevents, logger.error): pass logger.error('Model Stack:') for level, c in enumerate(reversed(e.parse_stack_traces)): model = c['model'] if isinstance(model, StructType): logger.error(' %s', model) parsed_members = c['parsed'] for member in parsed_members: offset = member.get('offset', 0) offset_end = member.get('offset_end', 1) name = member['name'] value = member['value'] logger.error(' %06x:%06x: %s = %s', offset, offset_end - 1, name, value) logger.error(' %06x: : %s', c['offset'], c['member']) pass else: logger.error(' %s%s', ' ' * level, c) def typed_struct_attributes(struct, attributes, context): attributes = dict(attributes) def popvalue(member): name = member['name'] if name in attributes: return attributes.pop(name) else: return member['type']() for member in struct.parse_members_with_inherited(context, popvalue): yield member # remnants for name, value in attributes.items(): yield dict(name=name, type=type(value), value=value) class StructType(CompoundType): def __init__(cls, name, bases, attrs): super(StructType, cls).__init__(name, bases, attrs) if 'attributes' in cls.__dict__: members = (dict(type=member[0], name=member[1]) if isinstance(member, tuple) else member for member in cls.attributes()) cls.members = list(members) for k, v in attrs.items(): if isinstance(v, EnumType): v.__name__ = k v.scoping_struct = cls elif isinstance(v, FlagsType): v.__name__ = k def parse_members(cls, context, getvalue): if 'attributes' not in cls.__dict__: return values = dict() for member in cls.members: member = dict(member) if isinstance(member['type'], X_ARRAY): member['type'] = member['type'](context, values) elif isinstance(member['type'], SelectiveType): member['type'] = member['type'](context, values) member_version = member.get('version') if member_version is None or context['version'] >= member_version: condition_func = member.get('condition') if condition_func is None or condition_func(context, values): try: value = getvalue(member) except ParseError as e: tracepoint = dict(model=cls, member=member['name']) e.parse_stack_traces.append(tracepoint) raise values[member['name']] = member['value'] = value yield member def parse_members_with_inherited(cls, context, getvalue, up_to_cls=None): mro = inspect.getmro(cls) mro = takewhile(lambda cls: cls is not up_to_cls, mro) mro = list(cls for cls in mro if 'attributes' in cls.__dict__) mro = reversed(mro) for cls in mro: for member in cls.parse_members(context, getvalue): yield member class Struct(with_metaclass(StructType, object)): pass def dumpbytes(data, crust=False): if PY3: _ord = int else: _ord = ord offsbase = 0 if crust: yield '\t 0 1 2 3 4 5 6 7 8 9 A B C D E F' while len(data) > 16: if crust: line = '%05x0: ' % offsbase else: line = '' line += ' '.join(['%02x' % _ord(ch) for ch in data[0:16]]) yield line data = data[16:] offsbase += 1 if crust: line = '%05x0: ' % offsbase else: line = '' line += ' '.join(['%02x' % _ord(ch) for ch in data]) yield line def hexdump(data, crust=False): return '\n'.join([line for line in dumpbytes(data, crust)]) class IndentedOutput: def __init__(self, base, level): self.base = base self.level = level def write(self, x): for line in x.split('\n'): if len(line) > 0: self.base.write('\t' * self.level) self.base.write(line) self.base.write('\n') class Printer: def __init__(self, baseout): self.baseout = baseout def prints(self, *args): for x in args: self.baseout.write(str(x) + ' ') self.baseout.write('\n') ================================================ FILE: src/hwp5/distdoc.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ''' Decode distribute docs. Based on the algorithm described by Changwoo Ryu See https://groups.google.com/forum/#!topic/hwp-foss/d2KL2ypR89Q ''' from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from io import BytesIO import logging from .plat import get_aes128ecb_decrypt from .recordstream import read_record from .tagids import HWPTAG_DISTRIBUTE_DOC_DATA logger = logging.getLogger(__name__) def decode(stream): distdoc_data_record = read_record(stream, 0) if distdoc_data_record['tagid'] != HWPTAG_DISTRIBUTE_DOC_DATA: raise IOError('the first record is not an HWPTAG_DISTRIBUTE_DOC_DATA') distdoc_data = distdoc_data_record['payload'] key = decode_head_to_key(distdoc_data) tail = stream.read() decrypted = decrypt_tail(key, tail) return BytesIO(decrypted) class Random: ''' MSVC's srand()/rand() like pseudorandom generator. ''' def __init__(self, seed): self.seed = seed def rand(self): self.seed = (self.seed * 214013 + 2531011) & 0xffffffff value = (self.seed >> 16) & 0x7fff return value def decode_head_to_sha1(record_payload): ''' Decode HWPTAG_DISTRIBUTE_DOC_DATA. It's the sha1 digest of user-supplied password string, i.e., '12345' -> hashlib.sha1('12345').digest() ''' if len(record_payload) != 256: raise ValueError('payload size must be 256 bytes') data = bytearray(record_payload) seed = data[3] << 24 | data[2] << 16 | data[1] << 8 | data[0] random = Random(seed) n = 0 for i in range(256): if n == 0: key = random.rand() & 0xff n = (random.rand() & 0xf) + 1 if i >= 4: data[i] = data[i] ^ key n -= 1 # decoded = b''.join(chr(x) for x in data) decoded = data sha1offset = 4 + (seed & 0xf) ucs16le = decoded[sha1offset:sha1offset + 80] return ucs16le def decode_head_to_key(record_payload): sha1ucs16le = decode_head_to_sha1(record_payload) return sha1ucs16le[:16] def decrypt_tail(key, encrypted_tail): decrypt = get_aes128ecb_decrypt() return decrypt(key, encrypted_tail) ================================================ FILE: src/hwp5/errors.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals class InvalidOleStorageError(Exception): ''' Invalid OLE2 Compound Binary File. ''' pass class InvalidHwp5FileError(Exception): ''' Invalid HWP Document format v5 File. ''' pass class ImplementationNotAvailable(Exception): pass class ValidationFailed(Exception): pass class RelaxNGValidationFailed(ValidationFailed): pass ================================================ FILE: src/hwp5/filestructure.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from io import BytesIO import logging import sys from .bintype import read_type from .compressed import decompress from .dataio import UINT32, Flags, Struct from .errors import InvalidOleStorageError from .errors import InvalidHwp5FileError from .storage import ItemWrapper from .storage import StorageWrapper from .storage import ItemConversionStorage from .storage import is_stream from .storage.ole import OleStorage from .summaryinfo import CLSID_HWP_SUMMARY_INFORMATION from .utils import GeneratorTextReader from .utils import cached_property from .utils import transcoder PY3 = sys.version_info.major == 3 if PY3: basestring = str logger = logging.getLogger(__name__) HWP5_SIGNATURE = b'HWP Document File' + (b'\x00' * 15) class BYTES(type): def __new__(mcs, size): decode = staticmethod(lambda bytes, *args, **kwargs: bytes) return type.__new__(mcs, str('BYTES(%d)') % size, (str,), dict(fixed_size=size, decode=decode)) class VERSION(object): fixed_size = 4 if PY3: def decode(cls, bytes): return (bytes[3], bytes[2], bytes[1], bytes[0]) else: def decode(cls, bytes): return (ord(bytes[3]), ord(bytes[2]), ord(bytes[1]), ord(bytes[0])) decode = classmethod(decode) class FileHeader(Struct): Flags = Flags(UINT32, 0, 'compressed', 1, 'password', 2, 'distributable', 3, 'script', 4, 'drm', 5, 'xmltemplate_storage', 6, 'history', 7, 'cert_signed', 8, 'cert_encrypted', 9, 'cert_signature_extra', 10, 'cert_drm', 11, 'ccl') def attributes(cls): yield BYTES(32), 'signature' yield VERSION, 'version' yield cls.Flags, 'flags' yield BYTES(216), 'reserved' attributes = classmethod(attributes) def is_hwp5file(filename): ''' Test whether it is an HWP format v5 file. ''' try: olestg = OleStorage(filename) except InvalidOleStorageError: return False return storage_is_hwp5file(olestg) def storage_is_hwp5file(stg): try: fileheader = stg['FileHeader'] except KeyError: logger.info('stg has no FileHeader') return False fileheader = HwpFileHeader(fileheader) if fileheader.signature == HWP5_SIGNATURE: return True else: logger.info('fileheader.signature = %r', fileheader.signature) return False class CompressedStream(ItemWrapper): def open(self): return decompress(self.wrapped.open()) class CompressedStorage(StorageWrapper): ''' decompress streams in the underlying storage ''' def __getitem__(self, name): item = self.wrapped[name] if is_stream(item): return CompressedStream(item) else: return item class PasswordProtectedStream(ItemWrapper): def open(self): # TODO: 현재로선 암호화된 내용을 그냥 반환 logger.warning('Password-encrypted stream: currently decryption is ' 'not supported') return self.wrapped.open() class PasswordProtectedStorage(StorageWrapper): def __getitem__(self, name): item = self.wrapped[name] if is_stream(item): return PasswordProtectedStream(item) else: return item class Hwp5PasswordProtectedDoc(ItemConversionStorage): def resolve_conversion_for(self, name): if name in ('BinData', 'BodyText', 'Scripts', 'ViewText'): return PasswordProtectedStorage elif name in ('DocInfo', ): return PasswordProtectedStream class VersionSensitiveItem(ItemWrapper): def __init__(self, item, version): ItemWrapper.__init__(self, item) self.version = version def open(self): return self.wrapped.open() def other_formats(self): return dict() class Hwp5FileBase(ItemConversionStorage): ''' Base of an Hwp5File. Hwp5FileBase checks basic validity of an HWP format v5 and provides `fileheader` property. :param stg: an OLE2 structured storage. :type stg: an instance of storage, OleFileIO or filename :raises InvalidHwp5FileError: `stg` is not a valid HWP format v5 document. ''' def __init__(self, stg): if isinstance(stg, basestring): try: stg = OleStorage(stg) except InvalidOleStorageError: raise InvalidHwp5FileError('Not an OLE2 Compound Binary File.') if not storage_is_hwp5file(stg): errormsg = 'Not an HWP Document format v5 storage.' raise InvalidHwp5FileError(errormsg) ItemConversionStorage.__init__(self, stg) def resolve_conversion_for(self, name): if name == 'FileHeader': return HwpFileHeader def get_fileheader(self): return self['FileHeader'] fileheader = cached_property(get_fileheader) header = fileheader class Hwp5DistDocStream(VersionSensitiveItem): def open(self): from hwp5.distdoc import decode encodedstream = self.wrapped.open() return decode(encodedstream) def head_record(self): item = self.wrapped.open() from .recordstream import read_record return read_record(item, 0) def head_record_stream(self): from .recordstream import record_to_json record = self.head_record() json = record_to_json(record) return GeneratorTextReader(iter([json])) def head(self): record = self.head_record() return record['payload'] def head_stream(self): return BytesIO(self.head()) def head_sha1(self): from hwp5.distdoc import decode_head_to_sha1 payload = self.head() return decode_head_to_sha1(payload) def head_key(self): from hwp5.distdoc import decode_head_to_key payload = self.head() return decode_head_to_key(payload) def tail(self): item = self.wrapped.open() from .recordstream import read_record read_record(item, 0) assert 4 + 256 == item.tell() return item.read() def tail_decrypted(self): from hwp5.distdoc import decrypt_tail key = self.head_key() tail = self.tail() return decrypt_tail(key, tail) def tail_stream(self): return BytesIO(self.tail()) class Hwp5DistDocStorage(ItemConversionStorage): def resolve_conversion_for(self, name): def conversion(item): return Hwp5DistDocStream(self.wrapped[name], None) # TODO: version return conversion class Hwp5DistDoc(ItemConversionStorage): def resolve_conversion_for(self, name): if name in ('Scripts', 'ViewText'): return Hwp5DistDocStorage class Hwp5Compression(ItemConversionStorage): ''' handle compressed streams in HWPv5 files ''' def resolve_conversion_for(self, name): if name in ('BinData', 'BodyText', 'ViewText'): return CompressedStorage elif name == 'DocInfo': return CompressedStream elif name == 'Scripts': return CompressedStorage class PreviewText(object): def __init__(self, item): self.open = item.open def other_formats(self): return {'.utf8': self.open_utf8} def open_utf8(self): transcode = transcoder('utf-16le', 'utf-8') return transcode(self.open()) def get_utf8(self): f = self.open_utf8() try: return f.read() finally: f.close() utf8 = cached_property(get_utf8) def get_text(self): fp = self.open() try: data = fp.read() finally: fp.close() return data.decode('utf-16le') text = cached_property(get_text) def __str__(self): if PY3: return self.text return self.utf8 def __unicode__(self): return self.text class Sections(ItemConversionStorage): section_class = VersionSensitiveItem def __init__(self, stg, version): ItemConversionStorage.__init__(self, stg) self.version = version def resolve_conversion_for(self, name): def conversion(item): return self.section_class(self.wrapped[name], self.version) return conversion def other_formats(self): return dict() def section(self, idx): return self['Section%d' % idx] def section_indexes(self): def gen(): for name in self: if name.startswith('Section'): idx = name[len('Section'):] try: idx = int(idx) except: pass else: yield idx indexes = list(gen()) indexes.sort() return indexes @property def sections(self): return list(self.section(idx) for idx in self.section_indexes()) class HwpFileHeader(object): def __init__(self, item): self.open = item.open def to_dict(self): f = self.open() try: return read_type(FileHeader, dict(), f) finally: f.close() value = cached_property(to_dict) def get_version(self): return self.value['version'] version = cached_property(get_version) def get_signature(self): return self.value['signature'] signature = cached_property(get_signature) def get_flags(self): return FileHeader.Flags(self.value['flags']) flags = cached_property(get_flags) def open_text(self): signature = self.value['signature'] signature = signature.decode('latin1') signature = signature[:len('HWP Document File')] d = FileHeader.Flags.dictvalue(self.value['flags']) d['signature'] = signature d['version'] = '%d.%d.%d.%d' % self.value['version'] out = BytesIO() for k, v in sorted(d.items()): out.write('{}: {}\n'.format(k, v).encode('utf-8')) out.seek(0) return out def other_formats(self): return {'.txt': self.open_text} class HwpSummaryInfo(VersionSensitiveItem): def other_formats(self): return {'.txt': self.open_text} def getPropertySetStream(self): from .msoleprops import PropertySetFormat from .msoleprops import PropertySetStreamReader from .summaryinfo import FMTID_HWP_SUMMARY_INFORMATION from .summaryinfo import HWP_PROPERTIES propertySetFormat = PropertySetFormat( FMTID_HWP_SUMMARY_INFORMATION, HWP_PROPERTIES ) reader = PropertySetStreamReader([propertySetFormat]) f = self.open() try: return reader.read(f) finally: f.close() propertySetStream = cached_property(getPropertySetStream) def getHwpSummaryInfoPropertySet(self): stream = self.propertySetStream if stream.clsid == CLSID_HWP_SUMMARY_INFORMATION: return stream.propertysets[0] propertySet = cached_property(getHwpSummaryInfoPropertySet) @property def title(self): from .msoleprops import PIDSI_TITLE return self.propertySet[PIDSI_TITLE] @property def subject(self): from .msoleprops import PIDSI_SUBJECT return self.propertySet[PIDSI_SUBJECT] @property def author(self): from .msoleprops import PIDSI_AUTHOR return self.propertySet[PIDSI_AUTHOR] @property def keywords(self): from .msoleprops import PIDSI_KEYWORDS return self.propertySet[PIDSI_KEYWORDS] @property def comments(self): from .msoleprops import PIDSI_COMMENTS return self.propertySet[PIDSI_COMMENTS] @property def lastSavedBy(self): from .msoleprops import PIDSI_LASTAUTHOR return self.propertySet[PIDSI_LASTAUTHOR] @property def revisionNumber(self): from .msoleprops import PIDSI_REVNUMBER return self.propertySet[PIDSI_REVNUMBER] @property def lastPrintedTime(self): from .msoleprops import PIDSI_LASTPRINTED return self.propertySet[PIDSI_LASTPRINTED] @property def createdTime(self): from .msoleprops import PIDSI_CREATE_DTM return self.propertySet[PIDSI_CREATE_DTM] @property def lastSavedTime(self): from .msoleprops import PIDSI_LASTSAVE_DTM return self.propertySet[PIDSI_LASTSAVE_DTM] @property def numberOfPages(self): from .msoleprops import PIDSI_PAGECOUNT return self.propertySet[PIDSI_PAGECOUNT] @property def dateString(self): from .summaryinfo import HWPPIDSI_DATE_STR return self.propertySet[HWPPIDSI_DATE_STR] @property def numberOfParagraphs(self): from .summaryinfo import HWPPIDSI_PARACOUNT return self.propertySet[HWPPIDSI_PARACOUNT] @property def plaintext_lines(self): from .msoleprops import PropertySetStreamTextFormatter stream = self.getPropertySetStream() formatter = PropertySetStreamTextFormatter() return formatter.formatTextLines(stream) def open_text(self): out = BytesIO() for line in self.plaintext_lines: line = line.encode('utf-8') out.write(line + b'\n') out.seek(0) return out class Hwp5File(ItemConversionStorage): ''' represents HWPv5 File Hwp5File(stg) stg: an instance of Storage ''' def __init__(self, stg): stg = Hwp5FileBase(stg) if stg.header.flags.password: stg = Hwp5PasswordProtectedDoc(stg) # TODO: 현재로선 decryption이 구현되지 않았으므로, # 레코드 파싱은 불가능하다. 적어도 encrypted stream에 # 직접 접근은 가능하도록, 다음 레이어들은 bypass한다. ItemConversionStorage.__init__(self, stg) return if stg.header.flags.distributable: stg = Hwp5DistDoc(stg) if stg.header.flags.compressed: stg = Hwp5Compression(stg) ItemConversionStorage.__init__(self, stg) def resolve_conversion_for(self, name): if name == 'DocInfo': return self.with_version(self.docinfo_class) if name == 'BodyText': return self.with_version(self.bodytext_class) if name == 'ViewText': return self.with_version(self.bodytext_class) if name == 'PrvText': return PreviewText if name == '\005HwpSummaryInformation': return self.with_version(self.summaryinfo_class) def with_version(self, f): def wrapped(item): return f(item, self.header.version) return wrapped summaryinfo_class = HwpSummaryInfo docinfo_class = VersionSensitiveItem bodytext_class = Sections @cached_property def summaryinfo(self): return self['\005HwpSummaryInformation'] @cached_property def docinfo(self): return self['DocInfo'] @cached_property def preview_text(self): return self['PrvText'] @cached_property def bodytext(self): return self['BodyText'] @cached_property def viewtext(self): return self['ViewText'] @property def text(self): if self.header.flags.distributable: return self.viewtext else: return self.bodytext ================================================ FILE: src/hwp5/hwp5html.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from argparse import ArgumentParser from contextlib import contextmanager from contextlib import closing from functools import partial import gettext import io import logging import os.path import shutil import sys from . import __version__ as version from .cli import init_logger from .transforms import BaseTransform from .utils import cached_property PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) locale_dir = os.path.join(os.path.dirname(__file__), 'locale') locale_dir = os.path.abspath(locale_dir) t = gettext.translation('hwp5html', locale_dir, fallback=True) if PY3: _ = t.gettext else: _ = t.ugettext RESOURCE_PATH_XSL_CSS = 'xsl/hwp5css.xsl' RESOURCE_PATH_XSL_XHTML = 'xsl/hwp5html.xsl' class HTMLTransform(BaseTransform): @property def transform_hwp5_to_css(self): ''' >>> T.transform_hwp5_to_css(hwp5file, 'styles.css') ''' transform_xhwp5 = self.transform_xhwp5_to_css return self.make_transform_hwp5(transform_xhwp5) @property def transform_hwp5_to_xhtml(self): ''' >>> T.transform_hwp5_to_xhtml(hwp5file, 'index.xhtml') ''' transform_xhwp5 = self.transform_xhwp5_to_xhtml return self.make_transform_hwp5(transform_xhwp5) def transform_hwp5_to_dir(self, hwp5file, outdir): ''' >>> T.transform_hwp5_to_dir(hwp5file, 'output') ''' with self.transformed_xhwp5_at_temp(hwp5file) as xhwp5path: self.transform_xhwp5_to_dir(xhwp5path, outdir) bindata_dir = os.path.join(outdir, 'bindata') self.extract_bindata_dir(hwp5file, bindata_dir) @cached_property def transform_xhwp5_to_css(self): ''' >>> T.transform_xhwp5_to_css('hwp5.xml', 'styles.css') ''' resource_path = RESOURCE_PATH_XSL_CSS return self.make_xsl_transform(resource_path) @cached_property def transform_xhwp5_to_xhtml(self): ''' >>> T.transform_xhwp5_to_xhtml('hwp5.xml', 'index.xhtml') ''' resource_path = RESOURCE_PATH_XSL_XHTML return self.make_xsl_transform(resource_path) def transform_xhwp5_to_dir(self, xhwp5path, outdir): ''' >>> T.transform_xhwp5_to_dir('hwp5.xml', 'output') ''' html_path = os.path.join(outdir, 'index.xhtml') with io.open(html_path, 'wb') as f: self.transform_xhwp5_to_xhtml(xhwp5path, f) css_path = os.path.join(outdir, 'styles.css') with io.open(css_path, 'wb') as f: self.transform_xhwp5_to_css(xhwp5path, f) def extract_bindata_dir(self, hwp5file, bindata_dir): if 'BinData' not in hwp5file: return bindata_stg = hwp5file['BinData'] if not os.path.exists(bindata_dir): os.mkdir(bindata_dir) from hwp5.storage import unpack unpack(bindata_stg, bindata_dir) def main(): from .dataio import ParseError from .errors import InvalidHwp5FileError from .utils import make_open_dest_file from .xmlmodel import Hwp5File argparser = main_argparser() args = argparser.parse_args() init_logger(args) hwp5path = args.hwp5file html_transform = HTMLTransform() open_dest = make_open_dest_file(args.output) if args.css: transform = html_transform.transform_hwp5_to_css open_dest = wrap_for_css(open_dest) elif args.html: transform = html_transform.transform_hwp5_to_xhtml open_dest = wrap_for_xml(open_dest) else: transform = html_transform.transform_hwp5_to_dir dest_path = args.output if not dest_path: dest_path = os.path.splitext(os.path.basename(hwp5path))[0] open_dest = partial(open_dir, dest_path) try: with closing(Hwp5File(hwp5path)) as hwp5file: with open_dest() as dest: transform(hwp5file, dest) except ParseError as e: e.print_to_logger(logger) except InvalidHwp5FileError as e: logger.error('%s', e) sys.exit(1) def main_argparser(): parser = ArgumentParser( prog='hwp5html', description=_('HWPv5 to HTML converter'), ) parser.add_argument( '--version', action='version', version='%(prog)s {}'.format(version) ) parser.add_argument( '--loglevel', help=_('Set log level.'), ) parser.add_argument( '--logfile', help=_('Set log file.'), ) parser.add_argument( '--output', help=_('Output file'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to convert'), ) generator_group = parser.add_mutually_exclusive_group() generator_group.add_argument( '--css', action='store_true', help=_('Generate CSS'), ) generator_group.add_argument( '--html', action='store_true', help=_('Generate HTML'), ) return parser @contextmanager def open_dir(path): if os.path.exists(path): shutil.rmtree(path) os.mkdir(path) yield path def wrap_for_css(open_dest): from .utils import wrap_open_dest_for_tty from .utils import pager from .utils import syntaxhighlight return wrap_open_dest_for_tty(open_dest, [ pager(), syntaxhighlight('text/css'), ]) def wrap_for_xml(open_dest): from .utils import wrap_open_dest_for_tty from .utils import pager from .utils import syntaxhighlight from .utils import xmllint return wrap_open_dest_for_tty(open_dest, [ pager(), syntaxhighlight('application/xml'), xmllint(format=True, nonet=True), ]) ================================================ FILE: src/hwp5/hwp5odt.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from argparse import ArgumentParser from contextlib import contextmanager from contextlib import closing from functools import partial from io import BytesIO import gettext import io import logging import os.path import sys from . import __version__ as version from .cli import init_logger from .cli import init_with_environ from .errors import ImplementationNotAvailable from .utils import mkstemp_open from .utils import hwp5_resources_path from .transforms import BaseTransform from .plat import get_relaxng_compile from .utils import cached_property PY3 = sys.version_info.major == 3 if PY3: basestring = str unicode = str logger = logging.getLogger(__name__) locale_dir = os.path.join(os.path.dirname(__file__), 'locale') locale_dir = os.path.abspath(locale_dir) t = gettext.translation('hwp5odt', locale_dir, fallback=True) if PY3: _ = t.gettext else: _ = t.ugettext RESOURCE_PATH_RNG = 'odf-relaxng/OpenDocument-v1.2-os-schema.rng' RESOURCE_PATH_XSL_SINGLE_DOCUMENT = 'xsl/odt/document.xsl' RESOURCE_PATH_XSL_STYLE = 'xsl/odt/styles.xsl' RESOURCE_PATH_XSL_CONTENT = 'xsl/odt/content.xsl' class ODFValidate: def __init__(self, relaxng_compile=None): ''' >>> V = ODFValidate() ''' if relaxng_compile is None: try: relaxng_compile = self.get_default_relaxng_compile() except ImplementationNotAvailable: relaxng_compile = None self.relaxng_compile = relaxng_compile @classmethod def get_default_relaxng_compile(cls): relaxng_compile = get_relaxng_compile() if not relaxng_compile: raise ImplementationNotAvailable('relaxng') return relaxng_compile @cached_property def odf_validator(self): ''' >>> with V.odf_validator(sys.stdout) as output: ... output.write(xml) ''' return self.make_odf_validator() def make_odf_validator(self): if self.relaxng_compile: with hwp5_resources_path(RESOURCE_PATH_RNG) as rng_path: return self.relaxng_compile(rng_path) class ODTTransform(BaseTransform, ODFValidate): def __init__(self, xslt_compile=None, relaxng_compile=None, embedbin=False): ''' >>> from hwp5.hwp5odt import ODTTransform >>> T = ODTTransform() ''' BaseTransform.__init__(self, xslt_compile=xslt_compile, embedbin=embedbin) ODFValidate.__init__(self, relaxng_compile) @property def transform_hwp5_to_styles(self): ''' >>> with io.open('styles.xml', 'wb') as f: ... T.transform_hwp5_to_styles(hwp5file, f) ''' transform_xhwp5 = self.transform_xhwp5_to_styles return self.make_transform_hwp5(transform_xhwp5) @property def transform_hwp5_to_content(self): ''' >>> with io.open('content.xml', 'wb') as f: ... T.transform_hwp5_to_content(hwp5file, f) ''' transform_xhwp5 = self.transform_xhwp5_to_content return self.make_transform_hwp5(transform_xhwp5) @property def transform_hwp5_to_single_document(self): ''' >>> with io.open('transformed.fodt', 'wb') as f: ... T.transform_hwp5_to_single_document(hwp5file, f) ''' transform_xhwp5 = self.transform_xhwp5_to_single_document return self.make_transform_hwp5(transform_xhwp5) def transform_hwp5_to_package(self, hwp5file, odtpkg): ''' >>> with open_odtpkg('transformed.odt') as odtpkg: ... T.transform_hwp5_to_package(hwp5file, odtpkg) ''' with self.transformed_xhwp5_at_temp(hwp5file) as xml_path: self.transform_xhwp5_into_package(xml_path, odtpkg) if 'BinData' in hwp5file: bindata = hwp5file['BinData'] for name in bindata: f = bindata[name].open() path = 'bindata/' + name mimetype = 'application/octet-stream' odtpkg.insert_stream(f, path, mimetype) @cached_property def transform_xhwp5_to_styles(self): ''' >>> with io.open('styles.xml', 'wb') as f: ... T.transform_xhwp5_to_styles('input.xml', f) ''' resource_path = RESOURCE_PATH_XSL_STYLE return self.make_odf_transform(resource_path) @cached_property def transform_xhwp5_to_content(self): ''' >>> with io.open('content.xml', 'wb') as f: ... T.transform_xhwp5_to_content('input.xml', f) ''' resource_path = RESOURCE_PATH_XSL_CONTENT return self.make_odf_transform(resource_path) @cached_property def transform_xhwp5_to_single_document(self): ''' >>> with io.open('transformed.fodf', 'wb') as f: ... T.transform_xhwp5_to_single_document('input.xml', f) ''' resource_path = RESOURCE_PATH_XSL_SINGLE_DOCUMENT return self.make_odf_transform(resource_path) @property def transform_xhwp5_into_package(self): ''' >>> with open_odtpkg('transformed.odt') as odtpkg: >>> T.transform_xhwp5_into_package('input.xml', odtpkg) ''' def transform(xhwp5path, odtpkg): with self.transformed_styles_at_temp(xhwp5path) as path: odtpkg.insert_path(path, 'styles.xml', 'text/xml') with self.transformed_content_at_temp(xhwp5path) as path: odtpkg.insert_path(path, 'content.xml', 'text/xml') rdf = BytesIO() manifest_rdf(rdf) rdf.seek(0) odtpkg.insert_stream(rdf, 'manifest.rdf', 'application/rdf+xml') return transform def transformed_styles_at_temp(self, xhwp5path): ''' >>> with T.transformed_styles_at_temp('input.xml') as styles_path: ... pass ''' transform_xhwp5 = self.transform_xhwp5_to_styles return transformed_at_temp_path(xhwp5path, transform_xhwp5) def transformed_content_at_temp(self, xhwp5path): ''' >>> with T.transformed_content_at_temp('input.xml') as content_path: ... pass ''' transform_xhwp5 = self.transform_xhwp5_to_content return transformed_at_temp_path(xhwp5path, transform_xhwp5) def transformed_single_document_at_temp(self, xhwp5path): ''' >>> with T.transformed_single_document_at_temp('input.xml') as path: ... pass ''' transform_xhwp5 = self.transform_xhwp5_to_single_document return transformed_at_temp_path(xhwp5path, transform_xhwp5) def make_odf_transform(self, resource_path): transform = self.make_xsl_transform(resource_path) validator = self.odf_validator if validator: def validating_transform(input, output): with validator.validating_output(output) as output: transform(input, output) return validating_transform else: return transform @contextmanager def transformed_at_temp_path(inp_path, transform): with mkstemp_open() as (tmp_path, f): transform(inp_path, f) f.flush() yield tmp_path class ODTPackage(object): def __init__(self, path_or_zipfile): self.files = [] if isinstance(path_or_zipfile, basestring): from zipfile import ZipFile zipfile = ZipFile(path_or_zipfile, 'w') else: zipfile = path_or_zipfile self.zf = zipfile def insert_path(self, src_path, path, media_type): with io.open(src_path, 'rb') as f: self.insert_stream(f, path, media_type) def insert_stream(self, f, path, media_type): if not isinstance(path, unicode): path = path.decode('utf-8') self.zf.writestr(path, f.read()) self.files.append(dict(full_path=path, media_type=media_type)) def close(self): manifest = BytesIO() manifest_xml(manifest, self.files) manifest.seek(0) self.zf.writestr('META-INF/manifest.xml', manifest.getvalue()) self.zf.writestr('mimetype', 'application/vnd.oasis.opendocument.text') self.zf.close() def manifest_xml(f, files): from xml.sax.saxutils import XMLGenerator xml = XMLGenerator(f, 'utf-8') xml.startDocument() uri = 'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0' prefix = 'manifest' xml.startPrefixMapping(prefix, uri) def startElement(name, attrs): attrs = dict(((uri, n), v) for n, v in attrs.items()) xml.startElementNS((uri, name), prefix + ':' + name, attrs) def endElement(name): xml.endElementNS((uri, name), prefix + ':' + name) def file_entry(full_path, media_type, **kwargs): attrs = {'media-type': media_type, 'full-path': full_path} attrs.update(dict((n.replace('_', '-'), v) for n, v in kwargs.items())) startElement('file-entry', attrs) endElement('file-entry') startElement('manifest', dict(version='1.2')) file_entry('/', 'application/vnd.oasis.opendocument.text', version='1.2') for e in files: e = dict(e) full_path = e.pop('full_path') media_type = e.pop('media_type', 'application/octet-stream') file_entry(full_path, media_type) endElement('manifest') xml.endPrefixMapping(prefix) xml.endDocument() def manifest_rdf(f): f.write(b''' ''') def main(): from .dataio import ParseError from .errors import InvalidHwp5FileError from .utils import make_open_dest_file from .xmlmodel import Hwp5File argparser = main_argparser() args = argparser.parse_args() init_logger(args) init_with_environ() hwp5path = args.hwp5file odt_transform = ODTTransform() open_dest = make_open_dest_file(args.output) if args.document: odt_transform.embedbin = not args.no_embed_image transform = odt_transform.transform_hwp5_to_single_document open_dest = wrap_for_xml(open_dest) elif args.styles: odt_transform.embedbin = args.embed_image transform = odt_transform.transform_hwp5_to_styles open_dest = wrap_for_xml(open_dest) elif args.content: odt_transform.embedbin = args.embed_image transform = odt_transform.transform_hwp5_to_content open_dest = wrap_for_xml(open_dest) else: odt_transform.embedbin = args.embed_image transform = odt_transform.transform_hwp5_to_package dest_path = args.output dest_path = dest_path or replace_ext(hwp5path, '.odt') open_dest = partial(open_odtpkg, dest_path) try: with closing(Hwp5File(hwp5path)) as hwp5file: with open_dest() as dest: transform(hwp5file, dest) except ParseError as e: e.print_to_logger(logger) except InvalidHwp5FileError as e: logger.error('%s', e) sys.exit(1) def main_argparser(): parser = ArgumentParser( prog='hwp5odt', description=_('HWPv5 to odt converter'), ) parser.add_argument( '--version', action='version', version='%(prog)s {}'.format(version) ) parser.add_argument( '--loglevel', help=_('Set log level.'), ) parser.add_argument( '--logfile', help=_('Set log file.'), ) parser.add_argument( '--output', help=_('Output file'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to convert'), ) generator_group = parser.add_mutually_exclusive_group() generator_group.add_argument( '--styles', action='store_true', help=_('Generate styles.xml'), ) generator_group.add_argument( '--content', action='store_true', help=_('Generate content.xml'), ) generator_group.add_argument( '--document', action='store_true', help=_('Generate .fodt'), ) embedimage = parser.add_mutually_exclusive_group() embedimage.add_argument( '--embed-image', action='store_true', help=_('Embed images in output xml.'), ) embedimage.add_argument( '--no-embed-image', action='store_true', help=_('Do not embed images in output xml.'), ) return parser def replace_ext(path, ext): name = os.path.basename(path) root = os.path.splitext(name)[0] return root + ext @contextmanager def open_odtpkg(path): odtpkg = ODTPackage(path) with closing(odtpkg): yield odtpkg def wrap_for_xml(open_dest): from .utils import wrap_open_dest_for_tty from .utils import pager from .utils import syntaxhighlight from .utils import xmllint return wrap_open_dest_for_tty(open_dest, [ pager(), syntaxhighlight('application/xml'), xmllint(format=True), ]) ================================================ FILE: src/hwp5/hwp5proc.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from argparse import ArgumentParser import gettext import logging import os import sys from . import __version__ from .cli import init_logger from .dataio import ParseError from .errors import InvalidHwp5FileError PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) locale_dir = os.path.join(os.path.dirname(__file__), 'locale') locale_dir = os.path.abspath(locale_dir) t = gettext.translation('hwp5proc', locale_dir, fallback=True) if PY3: _ = t.gettext else: _ = t.ugettext program = 'hwp5proc (pyhwp) {version}'.format(version=__version__) copyright = 'Copyright (C) 2010-2023 mete0r ' license = _('''License AGPLv3+: GNU Affero GPL version 3 or any later . This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.''') disclosure = _('''Disclosure: This program has been developed in accordance with a public document named "HWP Binary Specification 1.1" published by Hancom Inc. .''') # noqa version = '''{program} {copyright} {license} {disclosure}'''.format( program=program, copyright=copyright, license=license, disclosure=disclosure, ) def main(): argparser = main_argparser() args = argparser.parse_args() init_logger(args) try: subcommand_fn = args.func except AttributeError: argparser.print_help() raise SystemExit(1) try: return subcommand_fn(args) except InvalidHwp5FileError as e: logger.error('%s', e) raise SystemExit(1) except ParseError as e: e.print_to_logger(logger) raise SystemExit(1) def main_argparser(): from .proc.version import version_argparser from .proc.header import header_argparser from .proc.summaryinfo import summaryinfo_argparser from .proc.ls import ls_argparser from .proc.cat import cat_argparser from .proc.unpack import unpack_argparser from .proc.records import records_argparser from .proc.models import models_argparser from .proc.find import find_argparser from .proc.xml import xml_argparser from .proc.rawunz import rawunz_argparser from .proc.diststream import diststream_argparser parser = ArgumentParser( prog='hwp5proc', description=_('Do various operations on HWPv5 files.'), ) parser.add_argument( '--loglevel', help=_('Set log level.'), ) parser.add_argument( '--logfile', help=_('Set log file.'), ) subcommands = parser.add_subparsers( title=_('subcommands'), description=_('valid subcommands'), ) version_argparser(subcommands, _) header_argparser(subcommands, _) summaryinfo_argparser(subcommands, _) ls_argparser(subcommands, _) cat_argparser(subcommands, _) unpack_argparser(subcommands, _) records_argparser(subcommands, _) models_argparser(subcommands, _) find_argparser(subcommands, _) xml_argparser(subcommands, _) rawunz_argparser(subcommands, _) diststream_argparser(subcommands, _) return parser ================================================ FILE: src/hwp5/hwp5txt.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from argparse import ArgumentParser from contextlib import closing import gettext import logging import os.path import sys from . import __version__ as version from .cli import init_logger from .dataio import ParseError from .errors import InvalidHwp5FileError from .utils import make_open_dest_file from .utils import cached_property from .transforms import BaseTransform from .xmlmodel import Hwp5File PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) locale_dir = os.path.join(os.path.dirname(__file__), 'locale') locale_dir = os.path.abspath(locale_dir) t = gettext.translation('hwp5txt', locale_dir, fallback=True) if PY3: _ = t.gettext else: _ = t.ugettext RESOURCE_PATH_XSL_TEXT = 'xsl/plaintext.xsl' class TextTransform(BaseTransform): @property def transform_hwp5_to_text(self): transform_xhwp5 = self.transform_xhwp5_to_text return self.make_transform_hwp5(transform_xhwp5) @cached_property def transform_xhwp5_to_text(self): ''' >>> T.transform_xhwp5_to_css('hwp5.xml', 'styles.css') ''' resource_path = RESOURCE_PATH_XSL_TEXT return self.make_xsl_transform(resource_path) def main(): argparser = main_argparser() args = argparser.parse_args() init_logger(args) hwp5path = args.hwp5file text_transform = TextTransform() open_dest = make_open_dest_file(args.output) transform = text_transform.transform_hwp5_to_text try: with closing(Hwp5File(hwp5path)) as hwp5file: with open_dest() as dest: transform(hwp5file, dest) except ParseError as e: e.print_to_logger(logger) except InvalidHwp5FileError as e: logger.error('%s', e) sys.exit(1) def main_argparser(): parser = ArgumentParser( prog='hwp5txt', description=_('HWPv5 to txt converter'), ) parser.add_argument( '--version', action='version', version='%(prog)s {}'.format(version) ) parser.add_argument( '--loglevel', help=_('Set log level.'), ) parser.add_argument( '--logfile', help=_('Set log file.'), ) parser.add_argument( '--output', help=_('Output file'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to convert'), ) return parser ================================================ FILE: src/hwp5/hwp5view.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # '''HWP5 viewer (Experimental, gtk only) Usage:: hwp5view [options] hwp5view -h | --help hwp5view --version Options:: -h --help Show this screen --version Show version --loglevel= Set log level. --logfile= Set log file. ''' from __future__ import absolute_import from __future__ import unicode_literals from __future__ import print_function from argparse import ArgumentParser from contextlib import closing from contextlib import contextmanager from tempfile import mkdtemp import gettext import io import logging import os.path import shutil import sys import urllib from . import __version__ as version from .cli import init_logger from .xmlmodel import Hwp5File from .hwp5html import HTMLTransform PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) locale_dir = os.path.join(os.path.dirname(__file__), 'locale') locale_dir = os.path.abspath(locale_dir) t = gettext.translation('hwp5view', locale_dir, fallback=True) if PY3: _ = t.gettext else: _ = t.ugettext def main(): argparser = main_argparser() args = argparser.parse_args() init_logger(args) runner = runner_factory() with make_temporary_directory() as out_dir: with hwp5html(args.hwp5file, out_dir) as index_path: runner(args, index_path, out_dir) def main_argparser(): parser = ArgumentParser( prog='hwp5view', description=_( 'HWPv5 viewer (Experimental, gtk only)' ) ) parser.add_argument( '--version', action='version', version='%(prog)s {}'.format(version) ) parser.add_argument( '--loglevel', help=_('Set log level.'), ) parser.add_argument( '--logfile', help=_('Set log file.'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to view'), ) return parser def runner_factory(): try: return runner_factory_gi() except ImportError: pass try: return runner_factory_pyside() except ImportError: pass raise NotImplementedError( 'Neither gi.repository.WebKit nor pyside is found' ) def runner_factory_gi(): from gi.repository import Gtk from gi.repository import WebKit def runner(args, index_path, out_dir): base_uri = fspath2url(out_dir) + '/' # index_uri = fspath2url(index_path) with io.open(index_path, 'rb') as f: content = f.read() view = WebKit.WebView() # view.load_uri(index_uri) view.load_string(content, 'text/html', 'utf-8', base_uri) def on_load(webview, webframe): script = ('window.location.href = "dimension:" ' '+ document.body.scrollWidth + "x"' '+ document.body.scrollHeight') webview.execute_script(script) MIN_WIDTH = 300 MIN_HEIGHT = 400 MAX_WIDTH = 1024 MAX_HEIGHT = 800 view.connect('load-finished', on_load) def on_navigation_requested(webview, frame, req, data=None): uri = req.get_uri() scheme, path = uri.split(':', 1) if scheme == 'dimension': width, height = path.split('x', 1) width = int(width) height = int(height) width = min(width, MAX_WIDTH) height = min(height, MAX_HEIGHT) width = max(width, MIN_WIDTH) height = max(height, MIN_HEIGHT) window.resize(width + 4, height) return True return False view.connect('navigation-requested', on_navigation_requested) scrolled_window = Gtk.ScrolledWindow() scrolled_window.add(view) vbox = Gtk.VBox() vbox.pack_start(scrolled_window, expand=True, fill=True, padding=0) window = Gtk.Window() window.add(vbox) window.connect('delete-event', Gtk.main_quit) window.set_default_size(600, 800) window.show_all() Gtk.main() return runner def runner_factory_pyside(): from PySide.QtCore import QUrl from PySide.QtGui import QApplication from PySide.QtGui import QMainWindow from PySide.QtWebKit import QWebView class MainWindow(QMainWindow): pass def runner(args, index_path, out_dir): app = QApplication(sys.argv) frame = MainWindow() frame.setWindowTitle('hwp5view') frame.setMinimumWidth(400) url = fspath2url(index_path) url = QUrl(url) view = QWebView(frame) logger.info('Loading...') view.load(url) @view.loadFinished.connect def onLoadFinished(): frame.show() frame.setCentralWidget(view) app.exec_() return runner @contextmanager def make_temporary_directory(*args, **kwargs): path = mkdtemp(*args, **kwargs) try: logger.warning('temporary directory for contents: %s', path) yield path finally: shutil.rmtree(path) @contextmanager def hwp5html(filename, out_dir): with closing(Hwp5File(filename)) as hwp5file: HTMLTransform().transform_hwp5_to_dir(hwp5file, out_dir) yield os.path.join(out_dir, 'index.xhtml') def fspath2url(path): path = os.path.abspath(path) return 'file://' + urllib.pathname2url(path) ================================================ FILE: src/hwp5/importhelper.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import os.path def pkg_resources_filename(pkg_name, path): ''' the equivalent of pkg_resources.resource_filename() ''' try: import pkg_resources except ImportError: return pkg_resources_filename_fallback(pkg_name, path) else: return pkg_resources.resource_filename(pkg_name, path) def pkg_resources_filename_fallback(pkg_name, path): ''' a fallback implementation of pkg_resources_filename() ''' pkg_module = __import__(pkg_name) pkg_name = pkg_name.split('.') for x in pkg_name[1:]: pkg_module = getattr(pkg_module, x) pkg_dir = os.path.dirname(pkg_module.__file__) return os.path.join(pkg_dir, path) ================================================ FILE: src/hwp5/locale/hwp5html.pot ================================================ # Translations template for pyhwp. # Copyright (C) 2019 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b13.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5html.py:163 msgid "HWPv5 to HTML converter" msgstr "" #: pyhwp/hwp5/hwp5html.py:172 msgid "Set log level." msgstr "" #: pyhwp/hwp5/hwp5html.py:176 msgid "Set log file." msgstr "" #: pyhwp/hwp5/hwp5html.py:180 msgid "Output file" msgstr "" #: pyhwp/hwp5/hwp5html.py:185 msgid ".hwp file to convert" msgstr "" #: pyhwp/hwp5/hwp5html.py:191 msgid "Generate CSS" msgstr "" #: pyhwp/hwp5/hwp5html.py:196 msgid "Generate HTML" msgstr "" ================================================ FILE: src/hwp5/locale/hwp5odt.pot ================================================ # Translations template for pyhwp. # Copyright (C) 2019 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b13.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5odt.py:376 msgid "HWPv5 to odt converter" msgstr "" #: pyhwp/hwp5/hwp5odt.py:385 msgid "Set log level." msgstr "" #: pyhwp/hwp5/hwp5odt.py:389 msgid "Set log file." msgstr "" #: pyhwp/hwp5/hwp5odt.py:393 msgid "Output file" msgstr "" #: pyhwp/hwp5/hwp5odt.py:398 msgid ".hwp file to convert" msgstr "" #: pyhwp/hwp5/hwp5odt.py:404 msgid "Generate styles.xml" msgstr "" #: pyhwp/hwp5/hwp5odt.py:409 msgid "Generate content.xml" msgstr "" #: pyhwp/hwp5/hwp5odt.py:414 msgid "Generate .fodt" msgstr "" #: pyhwp/hwp5/hwp5odt.py:420 msgid "Embed images in output xml." msgstr "" #: pyhwp/hwp5/hwp5odt.py:425 msgid "Do not embed images in output xml." msgstr "" ================================================ FILE: src/hwp5/locale/hwp5proc.pot ================================================ # Translations template for pyhwp. # Copyright (C) 2019 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b13.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/proc/__init__.py:75 msgid "" "License AGPLv3+: GNU Affero GPL version 3 or any later\n" ".\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law." msgstr "" #: pyhwp/hwp5/proc/__init__.py:80 msgid "" "Disclosure: This program has been developed in accordance with a public\n" "document named \"HWP Binary Specification 1.1\" published by Hancom Inc.\n" "." msgstr "" #: pyhwp/hwp5/proc/__init__.py:127 msgid "Do various operations on HWPv5 files." msgstr "" #: pyhwp/hwp5/proc/__init__.py:131 msgid "Set log level." msgstr "" #: pyhwp/hwp5/proc/__init__.py:135 msgid "Set log file." msgstr "" #: pyhwp/hwp5/proc/__init__.py:138 msgid "subcommands" msgstr "" #: pyhwp/hwp5/proc/__init__.py:139 msgid "valid subcommands" msgstr "" #: pyhwp/hwp5/proc/cat.py:55 msgid "Extract out internal streams of .hwp files" msgstr "" #: pyhwp/hwp5/proc/cat.py:58 msgid "Extract out the specified stream in the to the standard output." msgstr "" #: pyhwp/hwp5/proc/cat.py:66 pyhwp/hwp5/proc/header.py:53 #: pyhwp/hwp5/proc/ls.py:107 pyhwp/hwp5/proc/models.py:91 #: pyhwp/hwp5/proc/records.py:99 pyhwp/hwp5/proc/summaryinfo.py:61 #: pyhwp/hwp5/proc/unpack.py:54 pyhwp/hwp5/proc/version.py:45 #: pyhwp/hwp5/proc/xml.py:91 msgid ".hwp file to analyze" msgstr "" #: pyhwp/hwp5/proc/cat.py:71 msgid "Internal path of a stream to extract" msgstr "" #: pyhwp/hwp5/proc/cat.py:77 pyhwp/hwp5/proc/ls.py:113 #: pyhwp/hwp5/proc/unpack.py:66 msgid "Process with virtual streams (i.e. parsed/converted form of real streams)" msgstr "" #: pyhwp/hwp5/proc/cat.py:85 pyhwp/hwp5/proc/ls.py:121 #: pyhwp/hwp5/proc/unpack.py:74 msgid "" "Treat as an OLE Compound File. As a result, some streams will " "be presented as-is. (i.e. not decompressed)" msgstr "" #: pyhwp/hwp5/proc/diststream.py:93 pyhwp/hwp5/proc/diststream.py:96 msgid "Decode a distribute document stream." msgstr "" #: pyhwp/hwp5/proc/diststream.py:104 msgid "Print SHA-1 value for decryption." msgstr "" #: pyhwp/hwp5/proc/diststream.py:109 msgid "Print decrypted key." msgstr "" #: pyhwp/hwp5/proc/diststream.py:114 msgid "Print raw binary objects as is." msgstr "" #: pyhwp/hwp5/proc/find.py:107 pyhwp/hwp5/proc/find.py:110 msgid "Find record models with specified predicates." msgstr "" #: pyhwp/hwp5/proc/find.py:118 msgid ".hwp files to analyze" msgstr "" #: pyhwp/hwp5/proc/find.py:123 msgid "get filenames from stdin" msgstr "" #: pyhwp/hwp5/proc/find.py:129 msgid "filter with record model name" msgstr "" #: pyhwp/hwp5/proc/find.py:136 msgid "filter with record HWPTAG" msgstr "" #: pyhwp/hwp5/proc/find.py:143 msgid "filter with incompletely parsed content" msgstr "" #: pyhwp/hwp5/proc/find.py:148 msgid "record output format" msgstr "" #: pyhwp/hwp5/proc/find.py:155 msgid "dump record" msgstr "" #: pyhwp/hwp5/proc/header.py:47 msgid "Print file headers of .hwp files." msgstr "" #: pyhwp/hwp5/proc/header.py:48 msgid "Print the file header of ." msgstr "" #: pyhwp/hwp5/proc/ls.py:101 msgid "List streams in .hwp files." msgstr "" #: pyhwp/hwp5/proc/ls.py:102 msgid "List streams in the ." msgstr "" #: pyhwp/hwp5/proc/models.py:80 msgid "Print parsed binary models of .hwp file record streams." msgstr "" #: pyhwp/hwp5/proc/models.py:83 msgid "Print parsed binary models in the specified ." msgstr "" #: pyhwp/hwp5/proc/models.py:97 pyhwp/hwp5/proc/records.py:105 msgid "" "Record-structured internal streams.\n" "(e.g. DocInfo, BodyText/*)\n" msgstr "" #: pyhwp/hwp5/proc/models.py:106 msgid "Specifies HWPv5 file format version of the standard input stream" msgstr "" #: pyhwp/hwp5/proc/models.py:114 pyhwp/hwp5/proc/records.py:114 msgid "Print records as simple tree" msgstr "" #: pyhwp/hwp5/proc/models.py:121 pyhwp/hwp5/proc/records.py:121 msgid "Print records as json" msgstr "" #: pyhwp/hwp5/proc/models.py:128 msgid "Print records formatted" msgstr "" #: pyhwp/hwp5/proc/models.py:135 msgid "Print records as events" msgstr "" #: pyhwp/hwp5/proc/models.py:143 pyhwp/hwp5/proc/records.py:159 msgid "Specifies the N-th subtree of the record structure." msgstr "" #: pyhwp/hwp5/proc/models.py:150 msgid "Print a model of -th record" msgstr "" #: pyhwp/hwp5/proc/rawunz.py:46 pyhwp/hwp5/proc/rawunz.py:49 msgid "Deflate an headerless zlib-compressed stream" msgstr "" #: pyhwp/hwp5/proc/records.py:88 msgid "Print the record structure of .hwp file record streams." msgstr "" #: pyhwp/hwp5/proc/records.py:91 msgid "Print the record structure of the specified stream." msgstr "" #: pyhwp/hwp5/proc/records.py:128 msgid "Print records as is" msgstr "" #: pyhwp/hwp5/proc/records.py:135 msgid "Print record headers as is" msgstr "" #: pyhwp/hwp5/proc/records.py:142 msgid "Print record payloads as is" msgstr "" #: pyhwp/hwp5/proc/records.py:150 msgid "" "Specifies the range of the records.\n" "N-M means \"from the record N to M-1 (excluding M)\"\n" "N means just the record N\n" msgstr "" #: pyhwp/hwp5/proc/summaryinfo.py:51 msgid "Print summary informations of .hwp files." msgstr "" #: pyhwp/hwp5/proc/summaryinfo.py:54 msgid "Print the summary information of ." msgstr "" #: pyhwp/hwp5/proc/unpack.py:43 msgid "Extract out internal streams of .hwp files into a directory." msgstr "" #: pyhwp/hwp5/proc/unpack.py:46 msgid "Extract out streams in the specified to a directory." msgstr "" #: pyhwp/hwp5/proc/unpack.py:60 msgid "Output directory" msgstr "" #: pyhwp/hwp5/proc/version.py:35 msgid "Print the file format version of .hwp files." msgstr "" #: pyhwp/hwp5/proc/version.py:38 msgid "Print the file format version of ." msgstr "" #: pyhwp/hwp5/proc/xml.py:81 msgid "Transform .hwp files into an XML." msgstr "" #: pyhwp/hwp5/proc/xml.py:84 msgid "Transform into an XML." msgstr "" #: pyhwp/hwp5/proc/xml.py:96 msgid "Embed BinData/* streams in the output XML." msgstr "" #: pyhwp/hwp5/proc/xml.py:101 msgid "Do not output XML declaration." msgstr "" #: pyhwp/hwp5/proc/xml.py:106 msgid "Output filename." msgstr "" #: pyhwp/hwp5/proc/xml.py:111 msgid "\"flat\", \"nested\" (default: \"nested\")" msgstr "" #: pyhwp/hwp5/proc/xml.py:116 msgid "Do not validate well-formedness of output." msgstr "" ================================================ FILE: src/hwp5/locale/hwp5txt.pot ================================================ # Translations template for pyhwp. # Copyright (C) 2019 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b13.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5txt.py:95 msgid "HWPv5 to txt converter" msgstr "" #: pyhwp/hwp5/hwp5txt.py:104 msgid "Set log level." msgstr "" #: pyhwp/hwp5/hwp5txt.py:108 msgid "Set log file." msgstr "" #: pyhwp/hwp5/hwp5txt.py:112 msgid "Output file" msgstr "" #: pyhwp/hwp5/hwp5txt.py:117 msgid ".hwp file to convert" msgstr "" ================================================ FILE: src/hwp5/locale/hwp5view.pot ================================================ # Translations template for pyhwp. # Copyright (C) 2019 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b13.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5view.py:81 msgid "HWPv5 viewer (Experimental, gtk only)" msgstr "" #: pyhwp/hwp5/hwp5view.py:92 msgid "Set log level." msgstr "" #: pyhwp/hwp5/hwp5view.py:96 msgid "Set log file." msgstr "" #: pyhwp/hwp5/hwp5view.py:101 msgid ".hwp file to view" msgstr "" ================================================ FILE: src/hwp5/locale/ko/LC_MESSAGES/hwp5html.po ================================================ # Korean translations for pyhwp. # Copyright (C) 2017 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2017. # msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b9.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: 2017-10-09 00:54+0900\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5html.py:163 msgid "HWPv5 to HTML converter" msgstr "HWPv5 HTML 변환기" #: pyhwp/hwp5/hwp5html.py:172 msgid "Set log level." msgstr "로그 수준 지정" #: pyhwp/hwp5/hwp5html.py:176 msgid "Set log file." msgstr "로그 파일 지정" #: pyhwp/hwp5/hwp5html.py:180 msgid "Output file" msgstr "출력 파일" #: pyhwp/hwp5/hwp5html.py:185 msgid ".hwp file to convert" msgstr "변환할 .hwp 파일" #: pyhwp/hwp5/hwp5html.py:191 msgid "Generate CSS" msgstr "CSS 생성" #: pyhwp/hwp5/hwp5html.py:196 msgid "Generate HTML" msgstr "HTML 생성" ================================================ FILE: src/hwp5/locale/ko/LC_MESSAGES/hwp5odt.po ================================================ # Korean translations for pyhwp. # Copyright (C) 2017 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2017. # msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b9.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: 2017-10-09 00:54+0900\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5odt.py:376 msgid "HWPv5 to odt converter" msgstr "HWPv5 ODT 변환기" #: pyhwp/hwp5/hwp5odt.py:385 msgid "Set log level." msgstr "로그 수준 지정" #: pyhwp/hwp5/hwp5odt.py:389 msgid "Set log file." msgstr "로그 파일 지정" #: pyhwp/hwp5/hwp5odt.py:393 msgid "Output file" msgstr "출력 파일" #: pyhwp/hwp5/hwp5odt.py:398 msgid ".hwp file to convert" msgstr "변환할 .hwp 파일" #: pyhwp/hwp5/hwp5odt.py:404 msgid "Generate styles.xml" msgstr "styles.xml 생성" #: pyhwp/hwp5/hwp5odt.py:409 msgid "Generate content.xml" msgstr "content.xml 생성" #: pyhwp/hwp5/hwp5odt.py:414 msgid "Generate .fodt" msgstr ".fodt 생성" #: pyhwp/hwp5/hwp5odt.py:420 msgid "Embed images in output xml." msgstr "화상을 출력 xml에 내장" #: pyhwp/hwp5/hwp5odt.py:425 msgid "Do not embed images in output xml." msgstr "화상을 출력 xml에 내장하지 않음" ================================================ FILE: src/hwp5/locale/ko/LC_MESSAGES/hwp5proc.po ================================================ # Korean translations for pyhwp. # pyhwp 한국/조선어 번역 # Copyright (C) 2017 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # mete0r , 2017. # msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b9.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: 2017-10-09 00:41+0900\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/proc/__init__.py:75 msgid "" "License AGPLv3+: GNU Affero GPL version 3 or any later\n" ".\n" "This is free software: you are free to change and redistribute it.\n" "There is NO WARRANTY, to the extent permitted by law." msgstr "" "AGPLv3+ 사용허락조건: GNU Affero GPL version 3 혹은 그 이후 판본에 의거하여\n" "이 프로그램의 사용을 허락합니다.\n" ".\n" "이 프로그램은 자유 소프트웨어입니다: 자유롭게 변경하고 재배포할 수 있습니다.\n" "또한 이 프로그램은 아무런 보증 없이 제공됩니다. 이 프로그램을 사용하여\n" "발생한 결과에 대해 저자는 법률이 정한 바 외에는 아무런 책임을 지지 않습니다." #: pyhwp/hwp5/proc/__init__.py:80 msgid "" "Disclosure: This program has been developed in accordance with a public\n" "document named \"HWP Binary Specification 1.1\" published by Hancom Inc.\n" "." msgstr "" "공개: 본 제품은 한글과컴퓨터의 한글 문서 파일(.hwp) 공개 문서를\n" "참고하여 개발하였습니다.\n" "." #: pyhwp/hwp5/proc/__init__.py:127 msgid "Do various operations on HWPv5 files." msgstr "HWPv5 파일로 작업 수행" #: pyhwp/hwp5/proc/__init__.py:131 msgid "Set log level." msgstr "로그 수준 지정" #: pyhwp/hwp5/proc/__init__.py:135 msgid "Set log file." msgstr "로그 파일 지정" #: pyhwp/hwp5/proc/__init__.py:138 msgid "subcommands" msgstr "하위 명령" #: pyhwp/hwp5/proc/__init__.py:139 msgid "valid subcommands" msgstr "유효한 하위 명령" #: pyhwp/hwp5/proc/cat.py:55 msgid "Extract out internal streams of .hwp files" msgstr ".hwp 파일의 내부 스트림을 출력합니다." #: pyhwp/hwp5/proc/cat.py:58 msgid "Extract out the specified stream in the to the standard output." msgstr "의 지정된 스트림을 표준 출력으로 추출합니다." #: pyhwp/hwp5/proc/cat.py:66 pyhwp/hwp5/proc/header.py:53 #: pyhwp/hwp5/proc/ls.py:107 pyhwp/hwp5/proc/models.py:91 #: pyhwp/hwp5/proc/records.py:99 pyhwp/hwp5/proc/summaryinfo.py:61 #: pyhwp/hwp5/proc/unpack.py:54 pyhwp/hwp5/proc/version.py:45 #: pyhwp/hwp5/proc/xml.py:91 msgid ".hwp file to analyze" msgstr "분석할 .hwp 파일" #: pyhwp/hwp5/proc/cat.py:71 msgid "Internal path of a stream to extract" msgstr "추출할 스트림 내부 경로" #: pyhwp/hwp5/proc/cat.py:77 pyhwp/hwp5/proc/ls.py:113 #: pyhwp/hwp5/proc/unpack.py:66 msgid "Process with virtual streams (i.e. parsed/converted form of real streams)" msgstr "가상 스트림 처리 (실제 스트림의 파싱/변환 형)" #: pyhwp/hwp5/proc/cat.py:85 pyhwp/hwp5/proc/ls.py:121 #: pyhwp/hwp5/proc/unpack.py:74 msgid "" "Treat as an OLE Compound File. As a result, some streams will " "be presented as-is. (i.e. not decompressed)" msgstr "" "을 OLE Compound File로 취급합니다. 결과적으로 몇몇 스트림은 있는 그대로 나타납니다. 가령 압축해제" " 되지 않습니다." #: pyhwp/hwp5/proc/diststream.py:93 pyhwp/hwp5/proc/diststream.py:96 msgid "Decode a distribute document stream." msgstr "배포 문서 스트림을 디코드합니다." #: pyhwp/hwp5/proc/diststream.py:104 msgid "Print SHA-1 value for decryption." msgstr "복호화를 위한 SHA-1 값을 출력합니다." #: pyhwp/hwp5/proc/diststream.py:109 msgid "Print decrypted key." msgstr "복호화된 키를 출력합니다." #: pyhwp/hwp5/proc/diststream.py:114 msgid "Print raw binary objects as is." msgstr "바이너리 객체를 있는 그대로 출력합니다." #: pyhwp/hwp5/proc/find.py:107 pyhwp/hwp5/proc/find.py:110 msgid "Find record models with specified predicates." msgstr "지정한 조건으로 레코드 모형을 검색합니다." #: pyhwp/hwp5/proc/find.py:118 msgid ".hwp files to analyze" msgstr "분석할 .hwp 파일" #: pyhwp/hwp5/proc/find.py:123 msgid "get filenames from stdin" msgstr "표준 출력에서 파일 이름을 얻습니다." #: pyhwp/hwp5/proc/find.py:129 msgid "filter with record model name" msgstr "레코드 모형 이름으로 찾습니다." #: pyhwp/hwp5/proc/find.py:136 msgid "filter with record HWPTAG" msgstr "레코드 HWPTAG 값으로 찾습니다." #: pyhwp/hwp5/proc/find.py:143 msgid "filter with incompletely parsed content" msgstr "내용이 완전히 다 파싱되지 않은 레코드를 찾습니다." #: pyhwp/hwp5/proc/find.py:148 msgid "record output format" msgstr "레코드 출력 형식 지정" #: pyhwp/hwp5/proc/find.py:155 msgid "dump record" msgstr "레코드 덤프" #: pyhwp/hwp5/proc/header.py:47 msgid "Print file headers of .hwp files." msgstr ".hwp 파일의 헤더를 출력합니다." #: pyhwp/hwp5/proc/header.py:48 msgid "Print the file header of ." msgstr "의 파일 헤더를 출력합니다." #: pyhwp/hwp5/proc/ls.py:101 msgid "List streams in .hwp files." msgstr ".hwp 파일의 내부 스트림 목록을 출력합니다." #: pyhwp/hwp5/proc/ls.py:102 msgid "List streams in the ." msgstr "의 스트림 목록을 출력합니다." #: pyhwp/hwp5/proc/models.py:80 msgid "Print parsed binary models of .hwp file record streams." msgstr "지정한 .hwp 파일 레코드 스트림을 파싱한 레코드 모형을 출력합니다." #: pyhwp/hwp5/proc/models.py:83 msgid "Print parsed binary models in the specified ." msgstr "지정한 을 파싱한 레코드 모형을 출력합니다." #: pyhwp/hwp5/proc/models.py:97 pyhwp/hwp5/proc/records.py:105 msgid "" "Record-structured internal streams.\n" "(e.g. DocInfo, BodyText/*)\n" msgstr "" "레코드 구조를 갖는 내부 스트림.\n" "(예: DocInfo, BodyText/*)\n" #: pyhwp/hwp5/proc/models.py:106 msgid "Specifies HWPv5 file format version of the standard input stream" msgstr "표준 입력의 HWPv5 파일 포맷 버젼을 지정합니다." #: pyhwp/hwp5/proc/models.py:114 pyhwp/hwp5/proc/records.py:114 msgid "Print records as simple tree" msgstr "레코드열을 단순한 수형도樹形圖로 출력합니다." #: pyhwp/hwp5/proc/models.py:121 pyhwp/hwp5/proc/records.py:121 msgid "Print records as json" msgstr "레코드를 JSON 형식으로 출력합니다." #: pyhwp/hwp5/proc/models.py:128 msgid "Print records formatted" msgstr "레코드를 포맷팅하여 출력합니다." #: pyhwp/hwp5/proc/models.py:135 msgid "Print records as events" msgstr "레코드를 이벤트로 출력합니다." #: pyhwp/hwp5/proc/models.py:143 pyhwp/hwp5/proc/records.py:159 msgid "Specifies the N-th subtree of the record structure." msgstr "레코드 구조의 N번째 하위 트리를 지정합니다." #: pyhwp/hwp5/proc/models.py:150 msgid "Print a model of -th record" msgstr "번째 레코드의 모형을 출력합니다." #: pyhwp/hwp5/proc/rawunz.py:46 pyhwp/hwp5/proc/rawunz.py:49 msgid "Deflate an headerless zlib-compressed stream" msgstr "헤더 없는 zlib 압축 스트림을 복원합니다." #: pyhwp/hwp5/proc/records.py:88 msgid "Print the record structure of .hwp file record streams." msgstr ".hwp 파일 레코드 스트림의 레코드 구조를 출력합니다." #: pyhwp/hwp5/proc/records.py:91 msgid "Print the record structure of the specified stream." msgstr "지정한 스트림의 레코드 구조를 출력합니다." #: pyhwp/hwp5/proc/records.py:128 msgid "Print records as is" msgstr "레코드를 있는 그대로 출력합니다." #: pyhwp/hwp5/proc/records.py:135 msgid "Print record headers as is" msgstr "레코드 헤더를 있는 그대로 출력합니다." #: pyhwp/hwp5/proc/records.py:142 msgid "Print record payloads as is" msgstr "레코드 페이로드를 있는 그대로 출력합니다." #: pyhwp/hwp5/proc/records.py:150 msgid "" "Specifies the range of the records.\n" "N-M means \"from the record N to M-1 (excluding M)\"\n" "N means just the record N\n" msgstr "" "레코드의 범위를 지정합니다.\n" "N-M은 \"N번째 레코드로부터 M-1번째 레코드까지를 뜻합니다(M번째 레코드 제외)\"\n" "N은 N번째 레코드를 뜻합니다.\n" #: pyhwp/hwp5/proc/summaryinfo.py:51 msgid "Print summary informations of .hwp files." msgstr ".hwp 파일의 요약 정보를 출력합니다." #: pyhwp/hwp5/proc/summaryinfo.py:54 msgid "Print the summary information of ." msgstr "의 요약 정보를 출력합니다." #: pyhwp/hwp5/proc/unpack.py:43 msgid "Extract out internal streams of .hwp files into a directory." msgstr ".hwp 파일의 내부 스트림들을 디렉토리에 추출합니다." #: pyhwp/hwp5/proc/unpack.py:46 msgid "Extract out streams in the specified to a directory." msgstr "지정한 의 내부 스트림들을 디렉토리에 추출합니다." #: pyhwp/hwp5/proc/unpack.py:60 msgid "Output directory" msgstr "출력 디렉토리" #: pyhwp/hwp5/proc/version.py:35 msgid "Print the file format version of .hwp files." msgstr ".hwp 파일의 형식 판본을 출력합니다." #: pyhwp/hwp5/proc/version.py:38 msgid "Print the file format version of ." msgstr "의 파일 형식 판본을 출력합니다." #: pyhwp/hwp5/proc/xml.py:81 msgid "Transform .hwp files into an XML." msgstr ".hwp 파일을 XML로 변환합니다." #: pyhwp/hwp5/proc/xml.py:84 msgid "Transform into an XML." msgstr "을 XML로 변환합니다." #: pyhwp/hwp5/proc/xml.py:96 msgid "Embed BinData/* streams in the output XML." msgstr "BinData/* 스트림을 출력 XML에 내장합니다." #: pyhwp/hwp5/proc/xml.py:101 msgid "Do not output XML declaration." msgstr " XML 선언을 출력하지 않습니다." #: pyhwp/hwp5/proc/xml.py:106 msgid "Output filename." msgstr "출력 파일이름" #: pyhwp/hwp5/proc/xml.py:111 msgid "\"flat\", \"nested\" (default: \"nested\")" msgstr "\"flat\", \"nested\" (기본값: \"nested\")" #: pyhwp/hwp5/proc/xml.py:116 msgid "Do not validate well-formedness of output." msgstr "출력의 well-formed 여부를 검증하지 않습니다." #~ msgid "Print HWP file header." #~ msgstr "HWP 파일 헤더를 출력합니다." ================================================ FILE: src/hwp5/locale/ko/LC_MESSAGES/hwp5txt.po ================================================ # Korean translations for pyhwp. # Copyright (C) 2017 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2017. # msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b9.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: 2017-10-09 00:54+0900\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5txt.py:95 msgid "HWPv5 to txt converter" msgstr "HWPv5 txt 변환기" #: pyhwp/hwp5/hwp5txt.py:104 msgid "Set log level." msgstr "로그 수준 지정" #: pyhwp/hwp5/hwp5txt.py:108 msgid "Set log file." msgstr "로그 파일 지정" #: pyhwp/hwp5/hwp5txt.py:112 msgid "Output file" msgstr "출력 파일" #: pyhwp/hwp5/hwp5txt.py:117 msgid ".hwp file to convert" msgstr "변환할 .hwp 파일" ================================================ FILE: src/hwp5/locale/ko/LC_MESSAGES/hwp5view.po ================================================ # Korean translations for pyhwp. # Copyright (C) 2017 https://github.com/mete0r # This file is distributed under the same license as the pyhwp project. # FIRST AUTHOR , 2017. # msgid "" msgstr "" "Project-Id-Version: pyhwp 0.1b9.dev0\n" "Report-Msgid-Bugs-To: https://github.com/mete0r\n" "POT-Creation-Date: 2019-04-10 22:55+0900\n" "PO-Revision-Date: 2017-10-09 02:08+0900\n" "Last-Translator: FULL NAME \n" "Language: ko\n" "Language-Team: ko \n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.5.0\n" #: pyhwp/hwp5/hwp5view.py:81 msgid "HWPv5 viewer (Experimental, gtk only)" msgstr "HWPv5 뷰어 (실험적, GTK만 지원)" #: pyhwp/hwp5/hwp5view.py:92 msgid "Set log level." msgstr "로그 수준 지정" #: pyhwp/hwp5/hwp5view.py:96 msgid "Set log file." msgstr "로그 파일 지정" #: pyhwp/hwp5/hwp5view.py:101 msgid ".hwp file to view" msgstr "표시할 .hwp 파일" ================================================ FILE: src/hwp5/msoleprops.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from collections import namedtuple from datetime import datetime from datetime import timedelta from uuid import UUID import logging import struct from hwp5.dataio import Struct from hwp5.dataio import Flags from hwp5.dataio import N_ARRAY from hwp5.dataio import ARRAY from hwp5.dataio import BYTE from hwp5.dataio import UINT16 from hwp5.dataio import UINT32 from hwp5.dataio import INT32 from hwp5.bintype import read_type logger = logging.getLogger(__name__) vt_types = dict() def PropertyType(code): def decorator(cls): cls.code = code vt_types[code] = cls return cls return decorator @PropertyType(code=0x0003) class VT_I4(object): @classmethod def read_value(cls, context, f): return read_type(INT32, context, f) @PropertyType(code=0x001F) class VT_LPWSTR(object): @classmethod def read_value(cls, context, f): length = read_type(UINT32, context, f) data = f.read(length * 2) return data.decode('utf-16le')[:-1] # remove null character @PropertyType(code=0x0040) class VT_FILETIME(object): @classmethod def read_value(cls, context, f): lword = read_type(UINT32, context, f) hword = read_type(UINT32, context, f) value = hword << 32 | lword value = FILETIME(value) return value class FILETIME(object): __slots__ = ('value', ) def __init__(self, value): self.value = value def __str__(self): return str(self.datetime) @property def datetime(self): return ( datetime(1601, 1, 1, 0, 0, 0) + timedelta(microseconds=self.value / 10) ) PropertyIdentifier = namedtuple('PropertyIdentifier', [ 'id', 'label', ]) PID_DICTIONARY = PropertyIdentifier( id=0x00000000, label='PID_DICTIONARY', ) PID_CODEPAGE = PropertyIdentifier( id=0x00000001, label='PID_CODEPAGE', ) PID_LOCALE = PropertyIdentifier( id=0x80000000, label='PID_LOCALE', ) PID_BEHAVIOR = PropertyIdentifier( id=0x80000003, label='PID_BEHAVIOR', ) PIDSI_TITLE = PropertyIdentifier( id=0x02, label='PIDSI_TITLE' ) PIDSI_SUBJECT = PropertyIdentifier( id=0x03, label='PIDSI_SUBJECT' ) PIDSI_AUTHOR = PropertyIdentifier( id=0x04, label='PIDSI_AUTHOR' ) PIDSI_KEYWORDS = PropertyIdentifier( id=0x05, label='PIDSI_KEYWORDS' ) PIDSI_COMMENTS = PropertyIdentifier( id=0x06, label='PIDSI_COMMENTS' ) PIDSI_TEMPLATE = PropertyIdentifier( id=0x07, label='PIDSI_TEMPLATE' ) PIDSI_LASTAUTHOR = PropertyIdentifier( id=0x08, label='PIDSI_LASTAUTHOR' ) PIDSI_REVNUMBER = PropertyIdentifier( id=0x09, label='PIDSI_REVNUMBER' ) PIDSI_EDITTIME = PropertyIdentifier( id=0x0a, label='PIDSI_EDITTIME' ) PIDSI_LASTPRINTED = PropertyIdentifier( id=0x0b, label='PIDSI_LASTPRINTED' ) PIDSI_CREATE_DTM = PropertyIdentifier( id=0x0c, label='PIDSI_CREATE_DTM' ) PIDSI_LASTSAVE_DTM = PropertyIdentifier( id=0x0d, label='PIDSI_LASTSAVE_DTM' ) PIDSI_PAGECOUNT = PropertyIdentifier( id=0x0e, label='PIDSI_PAGECOUNT' ) PIDSI_WORDCOUNT = PropertyIdentifier( id=0x0f, label='PIDSI_WORDCOUNT' ) PIDSI_CHARCOUNT = PropertyIdentifier( id=0x10, label='PIDSI_CHARCOUNT' ) PIDSI_THUMBNAIL = PropertyIdentifier( id=0x11, label='PIDSI_THUMBNAIL' ) PIDSI_APPNAME = PropertyIdentifier( id=0x12, label='PIDSI_APPNAME' ) PIDSI_SECURITY = PropertyIdentifier( id=0x13, label='PIDSI_SECURITY' ) RESERVED_PROPERTIES = ( PID_DICTIONARY, PID_CODEPAGE, PID_LOCALE, PID_BEHAVIOR, ) SUMMARY_INFORMATION_PROPERTIES = ( PIDSI_TITLE, PIDSI_SUBJECT, PIDSI_AUTHOR, PIDSI_KEYWORDS, PIDSI_COMMENTS, PIDSI_TEMPLATE, PIDSI_LASTAUTHOR, PIDSI_REVNUMBER, PIDSI_EDITTIME, PIDSI_LASTPRINTED, PIDSI_CREATE_DTM, PIDSI_LASTSAVE_DTM, PIDSI_PAGECOUNT, PIDSI_WORDCOUNT, PIDSI_CHARCOUNT, PIDSI_THUMBNAIL, PIDSI_APPNAME, PIDSI_SECURITY, ) class Property(object): def __init__(self, desc, idLabel, type, value): self.desc = desc self.idLabel = idLabel self.type = type self.value = value @property def id(self): return self.desc.id class PropertyDesc(Struct): def __init__(self, id, offset): self.id = id self.offset = offset @classmethod def fromDict(cls, d): return cls(id=d['id'], offset=d['offset']) def attributes(): yield UINT32, 'id' yield UINT32, 'offset' # offset from section start attributes = staticmethod(attributes) class PropertyReader(object): def __init__(self, propsetDesc, propDesc, idLabel, codepage, displayName=None): self.propsetDesc = propsetDesc self.propDesc = propDesc self.idLabel = idLabel self.codepage = codepage self.displayName = displayName def read(self, f): f.seek(self.propsetDesc.offset + self.propDesc.offset) context = {} propType = read_type(TypedPropertyValue, context, f) propType = TypedPropertyValue.fromDict(propType) vt_type = vt_types[propType.code] propValue = vt_type.read_value(context, f) return Property( desc=self.propDesc, idLabel=self.idLabel, type=propType, value=propValue, ) class TypedPropertyValue(Struct): ''' [MS-OLEPS] 2.15 TypedPropertyValue ''' def __init__(self, code): self.code = code @classmethod def fromDict(cls, d): return cls(code=d['type'].code) TypeFlags = Flags(UINT32, 0, 16, 'code') def attributes(cls): yield cls.TypeFlags, 'type' attributes = classmethod(attributes) @property def vt_type(self): try: return vt_types[self.code] except KeyError: return None class DictionaryEntry(Struct): ''' [MS-OLEPS] 2.16 DictionaryEntry ''' def __init__(self, id, name): self.id = id self.name = name @classmethod def fromDict(cls, d): return cls( id=d['id'], name=nullterminated_string(d['name']), ) def attributes(): from hwp5.dataio import N_ARRAY from hwp5.dataio import BYTE yield UINT32, 'id' yield N_ARRAY(UINT32, BYTE), 'name' attributes = staticmethod(attributes) class Dictionary(Struct): ''' [MS-OLEPS] 2.17 Dictionary ''' def __init__(self, entries): self.entries = entries @classmethod def fromDict(cls, d): entries = tuple( DictionaryEntry.fromDict(entry) for entry in d['entries'] ) return cls(entries=entries) def attributes(): from hwp5.dataio import N_ARRAY yield N_ARRAY(UINT32, DictionaryEntry), 'entries' attributes = staticmethod(attributes) def get(self, id, defvalue=None): for entry in self.entries: if id == entry.id: return entry.name return defvalue class DictionaryReader(object): def __init__(self, propsetDesc, propDesc, idLabel, codepage): self.propsetDesc = propsetDesc self.propDesc = propDesc self.idLabel = idLabel self.codepage = codepage def read(self, f): propsetDesc = self.propsetDesc propDesc = self.propDesc idLabel = self.idLabel f.seek(propsetDesc.offset + propDesc.offset) context = {} propType = None propValue = read_type(Dictionary, context, f) propValue = Dictionary.fromDict(propValue) return Property( desc=propDesc, idLabel=idLabel, type=propType, value=propValue, ) class PropertySet(object): ''' [MS-OLEPS] 2.20 PropertySet ''' def __init__(self, desc, header, properties): self.desc = desc self.header = header self.properties = properties @property def fmtid(self): return self.desc.fmtid def __getitem__(self, propertyIdentifier): for property in self.properties: if property.id == propertyIdentifier.id: return property.value raise KeyError(propertyIdentifier) class PropertySetHeader(Struct): def __init__(self, bytesize, propDescList): self.bytesize = bytesize, self.propDescList = propDescList @classmethod def fromDict(cls, d): return cls( bytesize=d['bytesize'], propDescList=tuple( PropertyDesc.fromDict( propDesc ) for propDesc in d['propDescList'] ), ) def attributes(): from hwp5.dataio import N_ARRAY yield UINT32, 'bytesize' yield N_ARRAY(UINT32, PropertyDesc), 'propDescList' attributes = staticmethod(attributes) class PropertySetDesc(Struct): def __init__(self, fmtid, offset): self.fmtid = fmtid self.offset = offset def attributes(): yield ARRAY(BYTE, 16), 'fmtid' yield UINT32, 'offset' attributes = staticmethod(attributes) @classmethod def fromDict(cls, d): return cls( fmtid=uuid_from_bytes_tuple(d['fmtid']), offset=d['offset'], ) class PropertySetStreamHeader(Struct): def __init__(self, byteOrder, version, systemIdentifier, clsid, propsetDescList): self.byteOrder = byteOrder self.version = version self.systemIdentifier = systemIdentifier self.clsid = clsid self.propsetDescList = propsetDescList @classmethod def fromDict(cls, d): return cls( byteOrder=d['byteOrder'], version=d['version'], systemIdentifier=d['systemIdentifier'], clsid=uuid_from_bytes_tuple(d['clsid']), propsetDescList=tuple( PropertySetDesc.fromDict( propsetDesc ) for propsetDesc in d['propsetDescList'] ) ) def attributes(): yield UINT16, 'byteOrder' yield UINT16, 'version' yield UINT32, 'systemIdentifier' yield ARRAY(BYTE, 16), 'clsid' yield N_ARRAY(UINT32, PropertySetDesc), 'propsetDescList' attributes = staticmethod(attributes) class PropertySetStream(object): ''' [MS-OLEPS] 2.21 PropertySetStream ''' def __init__(self, header, propertysets): self.header = header self.propertysets = propertysets @property def byteOrder(self): return self.header.byteOrder @property def version(self): return self.header.version @property def systemIdentifier(self): return self.header.systemIdentifier @property def clsid(self): return self.header.clsid class PropertySetFormat(object): def __init__(self, fmtid, propertyIdentifiers): self.fmtid = fmtid self.propertyIdentifiers = propertyIdentifiers @property def idLabels(self): return { p.id: p.label for p in self.propertyIdentifiers } class PropertySetStreamReader(object): def __init__(self, propertySetFormats): self.propertySetFormats = { propsetFormat.fmtid: propsetFormat for propsetFormat in propertySetFormats } def read(self, f): context = {} streamHeader = read_type(PropertySetStreamHeader, context, f) streamHeader = PropertySetStreamHeader.fromDict(streamHeader) propertysetList = list() for propsetDesc in streamHeader.propsetDescList: f.seek(propsetDesc.offset) propsetHeader = read_type(PropertySetHeader, context, f) propsetHeader = PropertySetHeader.fromDict( propsetHeader, ) try: propsetFormat = self.propertySetFormats[propsetDesc.fmtid] except KeyError: idLabels = {} else: idLabels = propsetFormat.idLabels properties = [] propDescMap = { propDesc.id: propDesc for propDesc in propsetHeader.propDescList } propDesc = propDescMap.pop(PID_CODEPAGE.id, None) if propDesc is not None: idLabel = idLabels.get(propDesc.id) propReader = PropertyReader( propsetDesc=propsetDesc, propDesc=propDesc, idLabel=idLabel, codepage=None, displayName=None, ) prop = propReader.read(f) properties.append(prop) codepage = prop.value else: codepage = None propDesc = propDescMap.pop(PID_DICTIONARY.id, None) if propDesc is not None: idLabel = idLabels.get(propDesc.id) propReader = DictionaryReader( propsetDesc, propDesc, idLabel, codepage, ) prop = propReader.read(f) properties.append(prop) dictionary = prop.value else: dictionary = None for propDesc in propDescMap.values(): idLabel = idLabels.get(propDesc.id) displayName = dictionary.get(propDesc.id, None) propReader = PropertyReader( propsetDesc=propsetDesc, propDesc=propDesc, idLabel=idLabel, codepage=codepage, displayName=displayName, ) prop = propReader.read(f) properties.append(prop) propertyset = PropertySet( desc=propsetDesc, header=propsetHeader, properties=properties, ) propertysetList.append(propertyset) return PropertySetStream( header=streamHeader, propertysets=propertysetList, ) class PropertySetStreamTextFormatter(object): def formatTextLines(self, stream): yield '- ByteOrder: 0x%x' % stream.byteOrder yield '- Version: %d' % stream.version yield '- SystemIdentifier: 0x%08x' % stream.systemIdentifier yield '- CLSID: %s' % stream.clsid yield '' for propertyset in stream.propertysets: title = 'Property Set {}'.format( propertyset.fmtid, ) yield '- {:08x}: {}'.format( propertyset.desc.offset, title, ) yield ' {}'.format( '-' * len(title) ) properties = sorted( propertyset.properties, key=lambda property: property.desc.offset, ) for property in properties: if property.id == PID_DICTIONARY.id: yield '- {:08x}: {}(=0x{:08x}):'.format( propertyset.desc.offset + property.desc.offset, property.idLabel if property.idLabel is not None else '', property.id, ) for entry in property.value.entries: yield ' - {}: {}'.format( entry.id, entry.name, ) else: yield '- {:08x}: {}(=0x{:08x}): {}'.format( propertyset.desc.offset + property.desc.offset, property.idLabel if property.idLabel is not None else '', property.id, property.value ) def uuid_from_bytes_tuple(t): fmt = 'B' * len(t) fmt = '<' + fmt bytes_le = struct.pack(fmt, *t) return UUID(bytes_le=bytes_le) def nullterminated_string(bs): return ''.join(chr(x) for x in bs)[:-1] ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-manifest-schema-v1.0-os.rng ================================================ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-manifest-schema-v1.1.rng ================================================ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-schema-v1.0-os.rng ================================================ boolean short int long double string datetime base64Binary simple onRequest simple replace onLoad new replace float date time boolean string true none condition simple embed simple onRequest new replace footnote endnote previous current next previous next name number number-and-name plain-number-and-name plain-number full path name name-and-extension full path name name-and-extension area title text:page-count text:paragraph-count text:word-count text:character-count text:table-count text:image-count text:object-count table query command text table text-box image object text:reference-ref text:bookmark-ref page chapter direction text page chapter direction text category-and-value caption value simple value unit gap float percentage currency date time boolean string value none value formula none value formula text:identifier text:address text:annote text:author text:booktitle text:chapter text:edition text:editor text:howpublished text:institution text:journal text:month text:note text:number text:organizations text:pages text:publisher text:school text:series text:title text:report-type text:volume text:year text:url text:custom1 text:custom2 text:custom3 text:custom4 text:custom5 text:isbn text:issn article book booklet conference custom1 custom2 custom3 custom4 custom5 email inbook incollection inproceedings journal manual mastersthesis misc phdthesis proceedings techreport unpublished www document chapter document chapter text category-and-value caption simple 1 2 3 separator name number number-and-name address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year right left visible collapse filter ($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+ ($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'[^']+'))?\.$?[A-Z]+$?[0-9]+)? copy-all copy-results-only simple onRequest trace-dependents remove-dependents trace-precedents remove-precedents trace-errors from-another-table to-another-table from-same-table enable disable none unsorted sort-ascending stop warning information column row none print-range filter repeat-row repeat-column column row text number automatic ascending descending text number automatic ascending descending auto average count countnums max min product stdev stdevp sum var varp self cell-range text number none row column both row column data hidden page auto average count countnums max min product stdev stdevp sum var varp auto average count countnums max min product stdev stdevp sum var varp from-top from-bottom data none manual name ascending descending tabular-layout outline-subtotals-top outline-subtotals-bottom named previous next none member-difference member-percentage member-percentage-difference running-total row-percentage column-percentage total-percentage index auto auto auto auto seconds minutes hours days months quarters years auto average count countnums max min product stdev stdevp sum var varp none row column both row column table row column table accepted rejected pending always screen printer none false true full section cut arc standard lines line curve page frame paragraph char as-char top-left top top-right left center right bottom-left bottom-right auto left right up down horizontal vertical scale scale-min scale scale-min simple embed onLoad simple onRequest new replace simple new replace nohref parallel perspective flat phong gouraud draft non-primitive flat phong gouraud draft parallel perspective none segments rectangle normal path shape path shape title outline subtitle text graphic object chart table orgchart page notes handout header footer date-time page-number simple onRequest new replace none fade move stripes open close dissolve wavyline random lines laser appear hide move-short checkerboard rotate stretch none from-left from-top from-right from-bottom from-center from-upper-left from-upper-right from-lower-left from-lower-right to-left to-top to-right to-bottom to-upper-left to-upper-right to-lower-right to-lower-left path spiral-inward-left spiral-inward-right spiral-outward-left spiral-outward-right vertical horizontal to-center clockwise counter-clockwise slow medium fast default on-click with-previous after-previous timing-root main-sequence interactive-sequence custom entrance exit emphasis motion-path ole-action media-call none previous-page next-page first-page last-page hide stop execute show verb fade-out sound simple embed onRequest fixed current-date enabled disabled enabled disabled start end top bottom start center end top-start bottom-start top-end bottom-end wide high balanced custom none row column both x y z major minor simple onRequest get post table query command none current parent records current page unchecked checked unknown horizontal vertical submit reset push url flat 3d center start end top bottom start center end table query sql sql-pass-through value-list table-fields void float percentage currency date time boolean string void 1 i I a A simple onRequest into-default-style-data-style into-english-number keep-text discrete linear paced spline rgb hsl clockwise counter-clockwise translate scale rotate skewX skewY forward reverse forward reverse in out discrete linear paced spline none sum replace sum first last all media remove freeze hold auto default transition remove freeze hold transition auto inherit never always whenNotActive default never always whenNotActive inherit all left right mirrored row column normal ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded ultra-expanded simple onRequest short long short long short long short long short long short long short long short long short long fixed language short medium long gregorian gengou ROC hanja_yoil hanja hijri jewish buddhist text paragraph section ruby left rigth inner outer document chapter page text page section document address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year table table-column table-row table-cell graphic presentation drawing-page linear axial radial ellipsoid square rectangular objectBoundingBox pad reflect repeat single double triple simple embed onLoad rect round chart default portrait landscape headers grid annotations objects charts drawings formulas zero-values ttb ltr continue horizontal vertical both none left center right none line both normal small-caps none lowercase uppercase capitalize font-color super sub roman swiss modern decorative script system fixed variable [A-Za-z][A-Za-z0-9._\-]* latin asian complex ignore normal normal italic oblique none embossed engraved none none single double none solid dotted dash long-dash dot-dash dot-dot-dash wave auto normal bold thin dash medium thick font-color normal bold 100 200 300 400 500 600 700 800 900 continuous skip-white-space none letters lines none none accent dot circle disc above below fixed line-height true none condition none normal start end left right center justify start center justify auto always left center right char font-color auto page no-limit word auto column page auto column page transparent no-repeat repeat stretch left center right top bottom left center right top center bottom auto always none ideograph-alpha simple hanging normal strict top middle bottom auto lr-tb rl-tb tb-rl tb-lr lr rl tb page above below left center right distribute-letter distribute-space none solid dotted dashed dot-dashed top middle bottom left center right margins collapsing separating auto always top middle bottom automatic fix value-type ltr ttb auto 0 no-wrap wrap none bottom top center none hidden-and-protected protected formula-hidden none dash solid 0 1 miter round bevel middle none inherit none solid bitmap gradient hatch no-repeat repeat stretch top-left top top-right left center right bottom-left bottom bottom-right nonzero evenodd none scroll alternate slide left right up down top middle bottom justify left center right justify no-wrap wrap greyscale mono watermark standard visible hidden below above automatic left-outside inside right-outside automatic above below center automatic mm cm m km pt pc inch ft mi straight-line angled-line angled-connector-line fixed free horizontal vertical auto correct attractive enabled disabled standard double-sided object flat sphere normal inverse object parallel sphere object parallel sphere luminance intesity color enabled disabled replace modulate blend visible hidden none content position size left center right from-left inside outside from-inside page page-content page-start-margin page-end-margin frame frame-content frame-start-margin frame-end-margin paragraph paragraph-content paragraph-start-margin paragraph-end-margin char top middle bottom from-top below page page-content frame frame-content paragraph paragraph-content char line baseline text none left right parallel dynamic run-through biggest no-limit full outside foreground background clip auto-create-new-frame none vertical vertical vertical horizontal horizontal-on-odd horizontal-on-even iterative once-concurrent once-successive ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) none automatic named-symbol square diamond arrow-down arrow-up arrow-right arrow-left bow-tie hourglass circle star x plus asterisk horizontal-bar vertical-bar image none cubic-spline b-spline cuboid cylinder cone pyramid side-by-side stagger-even stagger-odd none value percentage none variance standard-deviation percentage error-margin constant columns rows none linear logarithmic exponential power manual automatic semi-automatic none fade-from-left fade-from-top fade-from-right fade-from-bottom fade-from-upperleft fade-from-upperright fade-from-lowerleft fade-from-lowerright move-from-left move-from-top move-from-right move-from-bottom move-from-upperleft move-from-upperright move-from-lowerleft move-from-lowerright uncover-to-left uncover-to-top uncover-to-right uncover-to-bottom uncover-to-upperleft uncover-to-upperright uncover-to-lowerleft uncover-to-lowerright fade-to-center fade-from-center vertical-stripes horizontal-stripes clockwise counterclockwise open-vertical open-horizontal close-vertical close-horizontal wavyline-from-left wavyline-from-top wavyline-from-right wavyline-from-bottom spiralin-left spiralin-right spiralout-left spiralout-right roll-from-top roll-from-left roll-from-right roll-from-bottom stretch-from-left stretch-from-top stretch-from-right stretch-from-bottom vertical-lines horizontal-lines dissolve random vertical-checkerboard horizontal-checkerboard interlocking-horizontal-left interlocking-horizontal-right interlocking-vertical-top interlocking-vertical-bottom fly-away open close melt forward reverse forward reverse visible hidden full border true false [A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})* [A-Za-z0-9]{1,8} [A-Za-z]{1,8} 1 -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% [0-9]+\* #[0-9a-fA-F]{6} _self _blank _parent _top float time date percentage currency boolean string -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) [0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-schema-v1.1.rng ================================================ boolean short int long double string datetime base64Binary simple onRequest simple replace onLoad new replace float date time boolean string true none condition simple embed simple onRequest new replace footnote endnote previous current next previous next name number number-and-name plain-number-and-name plain-number full path name name-and-extension full path name name-and-extension area title text:page-count text:paragraph-count text:word-count text:character-count text:table-count text:image-count text:object-count table query command text table text-box image object text:reference-ref text:bookmark-ref page chapter direction text page chapter direction text category-and-value caption value simple value unit gap float percentage currency date time boolean string value none value formula none value formula text:identifier text:address text:annote text:author text:booktitle text:chapter text:edition text:editor text:howpublished text:institution text:journal text:month text:note text:number text:organizations text:pages text:publisher text:school text:series text:title text:report-type text:volume text:year text:url text:custom1 text:custom2 text:custom3 text:custom4 text:custom5 text:isbn text:issn article book booklet conference custom1 custom2 custom3 custom4 custom5 email inbook incollection inproceedings journal manual mastersthesis misc phdthesis proceedings techreport unpublished www document chapter document chapter text category-and-value caption simple 1 2 3 separator name number number-and-name address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year right left visible collapse filter ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+ ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)? copy-all copy-results-only simple onRequest trace-dependents remove-dependents trace-precedents remove-precedents trace-errors from-another-table to-another-table from-same-table enable disable none unsorted sort-ascending stop warning information column row none print-range filter repeat-row repeat-column column row text number automatic ascending descending text number automatic ascending descending auto average count countnums max min product stdev stdevp sum var varp self cell-range text number none row column both row column data hidden page auto average count countnums max min product stdev stdevp sum var varp auto average count countnums max min product stdev stdevp sum var varp from-top from-bottom data none manual name ascending descending tabular-layout outline-subtotals-top outline-subtotals-bottom named previous next none member-difference member-percentage member-percentage-difference running-total row-percentage column-percentage total-percentage index auto auto auto auto seconds minutes hours days months quarters years auto average count countnums max min product stdev stdevp sum var varp none row column both row column table row column table accepted rejected pending always screen printer none false true full section cut arc standard lines line curve page frame paragraph char as-char top-left top top-right left center right bottom-left bottom-right auto left right up down horizontal vertical scale scale-min scale scale-min simple embed onLoad simple onRequest new replace simple new replace nohref parallel perspective flat phong gouraud draft non-primitive flat phong gouraud draft parallel perspective none segments rectangle normal path shape path shape title outline subtitle text graphic object chart table orgchart page notes handout header footer date-time page-number simple onRequest new replace none fade move stripes open close dissolve wavyline random lines laser appear hide move-short checkerboard rotate stretch none from-left from-top from-right from-bottom from-center from-upper-left from-upper-right from-lower-left from-lower-right to-left to-top to-right to-bottom to-upper-left to-upper-right to-lower-right to-lower-left path spiral-inward-left spiral-inward-right spiral-outward-left spiral-outward-right vertical horizontal to-center clockwise counter-clockwise slow medium fast default on-click with-previous after-previous timing-root main-sequence interactive-sequence custom entrance exit emphasis motion-path ole-action media-call none previous-page next-page first-page last-page hide stop execute show verb fade-out sound simple embed onRequest fixed current-date enabled disabled enabled disabled start end top bottom start center end top-start bottom-start top-end bottom-end wide high balanced custom none row column both x y z major minor simple onRequest get post table query command none current parent records current page unchecked checked unknown horizontal vertical submit reset push url flat 3d center start end top bottom start center end table query sql sql-pass-through value-list table-fields void float percentage currency date time boolean string void 1 i I a A simple onRequest into-default-style-data-style into-english-number keep-text discrete linear paced spline rgb hsl clockwise counter-clockwise translate scale rotate skewX skewY forward reverse forward reverse in out discrete linear paced spline none sum replace sum first last all media indefinite remove freeze hold auto default transition remove freeze hold transition auto inherit never always whenNotActive default never always whenNotActive inherit all left right mirrored row column normal ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded ultra-expanded simple onRequest short long short long short long short long short long short long short long short long short long fixed language short medium long gregorian gengou ROC hanja_yoil hanja hijri jewish buddhist text paragraph section ruby left right inner outer document chapter page text page section document address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year table table-column table-row table-cell graphic presentation drawing-page linear axial radial ellipsoid square rectangular objectBoundingBox pad reflect repeat single double triple simple embed onLoad rect round chart default portrait landscape headers grid annotations objects charts drawings formulas zero-values ttb ltr continue horizontal vertical both none left center right none line both normal small-caps none lowercase uppercase capitalize font-color super sub roman swiss modern decorative script system fixed variable [A-Za-z][A-Za-z0-9._\-]* latin asian complex ignore normal normal italic oblique none embossed engraved none none single double none solid dotted dash long-dash dot-dash dot-dot-dash wave auto normal bold thin dash medium thick font-color normal bold 100 200 300 400 500 600 700 800 900 continuous skip-white-space none letters lines none none accent dot circle disc above below fixed line-height true none condition none normal start end left right center justify start center justify auto always left center right char font-color auto page no-limit word auto column page auto column page transparent no-repeat repeat stretch left center right top bottom left center right top center bottom auto always none ideograph-alpha simple hanging normal strict top middle bottom auto baseline lr-tb rl-tb tb-rl tb-lr lr rl tb page auto above below left center right distribute-letter distribute-space none solid dotted dashed dot-dashed top middle bottom left center right margins collapsing separating auto always top middle bottom automatic fix value-type ltr ttb auto 0 no-wrap wrap none bottom top center none hidden-and-protected protected formula-hidden none dash solid 0 1 miter round bevel middle none inherit none solid bitmap gradient hatch no-repeat repeat stretch top-left top top-right left center right bottom-left bottom bottom-right nonzero evenodd none scroll alternate slide left right up down top middle bottom justify left center right justify no-wrap wrap greyscale mono watermark standard visible hidden below above automatic left-outside inside right-outside automatic above below center automatic mm cm m km pt pc inch ft mi straight-line angled-line angled-connector-line fixed free horizontal vertical auto correct attractive enabled disabled standard double-sided object flat sphere normal inverse object parallel sphere object parallel sphere luminance intensity color enabled disabled replace modulate blend visible hidden none content position size left center right from-left inside outside from-inside page page-content page-start-margin page-end-margin frame frame-content frame-start-margin frame-end-margin paragraph paragraph-content paragraph-start-margin paragraph-end-margin char top middle bottom from-top below page page-content frame frame-content paragraph paragraph-content char line baseline text none left right parallel dynamic run-through biggest no-limit full outside foreground background clip auto-create-new-frame none vertical vertical vertical horizontal horizontal-on-odd horizontal-on-even iterative once-concurrent once-successive ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) none automatic named-symbol square diamond arrow-down arrow-up arrow-right arrow-left bow-tie hourglass circle star x plus asterisk horizontal-bar vertical-bar image none cubic-spline b-spline cuboid cylinder cone pyramid side-by-side stagger-even stagger-odd none value percentage none variance standard-deviation percentage error-margin constant columns rows none linear logarithmic exponential power manual automatic semi-automatic none fade-from-left fade-from-top fade-from-right fade-from-bottom fade-from-upperleft fade-from-upperright fade-from-lowerleft fade-from-lowerright move-from-left move-from-top move-from-right move-from-bottom move-from-upperleft move-from-upperright move-from-lowerleft move-from-lowerright uncover-to-left uncover-to-top uncover-to-right uncover-to-bottom uncover-to-upperleft uncover-to-upperright uncover-to-lowerleft uncover-to-lowerright fade-to-center fade-from-center vertical-stripes horizontal-stripes clockwise counterclockwise open-vertical open-horizontal close-vertical close-horizontal wavyline-from-left wavyline-from-top wavyline-from-right wavyline-from-bottom spiralin-left spiralin-right spiralout-left spiralout-right roll-from-top roll-from-left roll-from-right roll-from-bottom stretch-from-left stretch-from-top stretch-from-right stretch-from-bottom vertical-lines horizontal-lines dissolve random vertical-checkerboard horizontal-checkerboard interlocking-horizontal-left interlocking-horizontal-right interlocking-vertical-top interlocking-vertical-bottom fly-away open close melt forward reverse visible hidden full border true false [A-Za-z0-9]{1,8} [A-Za-z]{1,8} 1 -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px)) -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% [0-9]+\* #[0-9a-fA-F]{6} _self _blank _parent _top float time date percentage currency boolean string -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) [0-9a-zA-Z_]+:[0-9a-zA-Z._\-]+ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-strict-schema-v1.1.rng ================================================ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-v1.2-os-dsig-schema.rng ================================================ 1.2 ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-v1.2-os-manifest-schema.rng ================================================ 1.2 edit presentation-slide-show read-only SHA1/1K Blowfish CFB PBKDF2 SHA1 [^:]+:[^:]+ ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-v1.2-os-metadata.owl ================================================ Open Document Schema Metadata Manifest Ontology The unique content.xml from the root path of the document The unique styles.xml from the root path of the document ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-v1.2-os-package-metadata.owl ================================================ Open Document Package Metadata Manifest Ontology Related to dcterms:hasPart of the Dublin Core Metadata Initiative Used for any metadata file in the document A string representing the MIME media type of a file (see RFC4288). ================================================ FILE: src/hwp5/odf-relaxng/OpenDocument-v1.2-os-schema.rng ================================================ 1.2 boolean short int long double string datetime base64Binary simple onRequest simple replace onLoad new replace float date time boolean string true none condition simple embed text:page-count text:paragraph-count text:word-count text:character-count text:table-count text:image-count text:object-count text:reference-ref text:bookmark-ref simple value unit gap text:identifier text:address text:annote text:author text:booktitle text:chapter text:edition text:editor text:howpublished text:institution text:journal text:month text:note text:number text:organizations text:pages text:publisher text:school text:series text:title text:report-type text:volume text:year text:url text:custom1 text:custom2 text:custom3 text:custom4 text:custom5 text:isbn text:issn simple onRequest new replace footnote endnote previous current next previous next name number number-and-name plain-number-and-name plain-number full path name name-and-extension full path name name-and-extension area title table query command text table text-box image object number-no-superior number-all-superior number category-and-value caption value page chapter direction text float percentage currency date time boolean string value none value formula none value formula article book booklet conference custom1 custom2 custom3 custom4 custom5 email inbook incollection inproceedings journal manual mastersthesis misc phdthesis proceedings techreport unpublished www document chapter text category-and-value caption document chapter simple 1 2 3 separator name number number-and-name plain-number plain-number-and-name address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year right left visible collapse filter ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+ ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+(:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+$?[0-9]+)? ($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+:($?([^\. ']+|'([^']|'')+'))?\.$?[0-9]+ ($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+:($?([^\. ']+|'([^']|'')+'))?\.$?[A-Z]+ Value is a space separated list of "cellRangeAddress" patterns copy-all copy-results-only simple onRequest trace-dependents remove-dependents trace-precedents remove-precedents trace-errors from-another-table to-another-table from-same-table date enable disable none unsorted sort-ascending stop warning information column row none print-range filter repeat-row repeat-column column row alpha-numeric integer double text number automatic ascending descending text number automatic ascending descending average count countnums max min product stdev stdevp sum var varp self cell-range text number none row column both row column data hidden page auto average count countnums max min product stdev stdevp sum var varp auto average count countnums max min product stdev stdevp sum var varp from-top from-bottom data none manual name ascending descending tabular-layout outline-subtotals-top outline-subtotals-bottom named previous next none member-difference member-percentage member-percentage-difference running-total row-percentage column-percentage total-percentage index auto auto auto auto seconds minutes hours days months quarters years average count countnums max min product stdev stdevp sum var varp none row column both row column table row column table accepted rejected pending always screen printer none false true full section cut arc standard lines line curve page frame paragraph char as-char top-left top top-right left center right bottom-left bottom-right auto left right up down horizontal vertical scale scale-min scale scale-min simple embed onLoad simple onRequest new replace simple new replace nohref parallel perspective flat phong gouraud draft flat phong gouraud draft parallel perspective none segments rectangle normal path shape path shape non-primitive \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))){2}[ ]*\) -0.5 0.5 title outline subtitle text graphic object chart table orgchart page notes handout header footer date-time page-number simple onRequest new replace none fade move stripes open close dissolve wavyline random lines laser appear hide move-short checkerboard rotate stretch none from-left from-top from-right from-bottom from-center from-upper-left from-upper-right from-lower-left from-lower-right to-left to-top to-right to-bottom to-upper-left to-upper-right to-lower-right to-lower-left path spiral-inward-left spiral-inward-right spiral-outward-left spiral-outward-right vertical horizontal to-center clockwise counter-clockwise slow medium fast default on-click with-previous after-previous timing-root main-sequence interactive-sequence custom entrance exit emphasis motion-path ole-action media-call none previous-page next-page first-page last-page hide stop execute show verb fade-out sound last-visited-page simple embed onRequest fixed current-date enabled disabled enabled disabled simple start end top bottom start center end top-start bottom-start top-end bottom-end wide high balanced custom none row column both x y z major minor simple simple none onRequest equal-integer is-boolean equal-boolean equal-use-only-zero boolean short int long double string simple none onRequest no-nulls nullable bit boolean tinyint smallint integer bigint float real double numeric decimal char varchar longvarchar date time timestmp binary varbinary longvarbinary sqlnull other object distinct struct array blob clob ref primary unique foreign cascade restrict set-null no-action set-default cascade restrict set-null no-action set-default simple onRequest get post table query command none current parent records current page selection selection-indices unchecked checked unknown horizontal vertical submit reset push url flat 3d center start end top bottom start center end table query sql sql-pass-through value-list table-fields void float percentage currency date time boolean string void 1 i I a A simple onRequest To avoid inclusion of the complete MathML schema, anything is allowed within a math:math top-level element into-default-style-data-style into-english-number keep-text discrete linear paced spline rgb hsl clockwise counter-clockwise translate scale rotate skewX skewY forward reverse in out discrete linear paced spline none sum replace sum first last all media indefinite 0.0 remove freeze hold auto default transition remove freeze hold transition auto inherit never always whenNotActive default never always whenNotActive inherit 0 1 all left right mirrored row column normal ultra-condensed extra-condensed condensed semi-condensed semi-expanded expanded extra-expanded ultra-expanded simple onRequest short long short long short long short long short long short long short long short long short long short medium long fixed language gregorian gengou ROC hanja_yoil hanja hijri jewish buddhist text paragraph section ruby table table-column table-row table-cell graphic presentation drawing-page chart left right inner outer document chapter page text page section document address annote author bibliography-type booktitle chapter custom1 custom2 custom3 custom4 custom5 edition editor howpublished identifier institution isbn issn journal month note number organizations pages publisher report-type school series title url volume year linear axial radial ellipsoid square rectangular objectBoundingBox pad reflect repeat single double triple simple embed onLoad rect round default portrait landscape headers grid annotations objects charts drawings formulas zero-values ttb ltr continue horizontal vertical both none none line both left center right none lowercase uppercase capitalize font-color super sub latin asian complex ignore normal none embossed engraved font-color font-color none letters lines none none accent dot circle disc above below fixed line-height true none condition none normal small-caps roman swiss modern decorative script system fixed variable [A-Za-z][A-Za-z0-9._\-]* normal italic oblique none none single double none solid dotted dash long-dash dot-dash dot-dot-dash wave auto normal bold thin medium thick normal bold 100 200 300 400 500 600 700 800 900 continuous skip-white-space normal start center justify auto always auto page no-limit none ideograph-alpha simple hanging normal strict top middle bottom auto baseline start end left right center justify left center right char font-color word auto column page auto column page transparent no-repeat repeat stretch left center right top bottom left center right top center bottom auto always lr-tb rl-tb tb-rl tb-lr lr rl tb page auto above below left center right distribute-letter distribute-space none solid dotted dashed dot-dashed top middle bottom left center right margins collapsing separating auto always top middle bottom automatic fix value-type auto 0 0deg 0rad 0grad no-wrap wrap none bottom top center none hidden-and-protected protected formula-hidden ltr ttb label-width-and-position label-alignment listtab space nothing none dash solid 0 1 miter round bevel middle none butt square round none scroll alternate slide left right up down top middle bottom justify left center right justify no-wrap wrap greyscale mono watermark standard visible hidden below above automatic left-outside inside right-outside automatic above below center automatic mm cm m km pt pc inch ft mi straight-line angled-line angled-connector-line fixed free horizontal vertical auto correct attractive enabled disabled standard double-sided object flat sphere normal inverse object parallel sphere object parallel sphere luminance intensity color enabled disabled replace modulate blend visible hidden none content position size left center right from-left inside outside from-inside page page-content page-start-margin page-end-margin frame frame-content frame-start-margin frame-end-margin paragraph paragraph-content paragraph-start-margin paragraph-end-margin char none left right parallel dynamic run-through biggest no-limit full outside foreground background clip auto-create-new-frame none vertical vertical vertical auto iterative once-concurrent once-successive content thumbnail icon print-view none solid bitmap gradient hatch no-repeat repeat stretch top-left top top-right left center right bottom-left bottom bottom-right horizontal vertical nonzero evenodd top middle bottom from-top below page page-content frame frame-content paragraph paragraph-content char line baseline text horizontal horizontal-on-odd horizontal-on-even rect\([ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)))|(auto))([ ]*,[ ]*((-?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc))))|(auto)){3}[ ]*\) ([0-9]+(\.[0-9]*)?|\.[0-9]+)(px) none automatic named-symbol square diamond arrow-down arrow-up arrow-right arrow-left bow-tie hourglass circle star x plus asterisk horizontal-bar vertical-bar image none cubic-spline b-spline cuboid cylinder cone pyramid use-zero leave-gap ignore side-by-side stagger-even stagger-odd none value percentage value-and-percentage none variance standard-deviation percentage error-margin constant standard-error cell-range columns rows none linear logarithmic exponential power start end near-axis near-axis-other-side outside-start outside-end at-labels at-axis at-labels-and-axis avoid-overlap center top top-right right bottom-right bottom bottom-left left top-left inside outside near-origin manual automatic semi-automatic none fade-from-left fade-from-top fade-from-right fade-from-bottom fade-from-upperleft fade-from-upperright fade-from-lowerleft fade-from-lowerright move-from-left move-from-top move-from-right move-from-bottom move-from-upperleft move-from-upperright move-from-lowerleft move-from-lowerright uncover-to-left uncover-to-top uncover-to-right uncover-to-bottom uncover-to-upperleft uncover-to-upperright uncover-to-lowerleft uncover-to-lowerright fade-to-center fade-from-center vertical-stripes horizontal-stripes clockwise counterclockwise open-vertical open-horizontal close-vertical close-horizontal wavyline-from-left wavyline-from-top wavyline-from-right wavyline-from-bottom spiralin-left spiralin-right spiralout-left spiralout-right roll-from-top roll-from-left roll-from-right roll-from-bottom stretch-from-left stretch-from-top stretch-from-right stretch-from-bottom vertical-lines horizontal-lines dissolve random vertical-checkerboard horizontal-checkerboard interlocking-horizontal-left interlocking-horizontal-right interlocking-vertical-top interlocking-vertical-bottom fly-away open close melt forward reverse visible hidden full border true false [A-Za-z0-9]{1,8} [A-Za-z]{1,8} [A-Za-z0-9]{1,8} 1 -?([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]+(\.[0-9]*)?|\.[0-9]+)((cm)|(mm)|(in)|(pt)|(pc)|(px)) ([0-9]*[1-9][0-9]*(\.[0-9]*)?|0+\.[0-9]*[1-9][0-9]*|\.[0-9]*[1-9][0-9]*)((cm)|(mm)|(in)|(pt)|(pc)|(px)) -?([0-9]+(\.[0-9]*)?|\.[0-9]+)% ([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% -?([0-9]?[0-9](\.[0-9]*)?|100(\.0*)?|\.[0-9]+)% [0-9]+\* #[0-9a-fA-F]{6} (([\i-[:]][\c-[:]]*)?:)?.+ 1 \[(([\i-[:]][\c-[:]]*)?:)?.+\] 3 _self _blank _parent _top float time date percentage currency boolean string -?[0-9]+,-?[0-9]+([ ]+-?[0-9]+,-?[0-9]+)* \([ ]*-?([0-9]+(\.[0-9]*)?|\.[0-9]+)([ ]+-?([0-9]+(\.[0-9]*)?|\.[0-9]+)){2}[ ]*\) [^:]+:[^:]+ An IRI-reference as defined in [RFC3987]. See ODF 1.2 Part 1 section 18.3. ================================================ FILE: src/hwp5/plat/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from binascii import b2a_hex from functools import partial from subprocess import CalledProcessError from subprocess import Popen import logging import os import subprocess import tempfile from . import _lxml from . import _uno from . import gir_gsf from . import javax_transform from . import jython_poifs from . import olefileio from . import xmllint from . import xsltproc logger = logging.getLogger(__name__) def get_xslt(): if javax_transform.is_enabled(): return javax_transform.xslt if _lxml.is_enabled(): return _lxml.xslt if xsltproc.is_enabled(): return xsltproc.xslt if _uno.is_enabled(): return _uno.xslt def get_xslt_compile(): modules = [ javax_transform, _lxml, xsltproc, _uno ] for module in modules: if module.is_enabled(): xslt_compile = getattr(module, 'xslt_compile', None) if xslt_compile: return xslt_compile xslt = getattr(module, 'xslt', None) if xslt: def xslt_compile(xsl_path): return partial(xslt, xsl_path) def get_relaxng(): if _lxml.is_enabled(): return _lxml.relaxng if xmllint.is_enabled(): return xmllint.relaxng def get_relaxng_compile(): modules = [ _lxml, xmllint, ] for module in modules: if module.is_enabled(): relaxng_compile = getattr(module, 'relaxng_compile', None) if relaxng_compile: return relaxng_compile relaxng = getattr(module, 'relaxng', None) if relaxng: def relaxng_compile(rng_path): return partial(relaxng, rng_path) def get_olestorage_class(): if jython_poifs.is_enabled(): return jython_poifs.OleStorage if olefileio.is_enabled(): return olefileio.OleStorage if _uno.is_enabled(): return _uno.OleStorage if gir_gsf.is_enabled(): return gir_gsf.OleStorage def get_aes128ecb_decrypt(): try: return get_aes128ecb_decrypt_cryptography() except Exception: pass try: return get_aes128ecb_decrypt_javax() except Exception: pass try: return get_aes128ecb_decrypt_openssl() except Exception: pass raise NotImplementedError('aes128ecb_decrypt') def get_aes128ecb_decrypt_cryptography(): from cryptography.hazmat.primitives.ciphers import Cipher from cryptography.hazmat.primitives.ciphers import algorithms from cryptography.hazmat.primitives.ciphers import modes from cryptography.hazmat.backends import default_backend def decrypt(key, ciphertext): backend = default_backend() cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=backend) decryptor = cipher.decryptor() return decryptor.update(ciphertext) + decryptor.finalize() return decrypt def get_aes128ecb_decrypt_javax(): from javax.crypto import Cipher from javax.crypto.spec import SecretKeySpec def decrypt(key, ciphertext): secretkey = SecretKeySpec(key, 'AES') cipher = Cipher.getInstance('AES/ECB/NoPadding') cipher.init(Cipher.DECRYPT_MODE, secretkey) decrypted = cipher.doFinal(ciphertext) return decrypted.tostring() return decrypt def get_aes128ecb_decrypt_openssl(): if not openssl_reachable(): raise NotImplementedError() def decrypt(key, ciphertext): fd, name = tempfile.mkstemp() fp = os.fdopen(fd, 'wb') try: fp.write(ciphertext) finally: fp.close() args = [ 'openssl', 'enc', '-d', '-in', name, '-aes-128-ecb', '-K', b2a_hex(key), '-nopad', ] try: p = Popen(args, stdout=subprocess.PIPE) try: return p.stdout.read() finally: p.wait() p.stdout.close() finally: os.unlink(name) return decrypt def openssl_reachable(): args = ['openssl', 'version'] try: subprocess.check_output(args) except OSError: return False except CalledProcessError: return False except Exception as e: logger.exception(e) return False else: return True ================================================ FILE: src/hwp5/plat/_lxml.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from contextlib import contextmanager import io import logging import os.path import shutil import sys import tempfile from ..errors import ValidationFailed PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) def is_enabled(): try: from lxml import etree # noqa except ImportError: return False else: return True def xslt(xsl_path, inp_path, out_path): ''' Transform XML with XSL :param xsl_path: stylesheet path :param inp_path: input path :param out_path: output path ''' transform = xslt_compile(xsl_path) with io.open(out_path, 'wb') as f: return transform(inp_path, f) def xslt_compile(xsl_path, **params): xslt = XSLT(xsl_path, **params) return xslt.transform_into_stream class XSLT: def __init__(self, xsl_path, **params): ''' Compile XSL Transform function. :param xsl_path: stylesheet path :returns: a transform function ''' from lxml import etree with io.open(xsl_path, 'rb') as xsl_file: xsl_doc = etree.parse(xsl_file) self.xsl_path = xsl_path self.etree_xslt = etree.XSLT(xsl_doc) self.params = dict((name, etree.XSLT.strparam(value)) for name, value in params.items()) def transform(self, input, output): ''' >>> T.transform('input.xml', 'output.xml') ''' with io.open(input, 'rb') as inp_file: with io.open(output, 'wb') as out_file: return self._transform(inp_file, out_file) def transform_into_stream(self, input, output): ''' >>> T.transform_into_stream('input.xml', sys.stdout) ''' with io.open(input, 'rb') as inp_file: return self._transform(inp_file, output) def _transform(self, input, output): # input, output: binary stream from lxml import etree source = etree.parse(input) logger.info('_lxml.xslt(%s) start', os.path.basename(self.xsl_path)) result = self.etree_xslt(source, **self.params) logger.info('_lxml.xslt(%s) end', os.path.basename(self.xsl_path)) # https://lxml.de/1.3/FAQ.html#what-is-the-difference-between-str-xslt-doc-and-xslt-doc-write result = bytes(result) output.write(result) return dict() def relaxng(rng_path, inp_path): relaxng = RelaxNG(rng_path) return relaxng.validate(inp_path) def relaxng_compile(rng_path): ''' Compile RelaxNG file :param rng_path: RelaxNG path :returns: a validation function ''' return RelaxNG(rng_path) class RelaxNG: def __init__(self, rng_path): from lxml import etree with io.open(rng_path, 'rb') as rng_file: rng = etree.parse(rng_file) self.rng_path = rng_path self.etree_relaxng = etree.RelaxNG(rng) @contextmanager def validating_output(self, output): fd, name = tempfile.mkstemp() try: with os.fdopen(fd, 'wb+') as f: yield f f.seek(0) if not self.validate_stream(f): raise ValidationFailed('RelaxNG') f.seek(0) shutil.copyfileobj(f, output) finally: try: os.unlink(name) except Exception as e: logger.warning('%s: can\'t unlink %s', e, name) def validate(self, input): from lxml import etree with io.open(input, 'rb') as f: doc = etree.parse(f) return self._validate(doc) def validate_stream(self, input): from lxml import etree doc = etree.parse(input) return self._validate(doc) def _validate(self, doc): logger.info('_lxml.relaxng(%s) start', os.path.basename(self.rng_path)) try: valid = self.etree_relaxng.validate(doc) except Exception as e: logger.exception(e) raise else: if not valid: for error in self.etree_relaxng.error_log: logger.error('%s', error) return valid finally: logger.info( '_lxml.relaxng(%s) end', os.path.basename(self.rng_path) ) def errlog_to_dict(error): return dict(message=error.message, filename=error.filename, line=error.line, column=error.column, domain=error.domain_name, type=error.type_name, level=error.level_name) ================================================ FILE: src/hwp5/plat/_uno/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import io import logging import os.path import sys from ...errors import InvalidOleStorageError PY3 = sys.version_info.major == 3 if PY3: basestring = str logger = logging.getLogger(__name__) enabled = False def is_enabled(): if 'PYHWP_PLAT_UNO' in os.environ: PYHWP_PLAT_UNO = os.environ['PYHWP_PLAT_UNO'].strip() try: forced = bool(int(PYHWP_PLAT_UNO)) logger.debug('%s: forced to be %s by PYHWP_PLAT_UNO', __name__, 'enabled' if forced else 'disabled') return forced except: logger.warning('PYHWP_PLAT_UNO=%s (invalid)', PYHWP_PLAT_UNO) logger.debug('%s: is %s', __name__, 'enabled' if enabled else 'disabled') return enabled def enable(): import uno import unohelper g = globals() g['uno'] = uno g['unohelper'] = unohelper g['enabled'] = True logger.info('%s: enabled.', __name__) def disable(): global enabled enabled = False logger.info('%s: disabled.', __name__) def XSLTTransformer(context, stylesheet_url, source_url, source_url_base): from com.sun.star.beans import NamedValue from hwp5.plat._uno.services import css args = (NamedValue('StylesheetURL', stylesheet_url), NamedValue('SourceURL', source_url), NamedValue('SourceBaseURL', source_url_base)) select = os.environ.get('PYHWP_PLAT_UNO_XSLT', 'libxslt') logger.debug('PYHWP_PLAT_UNO_XSLT = %s', select) if select == 'jaxthelper': logger.debug('%s.xslt: using css.comp.JAXTHelper', __name__) return css.comp.JAXTHelper(context, *args) else: logger.debug('%s.xslt: using %s', __name__, 'css.comp.documentconversion.LibXSLTTransformer') return css.comp.documentconversion.LibXSLTTransformer(context, *args) class OneshotEvent(object): def __init__(self): pin, pout = os.pipe() self.pin = os.fdopen(pin, 'r') self.pout = os.fdopen(pout, 'w') def wait(self): self.pin.read() self.pin.close() def signal(self): self.pout.close() class XSLT(object): def __init__(self, context): self.context = context def __call__(self, xsl_path, inp_path, out_path): import uno import unohelper from hwp5.plat._uno import ucb from hwp5.plat._uno.adapters import OutputStreamToFileLike xsl_path = os.path.abspath(xsl_path) xsl_url = uno.systemPathToFileUrl(xsl_path) inp_path = os.path.abspath(inp_path) inp_url = uno.systemPathToFileUrl(inp_path) inp_stream = ucb.open_url(self.context, inp_url) out_path = os.path.abspath(out_path) with io.open(out_path, 'wb') as out_file: out_stream = OutputStreamToFileLike(out_file, dontclose=True) from com.sun.star.io import XStreamListener class XSLTListener(unohelper.Base, XStreamListener): def __init__(self): self.event = OneshotEvent() def started(self): logger.info('XSLT started') def closed(self): logger.info('XSLT closed') self.event.signal() def terminated(self): logger.info('XSLT terminated') self.event.signal() def error(self, exception): logger.error('XSLT error: %s', exception) self.event.signal() def disposing(self, source): logger.info('XSLT disposing: %s', source) self.event.signal() listener = XSLTListener() transformer = XSLTTransformer(self.context, xsl_url, '', '') transformer.InputStream = inp_stream transformer.OutputStream = out_stream transformer.addListener(listener) transformer.start() xsl_name = os.path.basename(xsl_path) logger.info('xslt.soffice(%s) start', xsl_name) try: listener.event.wait() finally: logger.info('xslt.soffice(%s) end', xsl_name) transformer.removeListener(listener) return dict() def xslt(xsl_path, inp_path, out_path): import uno context = uno.getComponentContext() xslt = XSLT(context) return xslt(xsl_path, inp_path, out_path) def oless_from_filename(filename): inputstream = inputstream_from_filename(filename) return oless_from_inputstream(inputstream) def inputstream_from_filename(filename): f = io.open(filename, 'rb') from hwp5.plat._uno.adapters import InputStreamFromFileLike return InputStreamFromFileLike(f) def oless_from_inputstream(inputstream): import uno context = uno.getComponentContext() sm = context.ServiceManager name = 'com.sun.star.embed.OLESimpleStorage' args = (inputstream, ) return sm.createInstanceWithArgumentsAndContext(name, args, context) class OleStorage(object): def __init__(self, stg): ''' an OLESimpleStorage to hwp5 storage adapter. :param stg: a filename or an instance of OLESimpleStorage ''' if isinstance(stg, basestring): self.oless = oless_from_filename(stg) try: self.oless.getElementNames() except: errormsg = 'Not a valid OLE2 Compound Binary File.' raise InvalidOleStorageError(errormsg) else: # TODO assert stg is an instance of OLESimpleStorage self.oless = stg def __iter__(self): return iter(self.oless.getElementNames()) def __getitem__(self, name): from com.sun.star.container import NoSuchElementException try: elem = self.oless.getByName(name) except NoSuchElementException: raise KeyError(name) services = elem.SupportedServiceNames if 'com.sun.star.embed.OLESimpleStorage' in services: return OleStorage(elem) else: elem.closeInput() return OleStorageStream(self.oless, name) def close(self): return # TODO # if this is root, close underlying olefile if self.path == '': # old version of OleFileIO has no close() if hasattr(self.olefile, 'close'): self.olefile.close() class OleStorageStream(object): def __init__(self, oless, name): self.oless = oless self.name = name def open(self): from hwp5.plat._uno.adapters import FileFromStream stream = self.oless.getByName(self.name) return FileFromStream(stream) ================================================ FILE: src/hwp5/plat/_uno/adapters.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # import uno import unohelper from com.sun.star.io import XInputStream, XSeekable, XOutputStream class InputStreamFromFileLike(unohelper.Base, XInputStream, XSeekable): ''' Implementation of XInputStream, XSeekable based on a file-like object Implements com.sun.star.io.XInputStream and com.sun.star.io.XSeekable :param f: a file-like object ''' def __init__(self, f, dontclose=False): self.f = f self.dontclose = dontclose def readBytes(self, aData, nBytesToRead): data = self.f.read(nBytesToRead) return len(data), uno.ByteSequence(data) readSomeBytes = readBytes def skipBytes(self, nBytesToSkip): self.f.read(nBytesToSkip) def available(self): return 0 def closeInput(self): if not self.dontclose: self.f.close() def seek(self, location): self.f.seek(location) def getPosition(self): pos = self.f.tell() return pos def getLength(self): pos = self.f.tell() try: self.f.seek(0, 2) length = self.f.tell() return length finally: self.f.seek(pos) class OutputStreamToFileLike(unohelper.Base, XOutputStream): ''' Implementation of XOutputStream based on a file-like object. Implements com.sun.star.io.XOutputStream. :param f: a file-like object ''' def __init__(self, f, dontclose=False): self.f = f self.dontclose = dontclose def writeBytes(self, bytesequence): self.f.write(bytesequence.value) def flush(self): self.f.flush() def closeOutput(self): if not self.dontclose: self.f.close() class FileFromStream(object): ''' A file-like object based on XInputStream/XOuputStream/XSeekable :param stream: a stream object which implements com.sun.star.io.XInputStream, com.sun.star.io.XOutputStream or com.sun.star.io.XSeekable ''' def __init__(self, stream): self.stream = stream if hasattr(stream, 'readBytes'): def read(size=None): if size is None: data = '' while True: bytes = uno.ByteSequence('') n_read, bytes = stream.readBytes(bytes, 4096) if n_read == 0: return data data += bytes.value bytes = uno.ByteSequence('') n_read, bytes = stream.readBytes(bytes, size) return bytes.value self.read = read if hasattr(stream, 'seek'): self.tell = stream.getPosition def seek(offset, whence=0): if whence == 0: pass elif whence == 1: offset += stream.getPosition() elif whence == 2: offset += stream.getLength() stream.seek(offset) self.seek = seek if hasattr(stream, 'writeBytes'): def write(s): stream.writeBytes(uno.ByteSequence(s)) self.write = write def flush(): stream.flush() self.flush = flush def close(self): if hasattr(self.stream, 'closeInput'): self.stream.closeInput() elif hasattr(self.stream, 'closeOutput'): self.stream.closeOutput() ================================================ FILE: src/hwp5/plat/_uno/services.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # def create_service(context, name, *args): sm = context.ServiceManager if len(args) > 0: return sm.createInstanceWithArgumentsAndContext(name, args, context) else: return sm.createInstanceWithContext(name, context) class Namespace(object): def __init__(self, dotted_name): self.dotted_name = dotted_name def __getattr__(self, name): return Namespace(self.dotted_name + '.' + name) def __call__(self, context, *args): return create_service(context, self.dotted_name, *args) def bind(self, context): return ContextBoundNamespace(self, context) class ContextBoundNamespace(object): def __init__(self, namespace, context): self.namespace = namespace self.context = context def __getattr__(self, name): obj = getattr(self.namespace, name, None) if isinstance(obj, Namespace): return obj.bind(self.context) return obj def __call__(self, *args): return self.namespace(self.context, *args) def __iter__(self): context = self.context sm = context.ServiceManager prefix = self.dotted_name + '.' for name in sm.AvailableServiceNames: if name.startswith(prefix): basename = name[len(prefix):] if basename.find('.') == -1: yield basename css = Namespace('com.sun.star') ================================================ FILE: src/hwp5/plat/_uno/ucb.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # def open_url(context, url): ''' open InputStream from a URL. :param url: a URL to open an InputStream. :returns: an instance of InputStream ''' # see http://wiki.openoffice.org # /wiki/Documentation/DevGuide/UCB/Using_the_UCB_API from hwp5.plat._uno.services import css css = css.bind(context) ucb = css.ucb.UniversalContentBroker('Local', 'Office') content_id = ucb.createContentIdentifier(url) content = ucb.queryContent(content_id) import unohelper from com.sun.star.io import XActiveDataSink class DataSink(unohelper.Base, XActiveDataSink): def setInputStream(self, stream): self.stream = stream def getInputStream(self): return self.stream datasink = DataSink() from com.sun.star.ucb import Command, OpenCommandArgument2 openargs = OpenCommandArgument2() openargs.Mode = 2 # OpenMode.DOCUMENT openargs.Priority = 32768 openargs.Sink = datasink command = Command() command.Name = 'open' command.Handle = -1 command.Argument = openargs content.execute(command, 0, None) return datasink.stream ================================================ FILE: src/hwp5/plat/gir_gsf.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import logging from ..errors import InvalidOleStorageError try: bytes except NameError: bytes = str logger = logging.getLogger(__name__) def is_enabled(): try: from gi.repository import Gsf except Exception: return False else: Gsf return True def open(path): from gi.repository.Gsf import InputGio from gi.repository.Gsf import InfileMSOle inp = InputGio.new_for_path(path) return InfileMSOle.new(inp) def listdir(gsfole): for i in xrange(gsfole.num_children()): yield gsfole.name_by_index(i) class OleStorage: def __init__(self, gsfole): from gi.repository.Gsf import Input from gi.repository.Gsf import InfileMSOle if isinstance(gsfole, InfileMSOle): self.gsfole = gsfole elif isinstance(gsfole, Input): try: self.gsfole = InfileMSOle.new(gsfole) except Exception: raise InvalidOleStorageError() else: try: self.gsfole = open(gsfole) except Exception: raise InvalidOleStorageError() def __iter__(self): return listdir(self.gsfole) def __getitem__(self, name): child = self.gsfole.child_by_name(name) if child: if child.num_children() == -1: return OleStreamItem(self.gsfole, name) else: return OleStorage(child) else: raise KeyError(name) def close(self): del self.gsfole class OleStreamItem: def __init__(self, parent, name): self.__parent = parent self.__name = name def open(self): gsfole = self.__parent.child_by_name(self.__name) if gsfole: return OleStream(gsfole) else: raise IOError(self.__name) class OleStream: def __init__(self, gsfole): self.gsfole = gsfole def close(self): pass def read(self, size=None): pos = self.gsfole.tell() totalsize = self.gsfole.size if size is not None: if pos + size > totalsize: size = totalsize - pos else: size = totalsize - pos if size > 0: return self.gsfole.read(size) return bytes() def seek(self, offset, whence=0): from gi.repository.GLib import SeekType if whence == 0: whence = SeekType.SET elif whence == 1: whence = SeekType.CUR elif whence == 2: whence = SeekType.END else: raise ValueError(whence) self.gsfole.seek(offset, whence) def tell(self): return self.gsfole.tell() ================================================ FILE: src/hwp5/plat/javax_transform.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from contextlib import closing import io import logging import os.path import sys logger = logging.getLogger(__name__) def is_enabled(): if not sys.platform.startswith('java'): logger.info('%s: disabled', __name__) return False try: import javax.xml.transform javax except ImportError: logger.info('%s: disabled', __name__) return False else: logger.info('%s: enabled', __name__) return True def xslt(xsl_path, inp_path, out_path): transform = xslt_compile(xsl_path) with io.open(out_path, 'wb') as f: return transform(inp_path, f) class XSLT: def __init__(self, xsl_path, **params): from javax.xml.transform import URIResolver from javax.xml.transform import TransformerFactory from javax.xml.transform.stream import StreamSource from java.io import FileInputStream xsl_path = os.path.abspath(xsl_path) xsl_base = os.path.dirname(xsl_path) xsl_fis = FileInputStream(xsl_path) xsl_source = StreamSource(xsl_fis) class BaseURIResolver(URIResolver): def __init__(self, base): self.base = base def resolve(self, href, base): path = os.path.join(self.base, href) path = os.path.abspath(path) fis = FileInputStream(path) return StreamSource(fis) uri_resolver = BaseURIResolver(xsl_base) xslt_factory = TransformerFactory.newInstance() xslt_factory.setURIResolver(uri_resolver) self.transformer = xslt_factory.newTransformer(xsl_source) for k, v in params.items(): self.transformer.setParameter(k, unicode(v)) def transform(self, input, output): ''' >>> T.transform('input.xml', 'output.xml') ''' from java.io import FileInputStream from java.io import FileOutputStream out_path = os.path.abspath(output) inp_path = os.path.abspath(input) with closing(FileInputStream(inp_path)) as inp_fis: with closing(FileOutputStream(out_path)) as out_fos: return self._transform(inp_fis, out_fos) def transform_into_stream(self, input, output): ''' >>> T.transform('input.xml', sys.stdout) ''' from java.io import FileInputStream inp_path = os.path.abspath(input) with closing(FileInputStream(inp_path)) as inp_fis: out_fos = wrap_filelike_outputstream(output) return self._transform(inp_fis, out_fos) def _transform(self, input, output): from javax.xml.transform.stream import StreamSource from javax.xml.transform.stream import StreamResult inp_source = StreamSource(input) out_result = StreamResult(output) self.transformer.transform(inp_source, out_result) return dict() def xslt_compile(xsl_path, **params): xslt = XSLT(xsl_path, **params) return xslt.transform_into_stream def wrap_filelike_inputstream(f): from org.python.core import FilelikeInputStream return FilelikeInputStream(f) def wrap_filelike_outputstream(f): from java.io import OutputStream class FilelikeOutputStream(OutputStream): def write(self, *args): if len(args) == 1: # byte ch = chr(args[0] & 0xff) f.write(ch) if len(args) == 3: # array.array, offset, length array, offset, length = args buf = array.tostring() f.write(buf[offset:offset+length]) else: logger.debug('%r', args) self.super__write(*args) def flush(self): f.flush() def close(self): pass return FilelikeOutputStream() ================================================ FILE: src/hwp5/plat/jython_poifs.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import os.path import sys from ..errors import InvalidOleStorageError PY3 = sys.version_info.major == 3 if PY3: basestring = str def is_enabled(): try: from org.apache.poi.poifs.filesystem import POIFSFileSystem POIFSFileSystem # silencing return True except ImportError: return False class OleStorage(object): ''' Create an OleStorage instance. :param olefile: an OLE2 Compound Binary File. :raises: `InvalidOleStorageError` when `olefile` is not valid OLE2 format. ''' def __init__(self, olefile): from java.io import FileInputStream from java.io import IOException from org.apache.poi.poifs.filesystem import POIFSFileSystem from org.apache.poi.poifs.filesystem import DirectoryEntry if isinstance(olefile, basestring): path = os.path.abspath(olefile) fis = FileInputStream(path) try: fs = POIFSFileSystem(fis) except IOException as e: raise InvalidOleStorageError(e.getMessage()) entry = fs.getRoot() elif isinstance(olefile, DirectoryEntry): entry = olefile else: raise ValueError('invalid olefile') self.entry = entry def __iter__(self): return (entry.getName() for entry in self.entry.getEntries()) def __getitem__(self, name): from java.io import FileNotFoundException try: entry = self.entry.getEntry(name) except FileNotFoundException: raise KeyError('%s not found' % name) if entry.directoryEntry: return OleStorage(entry) elif entry.documentEntry: return OleStream(entry) else: raise KeyError('%s is invalid' % name) def close(self): return class OleStream(object): def __init__(self, entry): self.entry = entry def open(self): from org.apache.poi.poifs.filesystem import DocumentInputStream dis = DocumentInputStream(self.entry) return FileFromDocumentInputStream(dis) class FileFromDocumentInputStream(object): def __init__(self, dis): self.dis = dis self.size = dis.available() dis.mark(0) def read(self, size=None): import jarray dis = self.dis available = dis.available() if size is None: size = available elif size > available: size = available bytes = jarray.zeros(size, 'b') n_read = dis.read(bytes) data = bytes.tostring() if n_read < size: return data[:n_read] return data def seek(self, offset, whence=0): dis = self.dis if whence == 0: dis.reset() dis.skip(offset) elif whence == 1: dis.skip(offset) elif whence == 2: dis.reset() dis.skip(self.size - offset) else: raise ValueError('invalid whence: %s', whence) def tell(self): return self.size - self.dis.available() def close(self): return self.dis.close() ================================================ FILE: src/hwp5/plat/olefileio.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from ..errors import InvalidOleStorageError from ..utils import cached_property def is_enabled(): try: import olefile # noqa except Exception: pass else: return True try: import OleFileIO_PL # noqa except ImportError: pass else: return True return False def import_isOleFile(): try: from olefile import isOleFile except ImportError: pass else: return isOleFile try: from OleFileIO_PL import isOleFile except ImportError: pass else: return isOleFile def import_OleFileIO(): try: from olefile import OleFileIO except ImportError: pass else: return OleFileIO try: from OleFileIO_PL import OleFileIO except ImportError: pass else: return OleFileIO class OleStorageItem(object): def __init__(self, olefile, path, parent=None): self.olefile = olefile self.path = path # path DOES NOT end with '/' def get_name(self): if self.path == '': return None segments = self.path.split('/') return segments[-1] name = cached_property(get_name) class OleStream(OleStorageItem): def open(self): return self.olefile.openstream(self.path) class OleStorage(OleStorageItem): ''' Create an OleStorage instance. :param olefile: an OLE2 Compound Binary File. :type olefile: an OleFileIO instance or an argument to OleFileIO() :param path: internal path in the olefile. Should not end with '/'. :raises: `InvalidOleStorageError` when `olefile` is not valid OLE2 format. ''' def __init__(self, olefile, path='', parent=None): if not hasattr(olefile, 'openstream'): isOleFile = import_isOleFile() OleFileIO = import_OleFileIO() if not isOleFile(olefile): errormsg = 'Not an OLE2 Compound Binary File.' raise InvalidOleStorageError(errormsg) olefile = OleFileIO(olefile) OleStorageItem.__init__(self, olefile, path, parent) def __iter__(self): return olefile_listdir(self.olefile, self.path) def __getitem__(self, name): if self.path == '' or self.path == '/': path = name else: path = self.path + '/' + name if not self.olefile.exists(path): raise KeyError('%s not found' % path) t = self.olefile.get_type(path) if t == 1: # Storage return OleStorage(self.olefile, path, self) elif t == 2: # Stream return OleStream(self.olefile, path, self) else: raise KeyError('%s is invalid' % path) def close(self): # if this is root, close underlying olefile if self.path == '': # old version of OleFileIO has no close() if hasattr(self.olefile, 'close'): self.olefile.close() def olefile_listdir(olefile, path): if path == '' or path == '/': # we use a list instead of a set # for python 2.3 compatibility yielded = [] for stream in olefile.listdir(): top_item = stream[0] if top_item in yielded: continue yielded.append(top_item) yield top_item return if not olefile.exists(path): raise IOError('%s not exists' % path) if olefile.get_type(path) != 1: raise IOError('%s not a storage' % path) path_segments = path.split('/') for stream in olefile.listdir(): if len(stream) == len(path_segments) + 1: if stream[:-1] == path_segments: yield stream[-1] ================================================ FILE: src/hwp5/plat/xmllint.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from contextlib import contextmanager from subprocess import CalledProcessError import logging import subprocess logger = logging.getLogger(__name__) executable = 'xmllint' enabled = None def xmllint_reachable(): args = [executable, '--version'] try: subprocess.check_output(args) except OSError: return False except CalledProcessError: return False except Exception as e: logger.exception(e) return False else: return True def is_enabled(): global enabled if enabled is None: enabled = xmllint_reachable() return enabled def enable(): global enabled enabled = True def disable(): global enabled enabled = False def relaxng(rng_path, inp_path): from subprocess import Popen args = [executable, '--noout', '--relaxng', rng_path, inp_path] p = Popen(args) p.wait() return p.returncode == 0 def relaxng_compile(rng_path): return RelaxNG(rng_path) class RelaxNG: def __init__(self, rng_path): self.rng_path = rng_path @contextmanager def validating_output(self, output): args = [executable, '--relaxng', self.rng_path, '-'] p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=output) try: yield p.stdin except: p.stdin.close() p.wait() raise else: p.stdin.close() p.wait() if p.returncode != 0: raise Exception('RelaxNG validation failed') ================================================ FILE: src/hwp5/plat/xsltproc.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from subprocess import CalledProcessError from subprocess import Popen import logging import subprocess logger = logging.getLogger(__name__) executable = 'xsltproc' enabled = None def xslt_reachable(): args = [executable, '--version'] try: subprocess.check_output(args) except OSError: return False except CalledProcessError: return False except Exception as e: logger.exception(e) return False else: return True def is_enabled(): global enabled if enabled is None: enabled = xslt_reachable() return enabled def enable(): global enabled enabled = True def disable(): global enabled enabled = False def xslt(xsl_path, inp_path, out_path): xslt = XSLT(xsl_path) return xslt.transform(inp_path, out_path) class XSLT: def __init__(self, xsl_path, **params): self.xsl_path = xsl_path self.cmd = [executable] for name, value in params.items(): self.cmd.extend(['--stringparam', name, value]) def transform(self, input, output): ''' >>> T.transform('input.xml', 'output.xml') ''' cmd = self.cmd + ['-o', output, self.xsl_path, input] logger.info('%r', cmd) p = Popen(cmd) p.wait() if p.returncode == 0: return dict() else: return dict(errors=[]) def transform_into_stream(self, input, output): ''' >>> T.transform_into_stream('input.xml', sys.stdout) ''' cmd = self.cmd + [self.xsl_path, input] logger.info('%r', cmd) p = Popen(cmd, stdout=output) p.wait() if p.returncode == 0: return dict() else: return dict(errors=[]) def xslt_compile(xsl_path, **params): xslt = XSLT(xsl_path, **params) return xslt.transform_into_stream ================================================ FILE: src/hwp5/proc/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals ================================================ FILE: src/hwp5/proc/cat.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import sys from ..cli import open_hwpfile from ..storage import open_storage_item PY2 = sys.version_info.major == 2 def main(args): if PY2: output_fp = sys.stdout else: output_fp = sys.stdout.buffer hwp5file = open_hwpfile(args) stream = open_storage_item(hwp5file, args.stream) f = stream.open() try: while True: data = f.read(4096) if data: output_fp.write(data) else: return finally: if hasattr(f, 'close'): f.close() def cat_argparser(subparsers, _): parser = subparsers.add_parser( 'cat', help=_( 'Extract out internal streams of .hwp files' ), description=_( 'Extract out the specified stream in the ' 'to the standard output.' ) ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.add_argument( 'stream', metavar='', help=_('Internal path of a stream to extract'), ) mutex_group = parser.add_mutually_exclusive_group() mutex_group.add_argument( '--vstreams', action='store_true', help=_( 'Process with virtual streams (i.e. parsed/converted form of ' 'real streams)' ) ) mutex_group.add_argument( '--ole', action='store_true', help=_( 'Treat as an OLE Compound File. As a result, ' 'some streams will be presented as-is. (i.e. not decompressed)' ) ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/diststream.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ''' Decode distribute doc stream. Usage:: hwp5proc diststream hwp5proc diststream sha1 [--raw] hwp5proc diststream key [--raw] hwp5proc diststream [--loglevel=] [--logfile=] hwp5proc diststream --help Options:: -h --help Show this screen --loglevel= Set log level. --logfile= Set log file. Example:: $ hwp5proc cat --ole samples/viewtext.hwp ViewText/Section0 | tee Section0.zraw.aes128ecb | hwp5proc diststream | tee Section0.zraw | hwp5proc rawunz > Section0 $ hwp5proc diststream sha1 < Section0.zraw.aes128ecb $ echo -n '12345' | sha1sum ''' from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from binascii import b2a_hex from binascii import a2b_hex import logging import shutil import sys from ..distdoc import decode from ..distdoc import decode_head_to_sha1 from ..distdoc import decode_head_to_key from ..recordstream import read_record PY2 = sys.version_info.major == 2 logger = logging.getLogger(__name__) def main(args): if PY2: input_fp = sys.stdin output_fp = sys.stdout else: input_fp = sys.stdin.buffer output_fp = sys.stdout.buffer if args.sha1: head = read_record(input_fp, 0) sha1ucs16le = decode_head_to_sha1(head['payload']) sha1 = a2b_hex(sha1ucs16le.decode('utf-16le')) if not args.raw: sha1 = b2a_hex(sha1) output_fp.write(sha1) elif args.key: head = read_record(input_fp, 0) key = decode_head_to_key(head['payload']) if not args.raw: key = b2a_hex(key) output_fp.write(key) else: result = decode(input_fp) shutil.copyfileobj(result, output_fp) def diststream_argparser(subparsers, _): parser = subparsers.add_parser( 'diststream', help=_( 'Decode a distribute document stream.' ), description=_( 'Decode a distribute document stream.' ), ) op_group = parser.add_mutually_exclusive_group() op_group.add_argument( '--sha1', action='store_true', help=_('Print SHA-1 value for decryption.'), ) op_group.add_argument( '--key', action='store_true', help=_('Print decrypted key.'), ) parser.add_argument( '--raw', action='store_true', help=_('Print raw binary objects as is.'), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/find.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ''' Find record models with specified predicates. Usage:: hwp5proc find [--model= | --tag=] [--incomplete] [--dump] [--format=] [--loglevel=] [--logfile=] (--from-stdin | ...) hwp5proc find --help Options:: -h --help Show this screen --loglevel= Set log level. --logfile= Set log file. --from-stdin get filenames fro stdin --model= filter with record model name --tag= filter with record HWPTAG --incomplete filter with incompletely parsed content --format= record output format %(filename)s %(stream)s %(seqno)s %(type)s --dump dump record ... HWPv5 files (*.hwp) Example: Find paragraphs:: $ hwp5proc find --model=Paragraph samples/*.hwp $ hwp5proc find --tag=HWPTAG_PARA_TEXT samples/*.hwp $ hwp5proc find --tag=66 samples/*.hwp Example: Find and dump records of ``HWPTAG_LIST_HEADER`` which is parsed incompletely:: $ hwp5proc find --tag=HWPTAG_LIST_HEADER --incomplete --dump samples/*.hwp ''' from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from functools import partial import logging import itertools import sys from ..binmodel import Hwp5File from ..binmodel import model_to_json from ..bintype import log_events from ..dataio import ParseError from ..tagids import tagnames PY2 = sys.version_info.major == 2 if PY2: ifilter = itertools.ifilter imap = itertools.imap else: ifilter = filter imap = map logger = logging.getLogger(__name__) def main(args): filenames = filenames_from_args(args) conditions = list(conditions_from_args(args)) filter_conditions = partial( ifilter, lambda m: all(condition(m) for condition in conditions) ) print_model = printer_from_args(args) for filename in filenames: try: models = hwp5file_models(filename) models = filter_conditions(models) for model in models: print_model(model) except ParseError as e: logger.error('---- On processing %s:', filename) e.print_to_logger(logger) def find_argparser(subparsers, _): parser = subparsers.add_parser( 'find', help=_( 'Find record models with specified predicates.' ), description=_( 'Find record models with specified predicates.' ), ) parser.add_argument( 'hwp5files', nargs='*', metavar='', help=_('.hwp files to analyze'), ) parser.add_argument( '--from-stdin', action='store_true', help=_('get filenames from stdin'), ) filter_group = parser.add_mutually_exclusive_group() filter_group.add_argument( '--model', metavar='', help=_( 'filter with record model name' ), ) filter_group.add_argument( '--tag', metavar='', help=_( 'filter with record HWPTAG' ), ) parser.add_argument( '--incomplete', action='store_true', help=_('filter with incompletely parsed content'), ) parser.add_argument( '--format', metavar='', help=_( 'record output format' ), ) parser.add_argument( '--dump', action='store_true', help=_('dump record'), ) parser.set_defaults(func=main) return parser def filenames_from_args(args): if args.from_stdin: return filenames_from_stdin(args) return args.hwp5files def filenames_from_stdin(args): return imap(lambda line: line[:-1], sys.stdin) def conditions_from_args(args): if args.model: def with_model_name(model): return args.model == model['type'].__name__ yield with_model_name if args.tag: tag = args.tag try: tag = int(tag) except ValueError: pass else: tag = tagnames[tag] def with_tag(model): return model['tagname'] == tag yield with_tag if args.incomplete: def with_incomplete(model): return 'unparsed' in model yield with_incomplete def hwp5file_models(filename): hwp5file = Hwp5File(filename) for model in flat_models(hwp5file): model['filename'] = filename yield model def flat_models(hwp5file, **kwargs): for model in hwp5file.docinfo.models(**kwargs): model['stream'] = 'DocInfo' yield model for section in hwp5file.bodytext: for model in hwp5file.bodytext[section].models(**kwargs): model['stream'] = 'BodyText/' + section yield model def printer_from_args(args): if args.format: fmt = args.format else: fmt = '%(filename)s %(stream)s %(seqno)s %(tagname)s %(type)s' dump = args.dump def print_model(model): printable_model = dict(model, type=model['type'].__name__) print(fmt % printable_model) if dump: print(model_to_json(model, sort_keys=True, indent=2)) def print_log(fmt, *args): print(fmt % args) list(log_events(model['binevents'], print_log)) return print_model ================================================ FILE: src/hwp5/proc/header.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import shutil import sys PY2 = sys.version_info.major == 2 def main(args): if PY2: output_fp = sys.stdout else: output_fp = sys.stdout.buffer from hwp5.filestructure import Hwp5File hwp5file = Hwp5File(args.hwp5file) f = hwp5file.header.open_text() try: shutil.copyfileobj(f, output_fp) finally: hwp5file.close() def header_argparser(subparsers, _): parser = subparsers.add_parser( 'header', help=_('Print file headers of .hwp files.'), description=_('Print the file header of .'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/ls.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ''' List streams in the . Usage:: hwp5proc ls [--loglevel=] [--logfile=] [--vstreams | --ole] hwp5proc ls --help Options:: -h --help Show this screen --loglevel= Set log level. --logfile= Set log file. --vstreams Process with virtual streams (i.e. parsed/converted form of real streams) --ole Treat as an OLE Compound File. As a result, some streams will be presented as-is. (i.e. not decompressed) Example: List without virtual streams:: $ hwp5proc ls sample/sample-5017.hwp \\x05HwpSummaryInformation BinData/BIN0002.jpg BinData/BIN0002.png BinData/BIN0003.png BodyText/Section0 DocInfo DocOptions/_LinkDoc FileHeader PrvImage PrvText Scripts/DefaultJScript Scripts/JScriptVersion Example: List virtual streams too:: $ hwp5proc ls --vstreams sample/sample-5017.hwp \\x05HwpSummaryInformation \\x05HwpSummaryInformation.txt BinData/BIN0002.jpg BinData/BIN0002.png BinData/BIN0003.png BodyText/Section0 BodyText/Section0.models BodyText/Section0.records BodyText/Section0.xml BodyText.xml DocInfo DocInfo.models DocInfo.records DocInfo.xml DocOptions/_LinkDoc FileHeader FileHeader.txt PrvImage PrvText PrvText.utf8 Scripts/DefaultJScript Scripts/JScriptVersion ''' from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from ..storage import printstorage from ..cli import open_hwpfile def main(args): hwpfile = open_hwpfile(args) printstorage(hwpfile) def ls_argparser(subparsers, _): parser = subparsers.add_parser( 'ls', help=_('List streams in .hwp files.'), description=_('List streams in the .'), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) mutex_group = parser.add_mutually_exclusive_group() mutex_group.add_argument( '--vstreams', action='store_true', help=_( 'Process with virtual streams (i.e. parsed/converted form of ' 'real streams)' ) ) mutex_group.add_argument( '--ole', action='store_true', help=_( 'Treat as an OLE Compound File. As a result, ' 'some streams will be presented as-is. (i.e. not decompressed)' ) ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/models.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from itertools import islice import sys from ..binmodel import Hwp5File from ..binmodel import ModelStream from ..binmodel import RecordModel from ..binmodel import model_to_json from ..cli import parse_recordstream_name from ..dataio import hexdump from ..storage import Open2Stream from ..treeop import ENDEVENT from ..utils import generate_json_array from ..utils import unicode_unescape PY2 = sys.version_info.major == 2 def main(args): stream = stream_from_args(args) if args.events: for event, item in stream.parse_model_events(): type = item['type'].__name__ if event is not None: if item['type'] is RecordModel: record = item['record'] fmt = ' %s Record %s level=%s %s' print(fmt % (event.__name__, record['seqno'], record['level'], record['tagname'])) if event is ENDEVENT: leftover = item['leftover'] print('%04x' % leftover['offset']) if len(leftover['bytes']): print('') print('leftover:') print(hexdump(leftover['bytes'])) print('-' * 20) else: print(' ', event.__name__, type, item.get('name', '')) else: offset = item['bin_offset'] name = item.get('name', '-') value = item.get('value', '-') print('%04x' % offset, type, name, repr(value)) return models_from_stream = models_from_args(args) models = models_from_stream(stream) print_models = print_models_from_args(args) print_models(models) def models_argparser(subparsers, _): parser = subparsers.add_parser( 'models', help=_( 'Print parsed binary models of .hwp file record streams.' ), description=_( 'Print parsed binary models in the specified .' ), ) parser.add_argument( 'hwp5file', nargs='?', metavar='', help=_('.hwp file to analyze'), ) parser.add_argument( 'record_stream', nargs='?', metavar='', help=_( 'Record-structured internal streams.\n' '(e.g. DocInfo, BodyText/*)\n' ), ) parser.add_argument( '--file-format-version', '-V', metavar='', help=_( 'Specifies HWPv5 file format version of the standard input stream' ), ) output_formats = parser.add_mutually_exclusive_group() output_formats.add_argument( '--simple', action='store_true', help=_( 'Print records as simple tree' ) ) output_formats.add_argument( '--json', action='store_true', help=_( 'Print records as json' ) ) output_formats.add_argument( '--format', metavar='', help=_( 'Print records formatted' ) ) output_formats.add_argument( '--events', action='store_true', help=_( 'Print records as events' ) ) subset = parser.add_mutually_exclusive_group() subset.add_argument( '--treegroup', metavar='', help=_( 'Specifies the N-th subtree of the record structure.' ) ) subset.add_argument( '--seqno', metavar='', help=_( 'Print a model of -th record' ) ) parser.set_defaults(func=main) return parser def stream_from_args(args): filename = args.hwp5file if filename: # TODO: args.record_stream is None streamname = args.record_stream hwpfile = Hwp5File(filename) return parse_recordstream_name(hwpfile, streamname) else: version = args.file_format_version or '5.0.0.0' version = version.split('.') version = tuple(int(x) for x in version) if PY2: stdin_binary = sys.stdin else: stdin_binary = sys.stdin.buffer return ModelStream(Open2Stream(lambda: stdin_binary), version) def models_from_args(args): if args.treegroup: treegroup = int(args.treegroup) return lambda stream: stream.models(treegroup=treegroup) if args.seqno: seqno = int(args.seqno) return lambda stream: islice(stream.models(), seqno, seqno + 1) return lambda stream: stream.models() def print_models_from_args(args): if args.simple: return print_models_with_print_model(print_model_simple) if args.format: fmt = args.format fmt = unicode_unescape(fmt) print_model = print_model_with_format(fmt) return print_models_with_print_model(print_model) return print_models_json def print_models_json(models): jsonobjects = (model_to_json(model, sort_keys=True, indent=2) for model in models) for s in generate_json_array(jsonobjects): sys.stdout.write(s) def print_models_with_print_model(print_model): def models_printer(models): for model in models: print_model(model) return models_printer def print_model_simple(model): sys.stdout.write('%04d ' % model['seqno']) sys.stdout.write(' ' * model['level'] + model['type'].__name__) sys.stdout.write('\n') def print_model_with_format(fmt): def print_model(model): model = transform_model_formattable(model) sys.stdout.write(fmt % model) return print_model def transform_model_formattable(model): return dict(model, type=model['type'].__name__) ================================================ FILE: src/hwp5/proc/rawunz.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import sys import shutil from ..zlib_raw_codec import StreamReader PY2 = sys.version_info.major == 2 def main(args): if PY2: input_fp = sys.stdin output_fp = sys.stdout else: input_fp = sys.stdin.buffer output_fp = sys.stdout.buffer stream = StreamReader(input_fp) shutil.copyfileobj(stream, output_fp) def rawunz_argparser(subparsers, _): parser = subparsers.add_parser( 'rawunz', help=_( 'Deflate an headerless zlib-compressed stream' ), description=_( 'Deflate an headerless zlib-compressed stream' ), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/records.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import sys from ..cli import parse_recordstream_name from ..recordstream import Hwp5File from ..recordstream import RecordStream from ..recordstream import encode_record_header from ..recordstream import dump_record from ..storage import Open2Stream PY2 = sys.version_info.major == 2 def main(args): if PY2: stdout_text = sys.stdout stdout_binary = sys.stdout else: stdout_text = sys.stdout stdout_binary = sys.stdout.buffer filename = args.hwp5file if filename: hwpfile = Hwp5File(filename) # TODO: args.record_stream is None streamname = args.record_stream stream = parse_recordstream_name(hwpfile, streamname) else: stream = RecordStream(Open2Stream(lambda: sys.stdin), None) opts = dict() rng = args.range if rng: rng = rng.split('-', 1) rng = tuple(int(x) for x in rng) if len(rng) == 1: rng = (rng[0], rng[0] + 1) opts['range'] = rng treegroup = args.treegroup if treegroup is not None: opts['treegroup'] = int(treegroup) if args.simple: for record in stream.records(**opts): stdout_text.write('{:04d} {} {}\n'.format( record['seqno'], ' ' * record['level'], record['tagname'], )) elif args.raw: for record in stream.records(**opts): dump_record(stdout_binary, record) elif args.raw_header: for record in stream.records(**opts): hdr = encode_record_header(record) stdout_binary.write(hdr) elif args.raw_payload: for record in stream.records(**opts): stdout_binary.write(record['payload']) else: stream.records_json(**opts).dump(stdout_text) def records_argparser(subparsers, _): parser = subparsers.add_parser( 'records', help=_( 'Print the record structure of .hwp file record streams.' ), description=_( 'Print the record structure of the specified stream.' ), ) parser.add_argument( 'hwp5file', nargs='?', metavar='', help=_('.hwp file to analyze'), ) parser.add_argument( 'record_stream', nargs='?', metavar='', help=_( 'Record-structured internal streams.\n' '(e.g. DocInfo, BodyText/*)\n' ), ) output_formats = parser.add_mutually_exclusive_group() output_formats.add_argument( '--simple', action='store_true', help=_( 'Print records as simple tree' ) ) output_formats.add_argument( '--json', action='store_true', help=_( 'Print records as json' ) ) output_formats.add_argument( '--raw', action='store_true', help=_( 'Print records as is' ) ) output_formats.add_argument( '--raw-header', action='store_true', help=_( 'Print record headers as is' ) ) output_formats.add_argument( '--raw-payload', action='store_true', help=_( 'Print record payloads as is' ) ) subset = parser.add_mutually_exclusive_group() subset.add_argument( '--range', metavar='', help=_( 'Specifies the range of the records.\n' 'N-M means "from the record N to M-1 (excluding M)"\n' 'N means just the record N\n' ) ) subset.add_argument( '--treegroup', metavar='', help=_( 'Specifies the N-th subtree of the record structure.' ) ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/summaryinfo.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import sys from ..filestructure import Hwp5File from ..summaryinfo import HwpSummaryInfoTextFormatter PY2 = sys.version_info.major == 2 def main(args): if PY2: output_fp = sys.stdout else: output_fp = sys.stdout.buffer formatter = HwpSummaryInfoTextFormatter() hwpfile = Hwp5File(args.hwp5file) try: for textline in formatter.formatTextLines(hwpfile.summaryinfo): line = textline.encode('utf-8') output_fp.write(line) output_fp.write(b'\n') finally: hwpfile.close() def summaryinfo_argparser(subparsers, _): parser = subparsers.add_parser( 'summaryinfo', help=_( 'Print summary informations of .hwp files.' ), description=_( 'Print the summary information of .' ), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/unpack.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import os.path from .. import storage from ..cli import open_hwpfile def main(args): filename = args.hwp5file hwp5file = open_hwpfile(args) outdir = args.out_directory if outdir is None: outdir, ext = os.path.splitext(os.path.basename(filename)) if not os.path.exists(outdir): os.mkdir(outdir) storage.unpack(hwp5file, outdir) def unpack_argparser(subparsers, _): parser = subparsers.add_parser( 'unpack', help=_( 'Extract out internal streams of .hwp files into a directory.' ), description=_( 'Extract out streams in the specified ' 'to a directory.' ) ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.add_argument( 'out_directory', nargs='?', metavar='', help=_('Output directory'), ) mutex_group = parser.add_mutually_exclusive_group() mutex_group.add_argument( '--vstreams', action='store_true', help=_( 'Process with virtual streams (i.e. parsed/converted form of ' 'real streams)' ) ) mutex_group.add_argument( '--ole', action='store_true', help=_( 'Treat as an OLE Compound File. As a result, ' 'some streams will be presented as-is. (i.e. not decompressed)' ) ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/version.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from ..filestructure import Hwp5File def main(args): hwp5file = Hwp5File(args.hwp5file) h = hwp5file.fileheader print('%d.%d.%d.%d' % h.version) def version_argparser(subparsers, _): parser = subparsers.add_parser( 'version', help=_( 'Print the file format version of .hwp files.' ), description=_( 'Print the file format version of .' ), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/proc/xml.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from functools import partial import logging from ..utils import make_open_dest_file from ..utils import wrap_open_dest_for_tty from ..utils import wrap_open_dest from ..utils import pager from ..utils import syntaxhighlight from ..utils import xmllint from ..xmldump_flat import xmldump_flat from ..xmlmodel import Hwp5File logger = logging.getLogger(__name__) def xmldump_nested(hwp5file, output, embedbin=False, xml_declaration=True): dump = hwp5file.xmlevents(embedbin=embedbin).dump dump = partial(dump, xml_declaration=xml_declaration) dump(output) def main(args): ''' Transform into an XML. ''' fmt = args.format or 'nested' if fmt == 'flat': xmldump = partial( xmldump_flat, xml_declaration=not args.no_xml_decl ) elif fmt == 'nested': xmldump = partial( xmldump_nested, xml_declaration=not args.no_xml_decl, embedbin=args.embedbin, ) open_dest = make_open_dest_file(args.output) open_dest = wrap_open_dest_for_tty(open_dest, [ pager(), syntaxhighlight('application/xml'), ] + ([ xmllint(format=True), ] if not args.no_validate_wellformed else [])) open_dest = wrap_open_dest(open_dest, [ xmllint(encode='utf-8'), xmllint(c14n=True), ] if not args.no_validate_wellformed else []) hwp5file = Hwp5File(args.hwp5file) with open_dest() as output: xmldump(hwp5file, output) def xml_argparser(subparsers, _): parser = subparsers.add_parser( 'xml', help=_( 'Transform .hwp files into an XML.' ), description=_( 'Transform into an XML.' ), ) parser.add_argument( 'hwp5file', metavar='', help=_('.hwp file to analyze'), ) parser.add_argument( '--embedbin', action='store_true', help=_('Embed BinData/* streams in the output XML.'), ) parser.add_argument( '--no-xml-decl', action='store_true', help=_('Do not output XML declaration.'), ) parser.add_argument( '--output', metavar='', help=_('Output filename.'), ) parser.add_argument( '--format', metavar='', help=_('"flat", "nested" (default: "nested")'), ) parser.add_argument( '--no-validate-wellformed', action='store_true', help=_('Do not validate well-formedness of output.'), ) parser.set_defaults(func=main) return parser ================================================ FILE: src/hwp5/recordstream.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from itertools import islice import json import struct from . import dataio from . import filestructure from .dataio import dumpbytes from .dataio import Eof from .dataio import UINT32 from .tagids import HWPTAG_BEGIN from .tagids import tagnames from .utils import JsonObjects def tagname(tagid): return tagnames.get(tagid, 'HWPTAG%d' % (tagid - HWPTAG_BEGIN)) def Record(tagid, level, payload, size=None, seqno=None): if size is None: size = len(payload) d = dict(tagid=tagid, tagname=tagname(tagid), level=level, size=size, payload=payload) if seqno is not None: d['seqno'] = seqno return d def decode_record_header(f): try: # TagID, Level, Size rechdr = UINT32.read(f) tagid = rechdr & 0x3ff level = (rechdr >> 10) & 0x3ff size = (rechdr >> 20) & 0xfff if size == 0xfff: size = UINT32.read(f) return (tagid, level, size) except Eof: return None def encode_record_header(rec): size = len(rec['payload']) level = rec['level'] tagid = rec['tagid'] if size < 0xfff: hdr = (size << 20) | (level << 10) | tagid return struct.pack(' # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import io import os.path import sys PY3 = sys.version_info.major == 3 if PY3: basestring = str def is_storage(item): return hasattr(item, '__iter__') and hasattr(item, '__getitem__') def is_stream(item): return hasattr(item, 'open') and callable(item.open) class ItemWrapper(object): def __init__(self, wrapped): self.wrapped = wrapped def __getattr__(self, name): return getattr(self.wrapped, name) class StorageWrapper(ItemWrapper): def __iter__(self): return iter(self.wrapped) def __getitem__(self, name): return self.wrapped[name] class ItemConversionStorage(StorageWrapper): def __getitem__(self, name): item = self.wrapped[name] # 기반 스토리지에서 찾은 아이템에 대해, conversion()한다. conversion = self.resolve_conversion_for(name) if conversion: return conversion(item) return item def resolve_conversion_for(self, name): ''' return a conversion function for the specified storage item ''' pass class ExtraItemStorage(StorageWrapper): def __iter__(self): for name in self.wrapped: yield name item = self.wrapped[name] if hasattr(item, 'other_formats'): other_formats = item.other_formats() if other_formats: for ext in other_formats: yield name + ext def __getitem__(self, name): try: item = self.wrapped[name] if is_storage(item): item = ExtraItemStorage(item) return item except KeyError: # 기반 스토리지에는 없으므로, other_formats() 중에서 찾아본다. for root in self.wrapped: item = self.wrapped[root] if hasattr(item, 'other_formats'): other_formats = item.other_formats() if other_formats: for ext, func in other_formats.items(): if root + ext == name: return Open2Stream(func) raise class Open2Stream(object): def __init__(self, open): self.open = open def iter_storage_leafs(stg, basepath=''): ''' iterate every leaf nodes in the storage stg: an instance of Storage ''' for name in stg: path = basepath + name item = stg[name] if is_storage(item): for x in iter_storage_leafs(item, path + '/'): yield x else: yield path def unpack(stg, outbase): ''' unpack a storage into outbase directory stg: an instance of Storage outbase: path to a directory in filesystem (should not end with '/') ''' for name in stg: outpath = os.path.join(outbase, name) item = stg[name] if is_storage(item): if not os.path.exists(outpath): os.mkdir(outpath) unpack(item, outpath) else: f = item.open() try: outpath = outpath.replace('\x05', '_05') with io.open(outpath, 'wb') as outfile: outfile.write(f.read()) finally: f.close() def open_storage_item(stg, path): if isinstance(path, basestring): path_segments = path.split('/') else: path_segments = path item = stg for name in path_segments: item = item[name] return item def printstorage(stg, basepath=''): names = list(stg) names.sort() for name in names: path = basepath + name item = stg[name] if is_storage(item): printstorage(item, path + '/') elif is_stream(item): print(path.encode('unicode_escape').decode('utf-8')) ================================================ FILE: src/hwp5/storage/fs.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import io import os.path class FileSystemStorage(object): ''' Directory-based stroage. ''' def __init__(self, path): self.path = path def __iter__(self): return iter(sorted(os.listdir(self.path))) def __getitem__(self, name): path = os.path.join(self.path, name) if os.path.isdir(path): return FileSystemStorage(path) elif os.path.exists(path): return FileSystemStream(path) else: raise KeyError(name) class FileSystemStream(object): ''' File-based stream. ''' def __init__(self, path): self.path = path def open(self): return io.open(self.path, 'rb') ================================================ FILE: src/hwp5/storage/ole.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import logging from ..plat import get_olestorage_class logger = logging.getLogger(__name__) class OleStorage(object): def __init__(self, *args, **kwargs): impl_class = get_olestorage_class() assert impl_class is not None, 'no OleStorage implementation available' self.impl = impl_class(*args, **kwargs) def __iter__(self): return self.impl.__iter__() def __getitem__(self, name): return self.impl.__getitem__(name) def __getattr__(self, name): return getattr(self.impl, name) ================================================ FILE: src/hwp5/summaryinfo.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from uuid import UUID from .msoleprops import PropertyIdentifier from .msoleprops import RESERVED_PROPERTIES from .msoleprops import SUMMARY_INFORMATION_PROPERTIES CLSID_HWP_SUMMARY_INFORMATION = UUID( '9fa2b660-1061-11d4-b4c6-006097c09d8c' ) FMTID_HWP_SUMMARY_INFORMATION = CLSID_HWP_SUMMARY_INFORMATION HWPPIDSI_DATE_STR = PropertyIdentifier( id=0x00000014, label='HWPPIDSI_DATE_STR', ) HWPPIDSI_PARACOUNT = PropertyIdentifier( id=0x00000015, label='HWPPIDSI_PARACOUNT', ) HWP_PROPERTIES = RESERVED_PROPERTIES + SUMMARY_INFORMATION_PROPERTIES + ( HWPPIDSI_DATE_STR, HWPPIDSI_PARACOUNT, ) class HwpSummaryInfoTextFormatter(object): def formatTextLines(self, hwpsummaryinfo): yield 'Title: {}'.format(hwpsummaryinfo.title) yield 'Subject: {}'.format(hwpsummaryinfo.subject) yield 'Author: {}'.format(hwpsummaryinfo.author) yield 'Keywords: {}'.format(hwpsummaryinfo.keywords) yield 'Comments: {}'.format(hwpsummaryinfo.comments) yield 'Last saved by: {}'.format(hwpsummaryinfo.lastSavedBy) yield 'Revision Number: {}'.format(hwpsummaryinfo.revisionNumber) yield 'Last Printed at: {}'.format(hwpsummaryinfo.lastPrintedTime) yield 'Created at: {}'.format(hwpsummaryinfo.createdTime) yield 'Last saved at: {}'.format(hwpsummaryinfo.lastSavedTime) yield 'Number of pages: {}'.format(hwpsummaryinfo.numberOfPages) yield 'Date: {}'.format(hwpsummaryinfo.dateString) yield 'Number of paragraphs: {}'.format( hwpsummaryinfo.numberOfParagraphs ) ================================================ FILE: src/hwp5/tagids.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals HWPTAG_BEGIN = 0x010 tagnames = { # DocInfo Records HWPTAG_BEGIN + 0: 'HWPTAG_DOCUMENT_PROPERTIES', HWPTAG_BEGIN + 1: 'HWPTAG_ID_MAPPINGS', HWPTAG_BEGIN + 2: 'HWPTAG_BIN_DATA', HWPTAG_BEGIN + 3: 'HWPTAG_FACE_NAME', HWPTAG_BEGIN + 4: 'HWPTAG_BORDER_FILL', HWPTAG_BEGIN + 5: 'HWPTAG_CHAR_SHAPE', HWPTAG_BEGIN + 6: 'HWPTAG_TAB_DEF', HWPTAG_BEGIN + 7: 'HWPTAG_NUMBERING', HWPTAG_BEGIN + 8: 'HWPTAG_BULLET', HWPTAG_BEGIN + 9: 'HWPTAG_PARA_SHAPE', HWPTAG_BEGIN + 10: 'HWPTAG_STYLE', HWPTAG_BEGIN + 11: 'HWPTAG_DOC_DATA', HWPTAG_BEGIN + 12: 'HWPTAG_DISTRIBUTE_DOC_DATA', # HWPTAG_BEGIN + 13: RESERVED, HWPTAG_BEGIN + 14: 'HWPTAG_COMPATIBLE_DOCUMENT', HWPTAG_BEGIN + 15: 'HWPTAG_LAYOUT_COMPATIBILITY', HWPTAG_BEGIN + 16: 'HWPTAG_BEGIN_PLUS_16', # Section Records HWPTAG_BEGIN + 50: 'HWPTAG_PARA_HEADER', HWPTAG_BEGIN + 51: 'HWPTAG_PARA_TEXT', HWPTAG_BEGIN + 52: 'HWPTAG_PARA_CHAR_SHAPE', HWPTAG_BEGIN + 53: 'HWPTAG_PARA_LINE_SEG', HWPTAG_BEGIN + 54: 'HWPTAG_PARA_RANGE_TAG', HWPTAG_BEGIN + 55: 'HWPTAG_CTRL_HEADER', HWPTAG_BEGIN + 56: 'HWPTAG_LIST_HEADER', HWPTAG_BEGIN + 57: 'HWPTAG_PAGE_DEF', HWPTAG_BEGIN + 58: 'HWPTAG_FOOTNOTE_SHAPE', HWPTAG_BEGIN + 59: 'HWPTAG_PAGE_BORDER_FILL', HWPTAG_BEGIN + 60: 'HWPTAG_SHAPE_COMPONENT', HWPTAG_BEGIN + 61: 'HWPTAG_TABLE', HWPTAG_BEGIN + 62: 'HWPTAG_SHAPE_COMPONENT_LINE', HWPTAG_BEGIN + 63: 'HWPTAG_SHAPE_COMPONENT_RECTANGLE', HWPTAG_BEGIN + 64: 'HWPTAG_SHAPE_COMPONENT_ELLIPSE', HWPTAG_BEGIN + 65: 'HWPTAG_SHAPE_COMPONENT_ARC', HWPTAG_BEGIN + 66: 'HWPTAG_SHAPE_COMPONENT_POLYGON', HWPTAG_BEGIN + 67: 'HWPTAG_SHAPE_COMPONENT_CURVE', HWPTAG_BEGIN + 68: 'HWPTAG_SHAPE_COMPONENT_OLE', HWPTAG_BEGIN + 69: 'HWPTAG_SHAPE_COMPONENT_PICTURE', HWPTAG_BEGIN + 70: 'HWPTAG_SHAPE_COMPONENT_CONTAINER', HWPTAG_BEGIN + 71: 'HWPTAG_CTRL_DATA', HWPTAG_BEGIN + 72: 'HWPTAG_CTRL_EQEDIT', # HWPTAG_BEGIN + 73: RESERVED HWPTAG_BEGIN + 74: 'HWPTAG_SHAPE_COMPONENT_TEXTART', HWPTAG_BEGIN + 75: 'HWPTAG_FORM_OBJECT', HWPTAG_BEGIN + 76: 'HWPTAG_MEMO_SHAPE', HWPTAG_BEGIN + 77: 'HWPTAG_MEMO_LIST', HWPTAG_BEGIN + 78: 'HWPTAG_FORBIDDEN_CHAR', HWPTAG_BEGIN + 79: 'HWPTAG_CHART_DATA', # ... HWPTAG_BEGIN + 99: 'HWPTAG_SHAPE_COMPONENT_UNKNOWN', } for k, v in tagnames.items(): globals()[v] = k del k, v ================================================ FILE: src/hwp5/transforms/__init__.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from contextlib import contextmanager import logging from ..errors import ImplementationNotAvailable from ..plat import get_xslt_compile from ..utils import hwp5_resources_path from ..utils import mkstemp_open logger = logging.getLogger(__name__) class BaseTransform: def __init__(self, xslt_compile=None, embedbin=False): self.xslt_compile = xslt_compile or self.get_default_xslt_compile() self.embedbin = embedbin @classmethod def get_default_xslt_compile(cls): xslt_compile = get_xslt_compile() if not xslt_compile: raise ImplementationNotAvailable('xslt') return xslt_compile def make_transform_hwp5(self, transform_xhwp5): def transform_hwp5(hwp5file, output): with self.transformed_xhwp5_at_temp(hwp5file) as xhwp5path: return transform_xhwp5(xhwp5path, output) return transform_hwp5 def make_xsl_transform(self, resource_path, **params): with hwp5_resources_path(resource_path) as xsl_path: return self.xslt_compile(xsl_path, **params) @contextmanager def transformed_xhwp5_at_temp(self, hwp5file): with mkstemp_open() as (tmp_path, f): hwp5file.xmlevents(embedbin=self.embedbin).dump(f) yield tmp_path ================================================ FILE: src/hwp5/treeop.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals class STARTEVENT: pass class ENDEVENT: pass def prefix_event(level_prefixed_items, root_item=None): ''' convert iterable of (level, item) into iterable of (event, item) ''' baselevel = None stack = [root_item] for level, item in level_prefixed_items: if baselevel is None: baselevel = level level = 0 else: level -= baselevel while level + 1 < len(stack): yield ENDEVENT, stack.pop() while len(stack) < level + 1: raise Exception('invalid level: %d, %d, %s' % (level, len(stack) - 1, item)) assert(len(stack) == level + 1) stack.append(item) yield STARTEVENT, item while 1 < len(stack): yield ENDEVENT, stack.pop() def prefix_ancestors(event_prefixed_items, root_item=None): ''' convert iterable of (event, item) into iterable of (ancestors, item) ''' stack = [root_item] for event, item in event_prefixed_items: if event is STARTEVENT: yield stack, item stack.append(item) elif event is ENDEVENT: stack.pop() def prefix_ancestors_from_level(level_prefixed_items, root_item=None): ''' convert iterable of (level, item) into iterable of (ancestors, item) @param level_prefixed items: iterable of tuple(level, item) @return iterable of tuple(ancestors, item) ''' baselevel = None stack = [root_item] for level, item in level_prefixed_items: if baselevel is None: baselevel = level level = 0 else: level -= baselevel while level + 1 < len(stack): stack.pop() while len(stack) < level + 1: raise Exception('invalid level: %d, %d, %s' % (level, len(stack) - 1, item)) assert(len(stack) == level + 1) yield stack, item stack.append(item) def build_subtree(event_prefixed_items): ''' build a tree from (event, item) stream Example Scenario:: ... (STARTEVENT, rootitem) # should be consumed by the caller --- call build_subtree() --- (STARTEVENT, child1) # consumed by build_subtree() (STARTEVENT, grandchild) # (same) (ENDEVENT, grandchild) # (same) (ENDEVENT, child1) # (same) (STARTEVENT, child2) # (same) (ENDEVENT, child2) # (same) (ENDEVENT, rootitem) # same, buildsubtree() returns --- build_subtree() returns --- (STARTEVENT, another_root) ... result will be (rootitem, [(child1, [(grandchild, [])]), (child2, [])]) ''' childs = [] for event, item in event_prefixed_items: if event == STARTEVENT: childs.append(build_subtree(event_prefixed_items)) elif event == ENDEVENT: return item, childs def iter_subevents(event_prefixed_items): level = 0 for event, item in event_prefixed_items: yield event, item if event is STARTEVENT: level += 1 elif event is ENDEVENT: if level > 0: level -= 1 else: return def tree_events(rootitem, childs): ''' generate tuples of (event, item) from a tree ''' yield STARTEVENT, rootitem for k in tree_events_multi(childs): yield k yield ENDEVENT, rootitem def tree_events_multi(trees): ''' generate tuples of (event, item) from trees ''' for rootitem, childs in trees: for k in tree_events(rootitem, childs): yield k ================================================ FILE: src/hwp5/utils.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from contextlib import contextmanager from functools import partial import codecs import logging import os import shlex import shutil import subprocess import sys import tempfile from .importhelper import pkg_resources_filename PY3 = sys.version_info.major == 3 logger = logging.getLogger(__name__) class NIL: pass class cached_property(object): def __init__(self, func): self.func = func self.__name__ = func.__name__ self.__doc__ = func.__doc__ def __get__(self, obj, type=None): if obj is None: return self value = obj.__dict__.get(self.__name__, NIL) if value is NIL: value = self.func(obj) obj.__dict__[self.__name__] = value return value def __set__(self, obj, value): obj.__dict__[self.__name__] = value def generate_json_array(tokens): ''' generate json array with given tokens ''' first = True for token in tokens: if first: yield '[\n' first = False else: yield ',\n' yield token yield '\n]' class JsonObjects(object): def __init__(self, objects, object_to_json): self.objects = objects self.object_to_json = object_to_json def generate(self, **kwargs): kwargs.setdefault('sort_keys', True) kwargs.setdefault('indent', 2) tokens = (self.object_to_json(obj, **kwargs) for obj in self.objects) return generate_json_array(tokens) def open(self, **kwargs): chunks = self.generate(**kwargs) chunks = (chunk.encode('utf-8') for chunk in chunks) return GeneratorReader(chunks) def dump(self, outfile, **kwargs): for s in self.generate(**kwargs): outfile.write(s) def unicode_escape(s): ''' Escape a string. :param s: a string to escape :type s: unicode :returns: escaped string :rtype: unicode ''' return s.encode('unicode_escape').decode('utf-8') def unicode_unescape(s): ''' Unescape a string. :param s: a string to unescape :type s: unicode :returns: unescaped string :rtype: unicode ''' return s.encode('utf-8').decode('unicode_escape') def transcode(backend_stream, backend_encoding, frontend_encoding, errors='strict'): enc = codecs.getencoder(frontend_encoding) dec = codecs.getdecoder(frontend_encoding) rd = codecs.getreader(backend_encoding) wr = codecs.getwriter(backend_encoding) return codecs.StreamRecoder(backend_stream, enc, dec, rd, wr, errors) def transcoder(backend_encoding, frontend_encoding, errors='strict'): return partial(transcode, backend_encoding=backend_encoding, frontend_encoding=frontend_encoding, errors=errors) class GeneratorReader(object): ''' convert a string generator into file-like reader def gen(): yield b'hello' yield b'world' f = GeneratorReader(gen()) assert 'hell' == f.read(4) assert 'oworld' == f.read() ''' def __init__(self, gen): self.gen = gen self.buffer = b'' def read(self, size=None): if size is None: d, self.buffer = self.buffer, b'' return d + b''.join(self.gen) for data in self.gen: self.buffer += data bufsize = len(self.buffer) if bufsize >= size: size = min(bufsize, size) d, self.buffer = self.buffer[:size], self.buffer[size:] return d d, self.buffer = self.buffer, b'' return d def close(self): self.gen = self.buffer = None class GeneratorTextReader(object): ''' convert a string generator into file-like reader def gen(): yield 'hello' yield 'world' f = GeneratorTextReader(gen()) assert 'hell' == f.read(4) assert 'oworld' == f.read() ''' def __init__(self, gen): self.gen = gen self.buffer = '' def read(self, size=None): if size is None: d = self.buffer self.buffer = '' return d + ''.join(self.gen) for data in self.gen: self.buffer += data bufsize = len(self.buffer) if bufsize >= size: size = min(bufsize, size) d, self.buffer = self.buffer[:size], self.buffer[size:] return d d = self.buffer self.buffer = '' return d def close(self): self.gen = self.buffer = None @contextmanager def hwp5_resources_path(res_path): try: path = pkg_resources_filename('hwp5', res_path) except Exception: logger.info('%s: pkg_resources_filename failed; using resource_stream', res_path) with mkstemp_open() as (path, g): import pkg_resources f = pkg_resources.resource_stream('hwp5', res_path) try: shutil.copyfileobj(f, g) g.close() yield path finally: f.close() else: yield path def make_open_dest_file(path): if path: @contextmanager def open_dest_path(): with open(path, 'wb') as f: yield f return open_dest_path else: if PY3: @contextmanager def open_stdout(): yield sys.stdout.buffer return open_stdout else: @contextmanager def open_stdout(): yield sys.stdout return open_stdout def wrap_open_dest_for_tty(open_dest, wrappers): @contextmanager def open_dest_wrapped(): with open_dest() as output: if output.isatty(): with cascade_contextmanager_filters(output, wrappers) as output: yield output else: yield output return open_dest_wrapped def wrap_open_dest(open_dest, wrappers): @contextmanager def open_dest_wrapped(): with open_dest() as output: with cascade_contextmanager_filters(output, wrappers) as output: yield output return open_dest_wrapped @contextmanager def cascade_contextmanager_filters(arg, filters): if len(filters) == 0: yield arg else: flt, filters = filters[0], filters[1:] with flt(arg) as ret: with cascade_contextmanager_filters(ret, filters) as ret: yield ret @contextmanager def null_contextmanager_filter(output): yield output def output_thru_subprocess(cmd): @contextmanager def filter(output): logger.debug('%r', cmd) try: p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=output) except Exception as e: logger.error('%r: %s', ' '.join(cmd), e) yield output else: try: yield p.stdin except IOError as e: import errno if e.errno != errno.EPIPE: raise finally: p.stdin.close() p.wait() retcode = p.returncode logger.debug('%r exit %d', cmd, retcode) return filter def xmllint(c14n=False, encode=None, format=False, nonet=True): cmd = ['xmllint'] if c14n: cmd.append('--c14n') if encode: cmd += ['--encode', encode] if format: cmd.append('--format') if nonet: cmd.append('--nonet') cmd.append('-') return output_thru_subprocess(cmd) def syntaxhighlight(mimetype): try: return syntaxhighlight_pygments(mimetype) except Exception as e: logger.info(e) return null_contextmanager_filter def syntaxhighlight_pygments(mimetype): from pygments import highlight from pygments.lexers import get_lexer_for_mimetype from pygments.formatters import TerminalFormatter lexer = get_lexer_for_mimetype(mimetype, encoding='utf-8') formatter = TerminalFormatter(encoding='utf-8') @contextmanager def filter(output): with make_temp_file() as f: yield f f.seek(0) code = f.read() highlight(code, lexer, formatter, output) return filter @contextmanager def make_temp_file(): fd, name = tempfile.mkstemp() with unlink_path(name): with os.fdopen(fd, 'w+') as f: yield f @contextmanager def unlink_path(path): import os try: yield finally: os.unlink(path) def pager(): pager_cmd = os.environ.get('PAGER') if pager_cmd: pager_cmd = shlex.split(pager_cmd) return output_thru_subprocess(pager_cmd) return pager_less pager_less = output_thru_subprocess(['less', '-R']) @contextmanager def mkstemp_open(*args, **kwargs): if (kwargs.get('text', False) or (len(args) >= 4 and args[3])): text = True else: text = False mode = 'w+' if text else 'wb+' fd, path = tempfile.mkstemp(*args, **kwargs) try: f = os.fdopen(fd, mode) try: yield path, f finally: try: f.close() except Exception: pass finally: unlink_or_warning(path) def unlink_or_warning(path): try: os.unlink(path) except Exception as e: logger.exception(e) logger.warning('%s cannot be deleted', path) ================================================ FILE: src/hwp5/xmldump_flat.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2015 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from .binmodel import ControlChar from .binmodel import ParaTextChunks from .binmodel import Text from .bintype import resolve_type_events from .bintype import resolve_values_from_stream from .dataio import ArrayType from .dataio import EnumType from .dataio import FlagsType from .dataio import SelectiveType from .dataio import StructType from .dataio import X_ARRAY from .filestructure import FileHeader from .treeop import ENDEVENT from .treeop import STARTEVENT from .xmlformat import xmlevents_to_bytechunks def xmldump_flat(hwp5file, output, xml_declaration=True): xmlevents = xmlevents_from_hwp5file(hwp5file) bytechunks = xmlevents_to_bytechunks(xmlevents) if xml_declaration: output.write('') for x in bytechunks: output.write(x) def xmlevents_from_hwp5file(hwp5file): version = '%d.%d.%d.%d' % hwp5file.fileheader.version hexversion = '%02x%02x%02x%02x' % hwp5file.fileheader.version yield STARTEVENT, ('Hwp5Doc', { 'version': version, 'hexversion': hexversion }) with hwp5file.fileheader.open() as f: yield STARTEVENT, ('FileHeader', { }) resolve_values = resolve_values_from_stream(f) model_events = resolve_type_events(FileHeader, {}, resolve_values) for x in xmlevents_from_modelevents(model_events): yield x yield ENDEVENT, 'FileHeader' yield STARTEVENT, ('DocInfo', { }) model_events = hwp5file.docinfo.parse_model_events() for x in xmlevents_from_modelevents(model_events): yield x yield ENDEVENT, 'DocInfo' for section_name in hwp5file.bodytext: section = hwp5file.bodytext[section_name] yield STARTEVENT, ('Section', { 'name': section_name }) model_events = section.parse_model_events() for x in xmlevents_from_modelevents(model_events): yield x yield ENDEVENT, 'Section' yield ENDEVENT, 'Hwp5Doc' def expand_item_value(ev, data): if ev is None and data['type'] is ParaTextChunks: yield STARTEVENT, data for (start, end), item in data['value']: if isinstance(item, unicode): yield None, { 'bin_offset': data['bin_offset'] + start * 2, 'type': Text, 'value': item, } else: x = { 'bin_offset': data['bin_offset'] + start * 2, 'type': ControlChar, 'value': item, } yield None, x yield ENDEVENT, data else: yield ev, data def expand_item_values(model_events): for ev, item in model_events: for x in expand_item_value(ev, item): yield x def xmlevents_from_modelevents(model_events): # noqa expanded_events = expand_item_values(model_events) for ev, data in expanded_events: record = data.get('record') if record: if ev is STARTEVENT: yield ev, ('Record', { 'tagname': record['tagname'], 'tagid': unicode(record['tagid']), 'seqno': unicode(record['seqno']), 'level': unicode(record['level']), 'size': unicode(record['size']), }) elif ev is ENDEVENT: yield ev, 'Record' else: assert False else: datatype = data['type'] typename = datatype.__name__ if ev in (STARTEVENT, ENDEVENT): if isinstance(datatype, (ArrayType, X_ARRAY)): elem = 'array' atrs = { } elif isinstance(datatype, (StructType, SelectiveType)): elem = 'struct' atrs = { 'type': typename } else: raise Exception(datatype.__name__) if 'name' in data: atrs['name'] = data['name'] if ev is STARTEVENT: yield ev, (elem, atrs) else: yield ev, elem elif ev is None: atrs = { 'type': typename, 'value': unicode(data['value']) } if 'name' in data: atrs['name'] = data['name'] if 'bin_offset' in data: atrs['offset'] = unicode(data['bin_offset']) if 'bin_value' in data: atrs['bin_value'] = unicode(data['bin_value']) if 'bin_type' in data: atrs['type'] = data['bin_type'].__name__ yield STARTEVENT, ('item', atrs) if isinstance(datatype, FlagsType): fixed_size = datatype.basetype.fixed_size b = bin(data['value'])[2:] if len(b) < fixed_size * 8: b = '0' * (fixed_size * 8 - len(b)) + b h = hex(data['value'])[2:] if len(h) < fixed_size * 2: h = '0' * (fixed_size * 2 - len(h)) + h if h.endswith('L'): h = h[:-1] atrs = { 'hex': h, 'bin': b } yield STARTEVENT, ('bitflags', atrs) for bitfield_name in datatype.bitfields: desc = datatype.bitfields[bitfield_name] bitfield_type = desc.valuetype value = desc.__get__(data['value'], None) atrs = { 'type': datatype.basetype.__name__, 'name': bitfield_name, 'msb': unicode(desc.msb), 'lsb': unicode(desc.lsb), 'value': unicode(int(value)) } yield STARTEVENT, ('bits', atrs) if isinstance(bitfield_type, EnumType): atrs = { 'type': bitfield_type.__name__, 'value': value.name } yield STARTEVENT, ('enum', atrs) yield ENDEVENT, 'enum' yield ENDEVENT, 'bits' yield ENDEVENT, 'bitflags' yield ENDEVENT, 'item' ================================================ FILE: src/hwp5/xmlformat.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from itertools import chain from xml.sax.saxutils import escape from xml.sax.saxutils import quoteattr import logging import sys from .filestructure import VERSION from .dataio import typed_struct_attributes from .dataio import Struct from .dataio import StructType from .dataio import ArrayType from .dataio import FlagsType from .dataio import EnumType from .dataio import WCHAR from .dataio import HWPUNIT from .dataio import HWPUNIT16 from .dataio import SHWPUNIT from .binmodel import COLORREF from .binmodel import BinStorageId from .binmodel import Margin from .binmodel import Text from .treeop import STARTEVENT from .treeop import ENDEVENT PY3 = sys.version_info.major == 3 if PY3: basestring = str unichr = chr logger = logging.getLogger(__name__) def xmlattrval(value): if isinstance(value, basestring): return value elif isinstance(value, float): # https://stackoverflow.com/questions/25898733/why-does-strfloat-return-more-digits-in-python-3-than-python-2 return repr(value) elif isinstance(type(value), EnumType): return value.name.lower() if value.name else str(int(value)) elif isinstance(value, type): return value.__name__ else: return str(value) def expanded_xmlattribute(ntv): name, (t, value) = ntv if isinstance(t, FlagsType): fmt = '%0' fmt += '%d' % (t.basetype.fixed_size * 2) fmt += 'X' yield name, fmt % int(value) for k, v in t.dictvalue(t(value)).items(): yield k, xmlattrval(v) elif t is Margin: for pos in ('left', 'right', 'top', 'bottom'): yield '-'.join([name, pos]), xmlattrval(value.get(pos)) elif t is COLORREF: yield name, xmlattrval(t(value)) elif t is VERSION: yield name, '.'.join(str(x) for x in value) elif t in (HWPUNIT, SHWPUNIT, HWPUNIT16): yield name, str(value) elif t is WCHAR: if value == 0: yield name, u'' else: if value in PUA_SYMBOLS: yield name, PUA_SYMBOLS[value] else: yield name, unichr(value) elif t is BinStorageId: yield name, 'BIN%04X' % value else: yield name, xmlattrval(value) # TODO: arbitrary assignment; not based on any standards PUA_SYMBOLS = { 0xF046: u'☞', # U+261E WHITE RIGHT POINTING INDEX 0xF06C: u'●', # U+25CF BLACK CIRCLE # F06C: u'⚫', # U+26AB MEDIUM BLACK CIRCLE 0xF09F: u'•', # U+2022 BULLET = black small circle 0xF0A1: u'○', # U+25CB WHITE CIRCLE # F0A1: u'⚪', # U+26AA MEDIUM WHITE CIRCLE # F0A1: u'⚬', # U+26AC MEDIUM SMALL WHITE CIRCLE # F0A1: u' ', # U+25E6 WHITE BULLET 0xF06E: u'■', # U+25A0 BLACK SQUARE = molding mark 0xF0A7: u'▪', # U+25AA BLACK SMALL SQUARE = square bullet 0xF06F: u'☐', # U+2610 BALLOT BOX # F06F: u'□', # U+25A1 WHITE SQUARE = quadrature 0xF075: u'◆', # U+25C6 BLACK DIAMOND 0xF077: u'⬩', # U+2B29 BLACK SMALL DIAMOND # F077: u'⬥', # U+2B25 BLACK MEDIUM DIAMOND # F077: u'⬦', # U+2B26 WHITE MEDIUM DIAMOND 0xF076: u'❖', # U+2756 BLACK DIAMOND MINUS WHITE X 0xF0A4: u'◉', # U+25C9 FISHEYE # F0A4: u'⦿ ', # U+29BF CIRCLED BULLET 0xF0AB: u'★', # U+2605 BLACK STAR 0xF0Fc: u'✓', # U+2713 CHECK MARK 0xF0FE: u'☑', # U+2611 BALLOT BOX WITH CHECK } def xmlattr_dashednames(attrs): for k, v in attrs: yield k.replace('_', '-'), v def xmlattr_uniqnames(attrs): names = set([]) for k, v in attrs: assert k not in names, 'name clashes: %s' % k yield k, v names.add(k) def xmlattributes_for_plainvalues(context, plainvalues): ntvs = plainvalues.items() ntvs = chain(*(expanded_xmlattribute(ntv) for ntv in ntvs)) return dict(xmlattr_uniqnames(xmlattr_dashednames(ntvs))) def is_complex_type(type, value): if isinstance(value, dict): return True elif isinstance(type, ArrayType) and issubclass(type.itemtype, Struct): return True elif isinstance(type, ArrayType) and issubclass(type.itemtype, COLORREF): return True else: return False def separate_plainvalues(typed_attributes): d = [] p = dict() for named_item in typed_attributes: name, item = named_item t, value = item try: if t is Margin: p[name] = item elif is_complex_type(t, value): d.append(named_item) else: p[name] = item except Exception as e: logger.error('%s', (name, t, value)) logger.error('%s', t.__dict__) logger.exception(e) raise e return d, p def startelement(context, ma): model, attributes = ma if isinstance(model, StructType): typed_attributes = ((v['name'], (v['type'], v['value'])) for v in typed_struct_attributes(model, attributes, context)) else: typed_attributes = ((k, (type(v), v)) for k, v in attributes.items()) typed_attributes, plainvalues = separate_plainvalues(typed_attributes) if model is Text: text = plainvalues.pop('text')[1] elif '' in plainvalues: text = plainvalues.pop('')[1] else: text = None yield STARTEVENT, (model.__name__, xmlattributes_for_plainvalues(context, plainvalues)) if text: yield Text, text for _name, (_type, _value) in typed_attributes: if isinstance(_value, dict): assert isinstance(_value, dict) _value = dict(_value) _value['attribute-name'] = _name for x in element(context, (_type, _value)): yield x else: assert isinstance(_value, (tuple, list)), (_value, _type) # assert issubclass(_type.itemtype, Struct), (_value, _type) if issubclass(_type.itemtype, Struct): yield STARTEVENT, ('Array', {'name': _name}) for _itemvalue in _value: for x in element(context, (_type.itemtype, _itemvalue)): yield x yield ENDEVENT, 'Array' elif issubclass(_type.itemtype, COLORREF): for _itemvalue in _value: yield STARTEVENT, (_name, { 'r': '%d' % ((_itemvalue >> 0) & 0xff), 'g': '%d' % ((_itemvalue >> 8) & 0xff), 'b': '%d' % ((_itemvalue >> 16) & 0xff), 'alpha': '%d' % ((_itemvalue >> 24) & 0xff), 'hex': xmlattrval(_type.itemtype(_itemvalue)) }) yield ENDEVENT, _name else: assert False, (_value, _type) def element(context, ma): model, attributes = ma for x in startelement(context, ma): yield x yield ENDEVENT, model.__name__ def xmlevents_to_bytechunks(xmlevents, encoding='utf-8'): for textchunk in xmlevents_to_textchunks(xmlevents): yield textchunk.encode(encoding) def xmlevents_to_textchunks(xmlevents): entities = {'\r': ' ', '\n': ' ', '\t': ' '} for event, item in xmlevents: if event is STARTEVENT: yield '<' yield item[0] for n, v in item[1].items(): yield ' ' yield n yield '=' v = quoteattr(v, entities) v = v.replace('\x00', '') yield v yield '>' elif event is Text: text = escape(item) text = text.replace('\x00', '') yield text elif event is ENDEVENT: yield '' ================================================ FILE: src/hwp5/xmlmodel.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals from collections import deque from itertools import chain from pprint import pformat from tempfile import TemporaryFile import base64 import logging import sys from . import binmodel from . import filestructure from .binmodel.controls import SectionDef from .binmodel.controls import TableControl from .binmodel.controls import GShapeObjectControl from .binmodel import BinData from .binmodel import ListHeader from .binmodel import Paragraph from .binmodel import Text from .binmodel import ShapeComponent from .binmodel import TableBody from .binmodel import TableCell from .binmodel import ParaText from .binmodel import ParaLineSeg from .binmodel import ParaCharShape from .binmodel import LineSeg from .binmodel import ParaRangeTag from .binmodel import Field from .binmodel import ControlChar from .binmodel import Control from .charsets import tokenize_unicode_by_lang from .dataio import Struct from .filestructure import VERSION from .treeop import STARTEVENT, ENDEVENT from .treeop import prefix_event from .treeop import build_subtree from .treeop import tree_events from .treeop import tree_events_multi from .xmlformat import startelement from .xmlformat import xmlevents_to_bytechunks PY3 = sys.version_info.major == 3 if PY3: basestring = str unichr = chr logger = logging.getLogger(__name__) def give_elements_unique_id(event_prefixed_mac): paragraph_id = 0 table_id = 0 gshape_id = 0 shape_id = 0 for event, item in event_prefixed_mac: (model, attributes, context) = item if event == STARTEVENT: if model == Paragraph: attributes['paragraph_id'] = paragraph_id paragraph_id += 1 elif model == TableControl: attributes['table_id'] = table_id table_id += 1 elif model == GShapeObjectControl: attributes['gshape_id'] = gshape_id gshape_id += 1 elif model == ShapeComponent: attributes['shape_id'] = shape_id shape_id += 1 yield event, item def make_ranged_shapes(shapes): last = None for item in shapes: if last is not None: yield (last[0], item[0]), last[1] last = item yield (item[0], 0x7fffffff), item[1] def split_and_shape(chunks, ranged_shapes): try: (chunk_start, chunk_end), chunk_attr, chunk = next(chunks) except StopIteration: return for (shape_start, shape_end), shape in ranged_shapes: while True: # case 0: chunk has left intersection # vvvv # ----... if chunk_start < shape_start: assert False # case 1: chunk is far right: get next shape # vvvv # ---- if shape_end <= chunk_start: # (1) break assert chunk_start < shape_end # by (1) assert shape_start <= chunk_start # case 2: chunk has left intersection # vvvv # ..---- if shape_end < chunk_end: # (2) prev = ((chunk_start, shape_end), chunk[:shape_end - chunk_start]) nexT = ((shape_end, chunk_end), chunk[shape_end - chunk_start:]) (chunk_start, chunk_end), chunk = prev else: nexT = None assert chunk_end <= shape_end # by (2) yield (chunk_start, chunk_end), (shape, chunk_attr), chunk if nexT is not None: (chunk_start, chunk_end), chunk = nexT continue try: (chunk_start, chunk_end), chunk_attr, chunk = next(chunks) except StopIteration: return def line_segmented(chunks, ranged_linesegs): prev_lineseg = None line = None for ((chunk_start, chunk_end), (lineseg, chunk_attr), chunk) in split_and_shape(chunks, ranged_linesegs): if lineseg is not prev_lineseg: if line is not None: yield prev_lineseg, line line = [] line.append(((chunk_start, chunk_end), chunk_attr, chunk)) prev_lineseg = lineseg if line is not None: yield prev_lineseg, line def make_texts_linesegmented_and_charshaped(event_prefixed_mac): ''' lineseg/charshaped text chunks ''' stack = [] # stack of ancestor Paragraphs for event, item in event_prefixed_mac: model, attributes, context = item if model is Paragraph: if event == STARTEVENT: stack.append(dict()) yield STARTEVENT, item else: paratext = stack[-1].get(ParaText) paracharshape = stack[-1].get(ParaCharShape) paralineseg = stack[-1].get(ParaLineSeg) # TODO: RangeTags are not used for now # pararangetag = stack[-1].get(ParaRangeTag) if paratext is None: paratext = (ParaText, dict(chunks=[((0, 0), '')]), dict(context)) for x in merge_paragraph_text_charshape_lineseg(paratext, paracharshape, paralineseg): yield x yield ENDEVENT, (model, attributes, context) stack.pop() elif model in (ParaText, ParaCharShape, ParaLineSeg, ParaRangeTag): if event == STARTEVENT: stack[-1][model] = model, attributes, context else: yield event, (model, attributes, context) def merge_paragraph_text_charshape_lineseg(paratext, paracharshape, paralineseg): paratext_model, paratext_attributes, paratext_context = paratext chunks = ((range, None, chunk) for range, chunk in paratext_attributes['chunks']) charshapes = paracharshape[1]['charshapes'] shaped_chunks = split_and_shape(chunks, make_ranged_shapes(charshapes)) if paralineseg: paralineseg_content = paralineseg[1] paralineseg_context = paralineseg[2] else: # 배포용 문서의 더미 BodyText 에는 LineSeg 정보가 없음 # (see https://github.com/mete0r/pyhwp/issues/33) # 더미 LineSeg를 만들어 준다 lineseg = dict(chpos=0, y=0, height=0, height2=0, height85=0, space_below=0, x=0, width=0, a8=0, flags=0) paralineseg_content = dict(linesegs=[lineseg]) paralineseg_context = dict() linesegs = ((lineseg['chpos'], lineseg) for lineseg in paralineseg_content['linesegs']) lined_shaped_chunks = line_segmented(shaped_chunks, make_ranged_shapes(linesegs)) for lineseg_content, shaped_chunks in lined_shaped_chunks: lineseg = (LineSeg, lineseg_content, paralineseg_context) chunk_events = range_shaped_textchunk_events(paratext_context, shaped_chunks) for x in wrap_modelevents(lineseg, chunk_events): yield x def range_shaped_textchunk_events(paratext_context, range_shaped_textchunks): for (startpos, endpos), (shape, none), chunk in range_shaped_textchunks: if isinstance(chunk, basestring): textitem = (Text, dict(text=chunk, charshape_id=shape), paratext_context) yield STARTEVENT, textitem yield ENDEVENT, textitem elif isinstance(chunk, dict): code = chunk['code'] uch = unichr(code) name = ControlChar.get_name_by_code(code) kind = ControlChar.kinds[uch] chunk_attributes = dict(name=name, code=code, kind=kind, charshape_id=shape) if code in (0x9, 0xa, 0xd): # http://www.w3.org/TR/xml/#NT-Char chunk_attributes['char'] = uch ctrlch = (ControlChar, chunk_attributes, paratext_context) yield STARTEVENT, ctrlch yield ENDEVENT, ctrlch def wrap_section(event_prefixed_mac, sect_id=None): ''' wrap a section with SectionDef ''' starting_buffer = list() started = False sectiondef = None for event, item in event_prefixed_mac: if started: yield event, item else: model, attributes, context = item if model is SectionDef and event is STARTEVENT: sectiondef, sectdef_child = build_subtree(event_prefixed_mac) if sect_id is not None: attributes['section_id'] = sect_id yield STARTEVENT, sectiondef for k in tree_events_multi(sectdef_child): yield k for evented_item in starting_buffer: yield evented_item started = True else: starting_buffer.append((event, item)) yield ENDEVENT, sectiondef class ColumnSet: pass def wrap_columns(event_prefixed_mac): stack = [] for event, item in event_prefixed_mac: model, attributes, context = item if model is Paragraph: if event is STARTEVENT: split = attributes['split'] split = Paragraph.SplitFlags(split) if split.new_columnsdef: if stack[-1][0] is ColumnSet: yield ENDEVENT, stack.pop() columns = (ColumnSet, {}, {}) stack.append(columns) yield STARTEVENT, columns else: if event is STARTEVENT: stack.append(item) else: if model != stack[-1][0]: assert stack[-1][0] is ColumnSet yield ENDEVENT, stack.pop() stack.pop() yield event, item def make_extended_controls_inline(event_prefixed_mac, stack=None): ''' inline extended-controls into paragraph texts ''' if stack is None: stack = [] # stack of ancestor Paragraphs for event, item in event_prefixed_mac: model, attributes, context = item if model is Paragraph: for x in meci_paragraph(event, stack, item): yield x elif model is ControlChar: for x in meci_controlchar(event, stack, item, attributes): yield x elif issubclass(model, Control) and event == STARTEVENT: control_subtree = build_subtree(event_prefixed_mac) paragraph = stack[-1] paragraph_controls = paragraph.setdefault(Control, []) paragraph_controls.append(control_subtree) else: yield event, item def meci_paragraph(event, stack, item): if event == STARTEVENT: stack.append(dict()) yield STARTEVENT, item else: yield ENDEVENT, item stack.pop() def meci_controlchar(event, stack, item, attributes): if event is STARTEVENT: if attributes['kind'] is ControlChar.EXTENDED: paragraph = stack[-1] paragraph_controls = paragraph.get(Control) control_subtree = paragraph_controls.pop(0) tev = tree_events(*control_subtree) # to evade the Control/STARTEVENT trigger # in parse_models_pass3() yield next(tev) for k in make_extended_controls_inline(tev, stack): yield k else: yield STARTEVENT, item yield ENDEVENT, item def make_paragraphs_children_of_listheader(event_prefixed_mac, parentmodel=ListHeader, childmodel=Paragraph): ''' make paragraphs children of the listheader ''' stack = [] level = 0 for event, item in event_prefixed_mac: model, attributes, context = item if event is STARTEVENT: level += 1 if len(stack) > 0 and ((event is STARTEVENT and stack[-1][0] == level and model is not childmodel) or (event is ENDEVENT and stack[-1][0] - 1 == level)): lh_level, lh_item = stack.pop() yield ENDEVENT, lh_item if issubclass(model, parentmodel): if event is STARTEVENT: stack.append((level, item)) yield event, item else: pass else: yield event, item if event is ENDEVENT: level -= 1 def match_field_start_end(event_prefixed_mac): stack = [] for event, item in event_prefixed_mac: (model, attributes, context) = item if issubclass(model, Field): for x in mfse_field(event, stack, item): yield x elif model is LineSeg: for x in mfse_lineseg(event, stack, item): yield x elif model is ControlChar and attributes['name'] == 'FIELD_END': for x in mfse_field_end(event, stack, item): yield x else: yield event, item def mfse_field(event, stack, item): if event is STARTEVENT: stack.append(item) yield event, item else: pass def mfse_lineseg(event, stack, item): if event is ENDEVENT: # fields still not closed; temporarily close them for field_item in reversed(stack): yield ENDEVENT, field_item yield event, item elif event is STARTEVENT: yield event, item # fields temporarily closed; open them again for field_item in stack: yield STARTEVENT, field_item def mfse_field_end(event, stack, item): if event is ENDEVENT: if len(stack) > 0: yield event, stack.pop() else: logger.warning('unmatched field end') class TableRow: pass ROW_OPEN = 1 ROW_CLOSE = 2 def restructure_tablebody(event_prefixed_mac): ''' Group table columns in each rows and wrap them with TableRow. ''' stack = [] for event, item in event_prefixed_mac: (model, attributes, context) = item if model is TableBody: for x in rstbody_tablebody(event, stack, item, attributes, context): yield x elif model is TableCell: for x in rstbody_tablecell(event, stack, item): yield x else: yield event, item def rstbody_tablebody(event, stack, item, attributes, context): if event is STARTEVENT: rowcols = deque() for cols in attributes.pop('rowcols'): if cols == 1: rowcols.append(ROW_OPEN | ROW_CLOSE) else: rowcols.append(ROW_OPEN) for i in range(0, cols - 2): rowcols.append(0) rowcols.append(ROW_CLOSE) stack.append((context, rowcols)) yield event, item else: yield event, item stack.pop() def rstbody_tablecell(event, stack, item): table_context, rowcols = stack[-1] row_context = dict(table_context) if event is STARTEVENT: how = rowcols[0] if how & ROW_OPEN: yield STARTEVENT, (TableRow, dict(), row_context) yield event, item if event is ENDEVENT: how = rowcols.popleft() if how & ROW_CLOSE: yield ENDEVENT, (TableRow, dict(), row_context) def tokenize_text_by_lang(event_prefixed_mac): ''' Group table columns in each rows and wrap them with TableRow. ''' for event, item in event_prefixed_mac: (model, attributes, context) = item if model is Text: if event is STARTEVENT: charshape_id = attributes['charshape_id'] for lang, text in tokenize_unicode_by_lang(attributes['text']): token = (Text, { 'charshape_id': charshape_id, 'lang': lang, 'text': text, }, context) yield STARTEVENT, token yield ENDEVENT, token else: yield event, item def embed_bindata(event_prefixed_mac, bindata): for event, item in event_prefixed_mac: (model, attributes, context) = item if event is STARTEVENT and model is BinData: if attributes['flags'].storage is BinData.StorageType.EMBEDDING: name = ('BIN%04X' % attributes['bindata']['storage_id'] + '.' + attributes['bindata']['ext']) bin_stream = bindata[name].open() try: binary = bin_stream.read() finally: bin_stream.close() b64 = base64.b64encode(binary) b64 = b64.decode('ascii') truncated = [] while b64: if len(b64) > 64: truncated.append(b64[:64]) b64 = b64[64:] else: truncated.append(b64) b64 = '' b64 = '\n'.join(truncated) b64 = '\n' + b64 + '\n' attributes['bindata'][''] = b64 attributes['bindata']['inline'] = 'true' yield event, item def prefix_binmodels_with_event(context, models): level_prefixed = ((model['level'], (model['type'], model['content'], context)) for model in models) return prefix_event(level_prefixed) def wrap_modelevents(wrapper_model, modelevents): yield STARTEVENT, wrapper_model for mev in modelevents: yield mev yield ENDEVENT, wrapper_model def modelevents_to_xmlevents(modelevents): for event, (model, attributes, context) in modelevents: try: if event is STARTEVENT: for x in startelement(context, (model, attributes)): yield x elif event is ENDEVENT: yield ENDEVENT, model.__name__ except: logger.error('model: %s', pformat({ 'event': event, 'model': model, 'attributes': attributes, 'context': context })) raise class XmlEvents(object): def __init__(self, events): self.events = events def __iter__(self): return modelevents_to_xmlevents(self.events) def bytechunks(self, xml_declaration=True, **kwargs): encoding = kwargs.get('xml_encoding', 'utf-8') if xml_declaration: yield '\n'.format( encoding ).encode( encoding ) bytechunks = xmlevents_to_bytechunks(self, encoding) for chunk in bytechunks: yield chunk def dump(self, outfile, **kwargs): bytechunks = self.bytechunks(**kwargs) for chunk in bytechunks: outfile.write(chunk) if hasattr(outfile, 'flush'): outfile.flush() def open(self, **kwargs): tmpfile = TemporaryFile() try: self.dump(tmpfile, **kwargs) except: tmpfile.close() raise tmpfile.seek(0) return tmpfile class XmlEventsMixin(object): def xmlevents(self, **kwargs): return XmlEvents(self.events(**kwargs)) class ModelEventStream(binmodel.ModelStream, XmlEventsMixin): def modelevents(self, **kwargs): models = self.models(**kwargs) # prepare modelevents context kwargs.setdefault('version', self.version) return prefix_binmodels_with_event(kwargs, models) def other_formats(self): d = super(ModelEventStream, self).other_formats() d['.xml'] = self.xmlevents().open return d class HwpSummaryInfo(filestructure.HwpSummaryInfo, XmlEventsMixin): def events(self, **context): generator = PropertySetStreamModelEventsGenerator(context) events = generator.generateModelEvents(self.propertySetStream) element = HwpSummaryInfo, {}, context return wrap_modelevents(element, events) class PropertySetStreamModelEventsGenerator(object): def __init__(self, context): self.context = context def generateModelEvents(self, stream): return self.getPropertySetStreamEvents(stream) def getPropertySetStreamEvents(self, stream): from .msoleprops import PropertySetStream sectionEvents = [ self.getPropertySetEvents(propertyset) for propertyset in stream.propertysets ] events = chain(*sectionEvents) content = dict( byte_order='{:04x}'.format( stream.byteOrder, ), version=str(stream.version), system_identifier='{:08x}'.format( stream.systemIdentifier, ), clsid=str(stream.clsid) ) element = PropertySetStream, content, self.context return wrap_modelevents(element, events) def getPropertySetEvents(self, propertyset): from .msoleprops import PropertySet propertyEvents = [ self.getPropertyEvents(property) for property in sorted( propertyset.properties, key=lambda property: property.desc.offset ) ] events = chain(*propertyEvents) content = dict( fmtid=propertyset.fmtid, offset=propertyset.desc.offset, ) element = PropertySet, content, self.context return wrap_modelevents(element, events) def getPropertyEvents(self, property): from .msoleprops import PID_DICTIONARY from .msoleprops import Property content = dict( id=property.desc.id, offset=property.desc.offset, ) if property.idLabel is not None: content['id_label'] = property.idLabel if property.type is not None: content['type'] = str(property.type.vt_type.__name__) content['type_code'] = '0x{:04x}'.format(property.type.code) if property.id == PID_DICTIONARY.id: events = self.getDictionaryEvents(property.value) else: events = () content['value'] = property.value element = Property, content, self.context return wrap_modelevents(element, events) def getDictionaryEvents(self, dictionary): events = list(self.getDictionaryEntryEvents(entry) for entry in dictionary.entries) return chain(*events) def getDictionaryEntryEvents(self, entry): from .msoleprops import DictionaryEntry content = dict( id=entry.id, name=entry.name, ) element = DictionaryEntry, content, self.context return wrap_modelevents(element, ()) class DocInfo(ModelEventStream): def events(self, **kwargs): docinfo = DocInfo, dict(), dict() events = self.modelevents(**kwargs) if 'embedbin' in kwargs: events = embed_bindata(events, kwargs['embedbin']) events = wrap_modelevents(docinfo, events) return events class Section(ModelEventStream): def events(self, **kwargs): events = self.modelevents(**kwargs) events = make_texts_linesegmented_and_charshaped(events) events = make_extended_controls_inline(events) events = match_field_start_end(events) events = make_paragraphs_children_of_listheader(events) events = make_paragraphs_children_of_listheader(events, TableBody, TableCell) events = restructure_tablebody(events) events = tokenize_text_by_lang(events) section_idx = kwargs.get('section_idx') events = wrap_section(events, section_idx) events = wrap_columns(events) return events class Sections(binmodel.Sections, XmlEventsMixin): section_class = Section def events(self, **kwargs): bodytext_events = [] for idx in self.section_indexes(): kwargs['section_idx'] = idx section = self.section(idx) events = section.events(**kwargs) bodytext_events.append(events) class BodyText(object): pass bodytext_events = chain(*bodytext_events) bodytext = BodyText, dict(), dict() return wrap_modelevents(bodytext, bodytext_events) def other_formats(self): d = super(Sections, self).other_formats() d['.xml'] = self.xmlevents().open return d class HwpDoc(Struct): def attributes(): yield VERSION, 'version' attributes = staticmethod(attributes) class Hwp5File(binmodel.Hwp5File, XmlEventsMixin): summaryinfo_class = HwpSummaryInfo docinfo_class = DocInfo bodytext_class = Sections def events(self, **kwargs): if 'embedbin' in kwargs and kwargs['embedbin'] and 'BinData' in self: kwargs['embedbin'] = self['BinData'] else: kwargs.pop('embedbin', None) events = chain(self.summaryinfo.events(**kwargs), self.docinfo.events(**kwargs), self.text.events(**kwargs)) hwpdoc = HwpDoc, dict(version=self.header.version), dict() events = wrap_modelevents(hwpdoc, events) # for easy references in styles events = give_elements_unique_id(events) return events ================================================ FILE: src/hwp5/xsl/binspec2html.xsl ================================================ Content-Type text/xhtml; charset=utf-8 text/javascript $(document).ready(function(){ $('a.toggle-definition').parent().parent().siblings().css('display', 'none'); $('a.toggle-definition').click(function(){ $(this).parent().parent().siblings().toggle(); }); }); text/css table.StructType { width: 100%; } table.simple { border: 1px solid black; border-collapse: collapse; } table.simple th , table.simple td { border: 1px solid black; padding: 1em; } thead tr.StructType-name th { background-color: #ccc; } tr.extension-header th { background-color: #ddd; } tr.extension-header th .condition { font-weight: normal; } tr.extends-header th { background-color: #eee; color: #777; font-weight: normal; } table.SelectiveType, table.SelectiveType th, table.SelectiveType td { border: 0; padding: 0; } table.EnumType { border: 0; width: 100%; } table.EnumType tr.name th { border: 0; } table.FlagsType { border: 0; width: 100%; } table.FlagsType tr.name th { border: 0; } a.toggle-definition { text-decoration: underline; cursor: pointer; color: blue; } hwp5spec Version: Records Structs Primitives simple name size binfmt toc simple # StructType simple StructType simple StructType-name 4 name type condition version extends-header 4 (see members) extension-header 4 Extension: condition (if ) member # # # FlagsType simple name 3 bits name type ~ ARRAY(, ) ARRAY(, ) N_ARRAY(, ) if is: SelectiveType ; then EnumType simple name 2 Enum . toggle-definition ================================================ FILE: src/hwp5/xsl/hwp5css-common.xsl ================================================ /* Styles */ /* Paragraph attributes */ /* Text attributes */ . > span /* @parashape-id = */ /* @charshape-id = */ p.parashape- > span margin min-height em line-height . Bullet- ::before content " " display inline-block text-align width 1em margin-right em width margin-right Bullet- span.charshape- ko en cn jp other symbol user color font-style italic font-weight bold .lang- font-family font-size " " , serif , sans-serif , serif , sans-serif , monospace , sans-serif , serif , cursive , fantasy .borderfill- border-top border-right border-bottom border-left 1px 1px 1px 1px 1px 2px 2px none solid dashed dotted dashed dashed dahsed dotted double double double double solid double inset outset groove ridge solid background-color background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAATSURBVAjXY2AgGTAy/CddEyEAAFOKAQGTpJ5ZAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTExLTA1VDE1OjM3OjA3KzA5OjAwrbX03gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0wNVQxNTozNzowNyswOTowMNzoTGIAAAAASUVORK5CYII= ) /* */ background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAVSURBVAjXY2CAgP9QmoGJAQ3QRwAAg8ABDm14IFwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6Mzc6MzcrMDk6MDAjOvM9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM3OjM3KzA5OjAwUmdLgQAAAABJRU5ErkJggg== ) background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAQSURBVAjXY2D4z4ABBkAIABqKB/lrzYhNAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTExLTA1VDE1OjM4OjE0KzA5OjAwofy1UAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0wNVQxNTozODoxNCswOTowMNChDewAAAAASUVORK5CYII= ) /* */ background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAPSURBVAjXY2BABf8HiAsAGooH+VFK23UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6Mzg6MzUrMDk6MDBFrrmZAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM4OjM1KzA5OjAwNPMBJQAAAABJRU5ErkJggg== ) /* */ background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAVSURBVAjXY2T4z4AG0ASY0OVpIgAA/d8CDKGA4lwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6MzQ6MzUrMDk6MDBfklkXAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM0OjM1KzA5OjAwLs/hqwAAAABJRU5ErkJggg== ) /* */ background-image url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAeSURBVAjXY2CAgP9QmoGJAQ1gCDAiFKMCEszAEAAAEWMDCQJfExIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6Mzk6NDErMDk6MDBU5v+tAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM5OjQxKzA5OjAwJbtHEQAAAABJRU5ErkJggg== ) /* */ /* unrecognized @pattern-type: */ background-image linear-gradient ( deg , ) background-image -webkit-linear-gradient ( deg , ) background-image -moz-linear-gradient ( deg , ) background-image url( ) background-size 100% 100% /* unsupported @fillimage-type: */ bindata/ . .Section- .HeaderPageFooter .Page position relative margin-top margin-right margin-bottom margin-left padding-top padding-bottom width width .HeaderArea position absolute left 0 top 0 width height .FooterArea position absolute left 0 bottom 0 width height text-align center left right justify justify text-indent padding-left text-decoration underline text-decoration overline text-decoration line-through text-decoration-color -moz-text-decoration-color -webkit-text-decoration-color text-decoration-style -moz-text-decoration-style -webkit-text-decoration-style solid dashed dotted dashed dashed dashed dotted double double double double mm pt { } : ; ================================================ FILE: src/hwp5/xsl/hwp5css.xsl ================================================ body background-color #eee padding 4px margin 0 .Paper background-color #fff border 1px solid black margin 1em auto .Paper:first-child margin-top 0 .Paper:last-child margin-bottom 0 ================================================ FILE: src/hwp5/xsl/hwp5fodt.xsl ================================================ ================================================ FILE: src/hwp5/xsl/hwp5html.xsl ================================================ content-type text/html; charset=utf-8 text/css stylesheet styles.css text/css text/css Section Section- Paper HeaderPageFooter Page HeaderArea FooterArea parashape- lang- charshape- autonumbering autonumbering- TableControl borderfill- TableControl borderfill- border-collapse collapse TableCaption caption-side margin-bottom width caption-side margin-top width /* not supported @position: */ borderfill- width height padding GShapeObjectControl GShapeObjectControl . data:;base64, width height display inline-block width /* hrelto: halign: */ margin-left margin-left margin-left margin-left margin-left margin-left margin-left margin-left margin-left margin-left margin-left margin-left ================================================ FILE: src/hwp5/xsl/odt/common.xsl ================================================ MasterPage- PageLayout- '' roman swiss variable paragraph text !"#$%&'()*+,/:;<=>?@[\]^`{|}~ ______________________________ PageLayout- cm cm cm cm cm cm cm cm justify left right center justify justify justify pt pt pt pt pt pt % pt top pt pt pt pt italic italic italic bold bold bold solid dash dotted dot-dash dot-dot-dash long-dash dotted solid solid solid solid single single single single single single single double double double double auto none auto none auto none p - - text paragraph text Paragraph- page MasterPage- Paragraph- p-- Table- Table--- Table--- table-cell mm mm mm mm Table- table mm margins mm mm mm mm collapsing separating mm mm mm mm parallel left right biggest none run-through run-through page-content page paragraph paragraph page-content page page-content paragraph from-left from-inside center from-left outside outside right right from-top middle middle bottom bottom top baseline top solid none none solid dash dash solid mm Shape- graphic translate ( mm mm) translate ( mm mm) matrix ( mm mm) Shape- Shape- onLoad embed simple . mm mm as-char paragraph pt pt mm mm Shape- mm mm mm mm mm mm mm mm Shape- - footnote endnote ================================================ FILE: src/hwp5/xsl/odt/content.xsl ================================================ ================================================ FILE: src/hwp5/xsl/odt/document.xsl ================================================ ================================================ FILE: src/hwp5/xsl/odt/styles.xsl ================================================ ================================================ FILE: src/hwp5/xsl/plaintext.xsl ================================================ <표> <그림> ================================================ FILE: src/hwp5/zlib_raw_codec.py ================================================ # -*- coding: utf-8 -*- # # pyhwp : hwp file format parser in python # Copyright (C) 2010-2023 mete0r # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # from __future__ import absolute_import from __future__ import print_function from __future__ import unicode_literals import codecs import zlib # this codec needs the optional zlib module ! _wbits = -15 def zlib_raw_encode(input, errors='strict'): assert errors == 'strict' output = zlib.compress(input)[2:-4] return (output, len(input)) def zlib_raw_decode(input, errors='strict'): assert errors == 'strict' output = zlib.decompress(input, _wbits) return (output, len(input)) class Codec(codecs.Codec): def encode(self, input, errors='strict'): return zlib_raw_encode(input, errors) def decode(self, input, errors='strict'): return zlib_raw_decode(input, errors) class IncrementalEncoder(codecs.IncrementalEncoder): def __init__(self, errors='strict'): assert errors == 'strict' self.errors = errors self.compressobj = zlib.compressobj() self.initial = True def encode(self, input, final=False): c = self.compressobj.compress(input) if self.initial: c = c[2:] self.initial = False if final: c += self.compressobj.flush()[:-4] return c def reset(self): self.compressobj = zlib.compressobj() class IncrementalDecoder(codecs.IncrementalDecoder): def __init__(self, errors='strict'): assert errors == 'strict' self.errors = errors self.decompressobj = zlib.decompressobj(_wbits) def decode(self, input, final=False): if final: if len(input) > 0: d = self.decompressobj.decompress(input) else: d = b'' return d + self.decompressobj.flush() else: return self.decompressobj.decompress(input) def reset(self): self.decompressobj = zlib.decompressobj(_wbits) class StreamWriter(object): def __init__(self, stream, errors='strict'): assert errors == 'strict' self.stream = stream self.encoder = IncrementalEncoder(errors) def write(self, data): raise NotImplementedError class StreamReader(object): def __init__(self, stream, errors='strict'): assert errors == 'strict' self.stream = stream self.decoder = IncrementalDecoder(errors) self.buffer = b'' self.offset = 0 def read(self, size=-1): if size < 0: c = self.stream.read() d = self.buffer + self.decoder.decode(c, True) self.buffer = b'' self.offset += len(d) return d final = False while True: if size <= len(self.buffer): d = self.buffer[:size] self.buffer = self.buffer[size:] self.offset += size return d if final: d = self.buffer self.buffer = b'' self.offset += len(d) return d c = self.stream.read(8196) final = len(c) < 8196 or len(c) self.buffer += self.decoder.decode(c, final) def tell(self): return self.offset _codecinfo = codecs.CodecInfo( name='zlib_raw', encode=zlib_raw_encode, decode=zlib_raw_decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamreader=StreamReader, streamwriter=StreamWriter, ) ================================================ FILE: stdeb.cfg ================================================ [pyhwp] Forced-Upstream-Version: 0.1~b2 ================================================ FILE: tests/README.rst ================================================ ``pyhwp-tests/`` - the main test suite -------------------------------------- ``hwp5_tests/`` The main test suite. ``hwp5_xsl_tests/`` XSLT test suite. ``hwp5_cli_tests.sh`` Command-line interface tests. ================================================ FILE: tests/cli_tests/hwp5html.txt ================================================ $ hwp5html --help usage: hwp5html [-h] [--version] [--loglevel LOGLEVEL] [--logfile LOGFILE] [--output OUTPUT] [--css | --html] HWPv5 to HTML converter positional arguments: .hwp file to convert optional arguments: -h, --help show this help message and exit --version show program's version number and exit --loglevel LOGLEVEL Set log level. --logfile LOGFILE Set log file. --output OUTPUT Output file --css Generate CSS --html Generate HTML $ rm -rf sample-5017 $ hwp5html samples/sample-5017.hwp $ find sample-5017 | sort sample-5017 sample-5017/bindata sample-5017/bindata/BIN0002.jpg sample-5017/bindata/BIN0002.png sample-5017/bindata/BIN0003.png sample-5017/index.xhtml sample-5017/styles.css $ hwp5html samples/sample-5017.hwp --css body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 13*/ margin: 0pt 0pt 10pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-1 > span { line-height: 1.3; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-10 > span { line-height: 1.5; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-12 > span { line-height: 1.3; } p.parashape-13 { margin: 0pt 0pt 10pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 10pt; min-height: 1.3em; } p.parashape-14 > span { line-height: 1.3; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; font-weight: bold; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8 { color: #000000; font-weight: bold; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9 { color: #000000; font-style: italic; } span.charshape-9.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-user { font-family: "바탕", serif; font-size: 20pt; } .borderfill-1 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-3 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 2px solid #000000; border-left: 1px solid #000000; } .borderfill-4 { border-top: 1px dashed #0000ff; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-5 { border-top: 2px solid #000000; border-right: 2px solid #000000; border-bottom: 2px solid #000000; border-left: 2px solid #000000; background-color: #99ccff; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAVSURBVAjXY2CAgP9QmoGJAQ3QRwAAg8ABDm14IFwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6Mzc6MzcrMDk6MDAjOvM9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM3OjM3KzA5OjAwUmdLgQAAAABJRU5ErkJggg==); } .borderfill-6 { border-top: 1px solid #000000; border-right: 2px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-image: linear-gradient(0deg,#3f3f3f,#7f7f7f); background-image: -webkit-linear-gradient(0deg,#3f3f3f,#7f7f7f); background-image: -moz-linear-gradient(0deg,#3f3f3f,#7f7f7f); } $ hwp5html samples/sample-5017.hwp --html | xmllint --format -

한글 2005 예제 파일입니다.

머리말입니다

본문 내용입니다. 본 문서는 글 워드 프로세서의 파일 저장 형식 중, 글 2002 이후 제품에서 사용되는 글 문서 파일 형식 5.0 및 글 97 문서 파일 형식, HWPML에 관하여 설명한다.

A0

B0

A1

B10

B11

table2

3 2x2짜리표

가나다

다음 문단

문서는 먼저 글 문서 파일 형식 5.0에 관하여 설명한 후, 글 97 문서 파일 형식, HWPML에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다.

미주입니다.

이건 각주이지요.

다음 페이지

================================================ FILE: tests/cli_tests/hwp5odt.txt ================================================ $ hwp5odt --help usage: hwp5odt [-h] [--version] [--loglevel LOGLEVEL] [--logfile LOGFILE] [--output OUTPUT] [--styles | --content | --document] [--embed-image | --no-embed-image] HWPv5 to odt converter positional arguments: .hwp file to convert optional arguments: -h, --help show this help message and exit --version show program's version number and exit --loglevel LOGLEVEL Set log level. --logfile LOGFILE Set log file. --output OUTPUT Output file --styles Generate styles.xml --content Generate content.xml --document Generate .fodt --embed-image Embed images in output xml. --no-embed-image Do not embed images in output xml. $ rm -rf sample-5017 $ hwp5odt samples/sample-5017.hwp >/dev/null 2>/dev/null $ unzip -q sample-5017.odt -d sample-5017 $ find sample-5017 -type f | grep -v 'manifest.rdf\|manifest.xml\|content.xml\|styles.xml' | sort | xargs sha1sum a651496e95dd70a7a5c3ae08f8829cecd5e6ed7b sample-5017/bindata/BIN0002.jpg e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/bindata/BIN0002.png e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/bindata/BIN0003.png 90103cbc494e4481329d458fbebd5bcd9286de1c sample-5017/mimetype $ cat sample-5017/META-INF/manifest.xml | xmllint --c14n - | xmllint --format - $ cat sample-5017/manifest.rdf | xmllint --c14n - | xmllint --format - $ cat sample-5017/content.xml | xmllint --c14n - | xmllint --format - 한글 2005 예제 파일입니다. 머리말입니다 본문 내용 입니다. 본 문서는 글 워드 프로세서의 파일 저장 형식 중, 글 2002 이후 제품에서 사용되는 글 문서 파일 형식 5.0 및 글 97 문서 파일 형식, HWPML 에 관 하여 설명한다. A0 B0 A1 B10 B11 table2 다음 문단 문서 는 먼저 글 문서 파일 형식 5.0에 관하여 설명한 후, 글 97 문서 파 일 형식, HWPML 에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요 한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다. 미주입니다. 이건 각주이지요. 다음 페이지 $ cat sample-5017/styles.xml | xmllint --c14n - | xmllint --format - $ rm -rf sample-5017 $ hwp5odt --embed-image samples/sample-5017.hwp >/dev/null 2>/dev/null $ unzip -q sample-5017.odt -d sample-5017 $ find sample-5017 -type f | grep -v 'manifest.rdf\|manifest.xml\|content.xml\|styles.xml' | sort | xargs sha1sum a651496e95dd70a7a5c3ae08f8829cecd5e6ed7b sample-5017/bindata/BIN0002.jpg e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/bindata/BIN0002.png e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/bindata/BIN0003.png 90103cbc494e4481329d458fbebd5bcd9286de1c sample-5017/mimetype $ xmllint --c14n sample-5017/content.xml | xmllint --format - 한글 2005 예제 파일입니다. 머리말입니다 본문 내용 입니다. 본 문서는 글 워드 프로세서의 파일 저장 형식 중, 글 2002 이후 제품에서 사용되는 글 문서 파일 형식 5.0 및 글 97 문서 파일 형식, HWPML 에 관 하여 설명한다. A0 B0 A1 B10 B11 table2 다음 문단 문서 는 먼저 글 문서 파일 형식 5.0에 관하여 설명한 후, 글 97 문서 파 일 형식, HWPML 에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요 한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다. /9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1 c2luZyBJSkcgSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUI BwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8n OT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgBLAH0AwEiAAIRAQMR Af/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYX GBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV 1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAAB AgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET IjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJ SlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5 +v/aAAwDAQACEQMRAD8A68L9KeBQBS1zlCAe1OApQKdigBuKUKKdQBQAmKAKUD86 WgBAtGKcBS4oAMUbeaXFOAoC4wLRtFOxS4pDG7fajbinYoxQAmPajFOx7UUANxSY pxozQA3FLtFOz70lSK4m2m4p5FFAXGbaCBTqXFAXGYFKBTsUCgLigVIKaBmnqOKt BcUCpABTQtOAq0K4Y4pQKXFOAqriuAFAFAGKdVCEA4pcUvagUwYoFLigUtMkbz60 vFLmlxVBzDeaOadiigOYTFGKXn1owaLhcTFGKUgetGDRcLiYoxRijFMLibfakKj0 p2KM+9AXG4pDTjS0CGGkp2KMUAN20mKfikIoGRmkIpxFBoERkdaaQKeRSEUAR49q Kfj60UAZQFOAoFOFcZsIBTqAKAKADFOxQBS4oAMUUYpcUAIKcKXFAoAQDilFLn3o xQAgFLilFLQAm2loxQRQAnpS0UUAM+lFLiikMSjPvRRQAUGlz70Z96kVxMUUufek FAXAUA0Ad6VaaHceOlPHSmjpT1HFUiWOxThSDtSgVoiRwGKUUCkFOIDhQKKDVIBR ThSClFUhMBS0gpaoQuacKbmnCgBKUUtIBQK4UUtFAXG5ozS5ozTAbto207PvRigB MUlONGKAGkUhFPppHSgBKKWkNADTSEU7FJQA00hFONIRQA000in4ppHFADaKWigD KApwFAFKK5DcAKcBQBSigBAKXFFL/wABoAAKXFGKXHpQAClFFLtoAAKWjFLn3oAS ijPvRn3pCDPvRn3ooz70ALikpc+9BoASilNJQAUUfSk/hoAbiilNJSGGc0Z4paKA DPvQKM+9KKkVx4608fepgp461ohMkApR1ptPFWiQHalFB6UCriA6lpKWhALn3pRS Cl5qiRKWilz71QC0UooFArh2pR/Oilz70BcbijPvRn3paYCZ96Wl70lABRiiigAo xRiigAIppp2KKAExSEU/PvSUARkUhpxFIRQAGkIpxpDQAwimmnkU00AJiijFFAGU KeKQUoFcpsApwoFKO1AABQKXPvRQAYpdtFL2pDAUUufejPvQAZ96M+9FFABRRRQA UUUUAFGfeiikIM+9GfeijPvQAlFLn3pKAExSUp60lIYUlLSUAFKKSlFAEgp4pgp4 qluIeOlPpopxrREAKcKQcGnY4qkAgpaSgUxDhS0gpRViHUuKSlFACjpSim04UCuH elz70gpwoC42iil/hpgJS4paKAFoFHvS596AEoozRmmA00UppOKACkNOoPWkA0ik NKRQRQA0im08000AIaYaeaaaAG80UUUwMsUooFKK5jcBThQKAKAAClx1oxTs+9Ik MUufejPvRSGFKKSigApaKKACiij+GkMSilooAbRS0GkISjPvRQaADPvRRn3oz70A FFLn3pKAG0lLQaQxKUUlKOtAEgp4pY4i3II+lSeSw45ya0jF7mbkhBThzRtI60oH cVaQAKdSAc0uMdaaQCUopwXdnGeKAjnoCavlJckIGp+aURsByOKChHJNHKxc8e4n 40tBUg0e1Fh3TFpRSAUopiuIKWkz70tMAFFFOoAUUUdqB9KAFz70Z96M+9GfegBM 0ZozQaYB3pDSmkNMBtBp1NoAKaadSGgBppDSmg0AMpDTjSGgAooopAZYFOFApR61 zG4gFKKAPWlFBAoo+lGfeigoKXvSUv8AFQMKKKKAFoooqRBRiiigAoo/iooAMUHp RQaQxKM+9FFACZ96M+9FHWkIXPvSd6D0pc+9ACUhpaKAGU8UypB0JpIZZtnZTx39 RV0sCvJGaz4I3mcKM9a1IrNE5f5iO/pXXSu1Y5qkktSsACQpXPowp6W5ZiwBA6HJ q8IkHykfSnF1GFx+VbciOZ1mtikYAuMBjjngdfYU4xLtJ8o7iPX9anMuGK8D+QFQ lwcgqQoUnngL+Pc1XKuxDqyfUYoKjAVQenJ65pu9gygcxnrg5H6VIJBwFCnJHzbh lvz/AB+lRrMgViZB8owFYN8x/L8MAU2rbGblfdhcXCKgc/MozvAIAwOp9aozz7VL wMpBIC7T29uOtW0aNtxbgpw5IGTjn1qNIEkg4jlUFQdpXIPvj8Kiab2BepRS8dio yytnIA6bR1/oavxSB3KnoRlCB1Hp9artYC4ZXGEYEn1PHsaa6ugQRXCkqdyqfX04 7Vkk1uVecdYsvDJUMMYPSgdKrLOPLk/hy25VLZ57r9OuPrUySbjmMKYyoYEtzg/0 qmuxtCv0kiQ5oFNaVFUliemRx1oEing8ZoasbqpF7D/4aWm06kWLS596SigAzQaP ajNMAzRmjNGaYBmjNHejtQAlJTs0lACUhpTSEc0ABppp2fekIoAaaaelONIaAEop aKYGWBThSClFchoKKUUZ96KACinUUAFFFFABRRiigBO9LRRQAUUYoxSsO4UlLRSG IaKPpQRigANJS0lIYUZ96KM+9ACZ96M+9L3pM+9IQhpKdn3ooATsMmpYIXlbYoyT 0qMKWKgck1u2Ft9nhBYYkbnPoK0pQvIyq1ORDra3S3Tjl8c1MHDLxznse/aopXbA GCGJ5OeMetQxI6hmL5LDHTB78H6V3xikjzpSlNkpkz8uckcg0jv8m7fgjqfQfl61 Vgl3MyuBvXIz6+/49fxpL+ZoVOOh657+1VoVGk3uSbsB2AIPHJJBz61k6rfJZRG5 kPEZViC3JHfn/PSrdn5jWRkuSBJI2QB2H+RWTq0C3qeWTlSdjfTOTUydlobQox2Y v9urLax3RuCkcoVkLjooA5Pucn8qlOtPfLG9u8pjOASPl3NuIJz1/AY6Vgz2qyyW tqM7AwAx90DgBf1q5d2/2GwFtbAB4SwXH4ZNZczNfYQNr7XGGZFmblgoJYnABznF EuoboC4I3ODgKAOM/wCIBrJ/s4hBIXbcVCDB+7kfMf6UjqtsSmchV+7/ACGaTqNL Uh4dPY031QKzPvlaRV+7jr1Ibb1Ht/u+9SR3i3FvGRJE+4jadoKnPTJ428noOlc9 FqKK+HcFxnhScDNPhZbe3lkDLtbI5GdoJzkEc9vyNT7RNmM6Uo7HRBwq5Vdpzgrk E59Dkd+2DUS745UeFirKdxjJGTwcgen8qqx30NwIRFLuDfKxVTlgemQRgEZFPlMU yhgSXUDcPQn3HTvzUyk1qhRSkrMtJOsiuCz+buzkKMtk8fhSNOyEHeSgOOByPrWe XZZMOy4P3t+en4dqlW9uI3O4AxggFmAYNnjPXpUqpfcTg1tsaUU4dchqnSRWOM8+ lZbmIMCkyl2O7avQD+lMaYqWYbgRyTTdSxdObRuCjPvWZbakGKhmDKe/pWmGDDIO RVxknsdMZJ7CZozRmjNWULmjNFGaACjNGaM0ALn3pKXPvSUwCkNFKaAG596M+9L9 aTPvQA00hpxppoAaRzRRRQBmAU4LTRn1p3PrXJc1ALS4o5oGfWi4AFox8tKM+tLz 60XATbS4pBnHWl59aLgFFFKKBCYoozRQAGig0UAFFFFACGiijNSUJSfSlpwRm6Am mIaaPxqUwSAZIp6WkjdF4o5ZPoTzx7lcmkHPU1oJprYyx4oe0ReM1fspWu0Q68V1 M/NGO9TywhTwahK7jjJH0rNxadmUqiexc0y386cSH7q8n61q3MwgjZywAUVHZRC3 tx2Y8k1Vv3eSJwjbcc9OGHT8D7120oWWpx1G6k7ImFwjRbiwG4dCf0FQPqMC5AkD diD1BriPE+uW2l6fLhZVuB8sUcRbMrY+UKPfP6GvOYLLxjfy+dDNK8hPLb9qIeuA x+99QMe5puskdEaKitT3ZbmLexAJ6MD+hH4VPcwG9tNm4qysGDL9a8Vj8QeLPDKq +r2zTWxI3SKQ236kf1r03wh4qtNetf3Lhj255+lOFVS0KcdLo6CUBIAQMbVB/GsK 5wqygcZUEEds9a37kFrdgOpHUVhX6EQzSBcqyFRjjGOlVUWgombpSq826UgsGyo9 DnIq/LhpcEgM3B/PmqOkKkFiXYYbduLHsKgkunFypVhnew61zOVty7XZsyun2YKG 5VgW/wAK529mEt0UjJJJ+cdhV43RETxgfM2D+lQi3ECgnGSQzdyP/rms5SuXFWJb Swt1AebDOOQvXHvV2cR+TswFRRyvr7VUScW6FnBDMc88n6VC0zzyAF8DrtHU07pL YHG+5UuY28syWxZZgSVYMflOOw6D60W2rmBTBJjC7Q65wQApxgd+cZrQJRk2lSB6 EYzWPf2775JLZFEyqdhKjg46D2PSsm3HUxlSXQ6GSVbiVkLZIAwGPIx9agLSRFlR UZQeQfunPasrTdQctAbhQ07Pt2qeCP8Aa6nPJ/KtZ7hZQcouA5X5h7eg9s1EtdUz JO2jEFy9m4hBBRgoBZAST3Gcdver8VxC0bAuCoIADDnH8zWYVguYijkttY4O7lW7 Z55FR2l49tMUkR4y2cAYO3sSD+IpRn0ZlNcrujUlWGIh41wpIXIHAFXrK9CKEPKn oc1mCVp4WjBZJACAWJO78aggmYHg8Y5z/CapT5XdCjNrVHXKwZQQcij8ay7C9BQI 7AAd600cOu4cj1rrjJSV0dUJJq46iiitCgz70Z96KKAENIaU9KaaQCUUvak3UAON Jn3opDTADSHpS0hoAbRRRQBlinCminZ965TQXvRSUtAAKWilz70AJRS596M+9AB+ NG3mjn1oGfWlcYfjR+NHPrRz60XAM0UppM0CCjtR2oFABQaN3NW7Ozadg7D5aIxb dkKUlFXY20tmmYFhxWolvGi7QoqzHAkaAKMUoQCuqEVFeZxVKzkyuIgwBIFKSEUY 6dKkZgFJHQVTllxGccsTxWq11OeVS2iCW4CHk8dBVB5wrs0n/AaV4iyiWRi20cCs 65lLEtjIAIFRNtGDm9ywblHJyeKjjcNcqg53EY5Nc1cahJbgkgjmtbw9cm71JNxz hSwxXNe8kh0q8r2R017ceVCEB+fHy9/0/D8qqXFyzwkqNygBjgc4PpS6vbvcW5WN 2VtuUZRnBBBx9CKyNKvlmnNrPMJCVIGcqR7V2dLHpUUrczPPrS8TxH49vBM2LXTU 2xJx80jHBb34Brb8ca9ceEdMglFmxklbZDnAUkDJyR7dq5HWLK98G+NLm5KN9lup A6SbPl68qT+JrD+ImtvrM9lOju8Soy4Ixtb6duK5opXfMaVLuSS2O38I+Iz4l04m 7jQSI5jYAZUkjqM9iDWVZqfB3jmGG3crZ3WHRTxtY9V+mKZ8NLR7ewJkUiS4kMoB 6hQAF/r+dReO5f7S8ZaXp9pkzLKqFh+vT0BrPm95WHT0k10Pd55lbTFlIJDKuPxr ldYuH8lVUkLuA/AV0F3JHBpsMIf7qKF567RXH6tcJI8ShiCTlgOxrqqStEqK1GzX qxRkbuAuOKzbV3nmZyT97INR3cxPydf4celWbVVtrIuxGBlq86Um5HRFaC3mqx6d ubcvmdfm7D1rgdT+IF/PcG20lC7A/NKfWsjxVrct7q8ltA52uwXr+ddRonhJLfw1 cakZoFW2RmdWOGfAycVpG5E5KKOfF74uvSX+3BWxwB1xTH8TeKdJkRbv5xnhmUc/ jWXH4ovU1JZvlWDdjygOAufX1r1lLC01zTfJmUESIGGBk9KiUpReuxmpdGY2hePU vZRa3MU0U4HO7H6e1dgksM8eQVO7rjvXj9/brEwtGfZf2twsUTD7zKx6H1wM16Fp VtcRRrmQsoXktRN6XRsopouzwGCSOWMlQjFsKeuevTmn2t7MJNkyFGkAZCCeCG+V se4zUhZ4yMKMHGeP1qneIjM1wFcsFIyADj361lexhUp6XRtGXzVMwAXdjcB8uGHb 3/Hr+NPuWe4hQwjcyspABAOPT8axobhri3UhslicjGC3GD+PBPsauxXCMu0qGHIY N6defzz+NQ5a2OfluizYXrosasCW3NExJ6kHj8eoqadC0peMEkgfKOg96x5XFvLs jcASDzE5Jww9PYit3SFW7mEjFSFGAc9e9aQTnoc7VtGWLS0vGUMbcrzjLNW9bLJG m2QqcDt1qSLA5I56/X6U9mCgtkYHP1rvhSUOoRm1sBfBwAT0p4ViM4xUJZldSTgE kZx36jFOWYuCDx93B7c1rFLqW60kiQjBHPHemElU3dicfT60rNtXP3Sex71Xlc4Y ZGPQ+mKUmkJVXfceLhN20nmpAQwyDkVmvnGTkbRnP9KkE7r84wGIyVrJTtudEJ33 L1N60kUqyqGB+vtTjVrXVGm4Z96M+9GfejPvVDEpDSmkNADKKX8aKAMsU7PvSClr lNApaBRQAtFJ2paAFz70Z96M+9GfegAz70Z96M+9GfegAz70Z96M+9GfegAz70Z9 6M+9GfegAz70lL+FB9aAJIIjK6qO5rooYlhjCgc1jacC1wuBW8T1NbU0krnHiJvY UjvmmPkA460qNuFRysQOOPetUtTlk1y3IJWCttJ5I6VCEDEg9hT3AZ92STShfmPY Yzitlojn3ZTlLNgAYBz+FZFxGqO6AnCnjP61tS/NGx7gk49q56/m8rCudrHJPvms aq7kNmLq2wW5zgHFT+AZUe4mV0JYKdrHqOef8iuf8SagY7cqqtzx+Favw6mVriVe 4XIJ7VzQd6iRVNLmueiTRl4mUKCpB7ciuP1vSfMWGWJnRt+47GOVb29PpXcgB4wV IJx61Ru7UMAHXaq8qy8Fa7HqrHrw0SsedXupTJaNa67Zm9tVG0yqm4gdsr3+orC/ 4RLw3qQ82zvBGrNym/OD2GD0rvb2wWW5ZCQwC4ZxkHmse60mytArxwhmU4Jxz+fr WE4vdm8WtijHoA02Evbaw0SlcFvlYkVyNvpk1v4tj1Ay+dEkpO5z82APX1rqG024 mYkoViJyoqpcabJBK1zI6qqLhVPAzWNupSVtjSn8QT3jiNCGKrjI6Csm7uJ4LgTT MSCcVDbXdrYfOZ0Mp5PNLqsi3kKyRurcZwDWdSpoaqAkt+jEsHzWXrfiJ0tPJV9q sNuDx+NZ8t0WndAhwB/DTVsJNRh2zJwp3BsdRWSV3cd7aHHqkqaz9oKs4VgxbFei JqX2rQZrKN/lmQryehpml2VslwizouDx06j0rq38M6JccRv9nJ/uvj9K1s5NNaGM 0mtTw5NPuG1QWzKQythiOgGetexaJex2Vr59zIsUUKj5ifTsPU0HwfYLIrPds3qQ RzirYsdJt2yUMpTpvOV/KipFy3JUWc7pGgSaz4iuvEFyjRQs5MCOPmI9TXaBvLiZ FQYHqetZZ1hHdoFUoq9COMD6VVe5maZglyzqOQNuKh6I1ia88weM4xgcFhziqcUg lVoZUBVuo9aYryPCd20NjjnrUE7SRIHjDEjBYA8YrNu7G10GlxaBlj3KsTblz0bP X39KuxzhmYrhVU7lIPG3qpB9ByMelZV7MZIFkO0kMCPmwKrQXqhXUN90t93rjr+N ZSOWcbO5p6jeBfLCcNvwGDAYz713uiqy2cKMcsqjO3GB34ritC06a7u0uXQeUvzI T3PYj2r0OyhZcA4bPTd/nrXVhYu9zkqu2pdDHbtPXHbpSAkEsckhc7vWhmK4xww6 HrjPr7Uyf5oWcYVl4A9fY13Puc6ldiTBhuYN8vBXB645A/8Ar1ZgK5ycbm6j0Hp/ Os9rjMW8nKqB8vpwcj/PrVuJSpbONoI247Lj/wCvSi9QchxlZlI2nIO3J/nTZIz5 SszNnrj+n6Uxt0s6jewVfmyO+e1TTEs2znaCrLzj8qpq6uxJ6lS5YYOG5Y7h7DA6 +9Z6TsrMDhmz8uD19qs3bo+1AMKcn61kyHZM5Pyg9DzzXHUdmdEXZGrHM0TgoSFJ OeeDWurBlDDuM1zkM/mK2C3qOK07CY7jGWyDyKulPWx0QkaBpDSmkNdJqIaQ07Pv TTQAn5UUflRQIzRThTRThXKaC0UUUAAoopR1oATrRn3oz70d6Bhn3oz70Z96DQAZ 96O9GfejvQAZ96M+9FGfegANGfejPvQaANLSATMa134zWFp0xjuRk4BreYZGa3pv RHBiU7jUOD1602fBABOPSmI26XjoKLg5Ug9q1S1OS94kLA4Hbin7gyZHUDFIvzRj bnOMc81HuZAVG0sTV7kKPUoajcCBSo+8eK5+8IuJi8nOBW1qPzEvJHkDsGHNYksr yOCITsH+0KyqN3syZI47xWj4hwOC2Dgdq1/BUy290I4xkFeVPUfQ+lT6tpxvrUoy bVXnO4da57R7x7K+xG8W1WKnc+MH61zfDUTHTVrXPaEjYorIGU45HHP1pXL7MFDn 25osHlms43zFkqM9TU7rOD0iI/Guvm1PUhsc9fuibnJCuBiudubmOOcNcOBu+6Ox rr9QiEifvwoTvjNYdwlh5ihYFdl6EDNOSujaLQ6ER3FqHCfKw4OK83+I1xc2MUUU cUhtmP7xlHQeleswKZIgpi2qBwMYxWZq+kxahayQzIrKwI5FZTpaFxlZng1rNZaj bmaFCgU7TuqCe/jtZjCJ2VscAmtLX9OPhm7a0jgbyZpNyMB39Kn0j4c3HiC4N9eh 4bdjwvRseteeqLcnrod8q0VBaamf4ev0ur8wYDyscYHNemWmhkW58yMLkU7QfBOm +HJxJBHuc8b35Irb1W4lt4GaOMSHGQq10Kmkrs5HK70OOn0z7PMzso2qc5qZra3a 2BBYSMuQTVW81yZdqT2zhWP92rVpIZCM7eny57VKdtBNdTNS3KyBAGLA5yxPNWHk m85UNuFHQbe1XpIdzh0Zd6ngDpTzA7Ydi2Rjp0qXJjsUGtSWBAbcfvEdKljgRHZW xgc8nBNXxEm3cW3H0qaOCJsOEBb3FZy1K2KJiAO4AKO5HXFVbjOMB2P4Zx+VbUiD gHFZtxb7lYg89R61LViWzlrm5KJIh24yeO350vhqBLlzds+WyV2lflX8e5/SqWsr M9yttCWaSVtoVlwc/X+tdjomkSQWsAAUFVGQBwTStdGVR2On0qARqBGVYDByp6fh 2rpYmcRdec4Ge/0rH05SqqnAAHOP8K2YmBTawGevbr2r0aEbRPLqyuyQglmIOe/F Ru2yN8gcr096lALMGz2GKr3bBY2YA7QDnjpzyK1krIwT1KLtiQBApAYFs9xxkVqB 8Hkcbc/0qgGDMyA5k3HqB19vfFW4juUkkADAGRjOP/1VFMcmPRd7F+jZ49OKZM21 lcfLjKkdhU6ZZWHcc7TVHUpAuAGIJOFIPT61UlaIRdzPn8yWZUBw7ELwc47k/wAq spAiwFJQGZufZfpUaAtcDCgbRgsD2xzzU5Pyq7cAEsF9Vx/+quZJas6IvUzoIWgZ kYHaxIUk/eqWzm2PkYUr/d6CnzOrFW4BUgD2qmilblsEgH5tvYZ7fWstpKxvtZnU xyLIiuvQ9Kcaitv+PWPp930qU12x1RuhDSUpptMoXiikopiMwUvakFOFchoLQKQU tABRmgUZoAM+9GfejPvRn3pgGfejPvSUufekMM+9Gfeko4oAXPvRn3pKM0AFGaKM 0APiB8xcHHNdCXIhUKc+tc4pIYYrbsphJDtPUVtSa2ObERvEsROMkd6ZKNz8HFAD b8AU2WQISSckV0Ja6HBZWsKWKp1AFULm8CKxjXJXrTZ52nXg8DrUQj3PkLuDcH0F UZSl0RUdZbjD4LDrSxWG4Ox+VV7DvV63tzGrlicngfT6Uk+2M8EL0wTyc/TpU8ul 2T11MPUIphGwERIxjJIVcfU8VyqaZbpLueVWlPBWGJpSfY4wP1NdXqkrSMxBDbV+ 854/CufLzO4jWQux6KOFPtgda5qlrmiSWp3/AIYkjXSY4o45FKEgq5BI/Lp9K1pZ yowSin0LZP5CuY8KxukLxvMWGQ22PhV9gR1+vA9PWuoCRovyKFHqBWqtoehB3iik /mzA72GwjkFMH9aqCO3gb92i5HoOtXpNxJAPHc1Vd4YT8oBYda2WxqhfOzGSVKis 25udqkgD6mrL3LOpwmBnv3rmte1aKzjZnbceiqOpPoKmpJJFwi2zk/E8S3mqWSSg N++DDIr0DT3j+yrEQFIHbpivJb9ta1C+iuY4QkcZ3YbrXeaPfvc2gSQFJQMMP8K5 oPV3NZLQ3ZVDFlT72OPTNczfLqMUgc/MmTkCthgzRhFkKlT971qGeK6gYyh1lXGQ tTPUUdDHt7yO4Ui6hChT/EtQ3WmtNcfabKRTER8yj+laqTW06ul0iqWHNOg037Mu +ylDx9SrVk43Q72MW02rLtZMFePxq8GBBABA9xViWJHbeUAJ68VG0IXkFh+oqGra FXuMZRxnr2IqE7wGUPtHripXVwp4BHXIqCTOMh2H48VL0C5E80kZILqc+rf0rJ1H UhDFvZWBHRh2qS/vPIB8xSwx94DNcjK1zq+pfZrYv5IALN12j0685qd2TJ2NLSHm 1PW45ZELQLuXdjIJPGM9q9MsoSsMaZJZc43D7w9/cVzvhjRobOxS225XJ3MxyxLH rmungjWyPkEMpXkNyQQemM9+K1jDr0OKrNPRFy3b96eSCozkDt7+1aAO5sIcE8Zx 3rOjYKxJGSpzweR9asxzAOpOAGOef5V1QlpY45rqXolfyxuOCOv4VWuWLM0ZGA5G c9Dx0qd2X7OcYIwcVTkkAlGBgnAXceM1pKSWjMkrbBHDFJcmZT0PIIz/APqq4F+8 QByxORxxVa0Z2YhwAM5JX+tSlTuD8kHJ2k4FEXpcT1JpWwQdxGOuO4qjesFuEdEV sKerdSeBxVuWZNgJYEAY45rGvbgea0rAEqPlGDwfX61FSSSKjG5PGzcPuwCjLt6Y OeKhuLkIxQDaQAvB7f8A66igffbgEljjaeeQTzUN6+/cMKGJ3fMPujpXPKVlob04 63HiZW2puOe4zjFSg/viSOF4rOtmWIhiwBJ6n07VpachuJgW3BQ2TtXI/wDrVMdW jeN2dHApSBFYAFRginU7HGKbXajoGmkNOPrTTQMTFFFFMVzNFKKQUormNAoFApKB jqXPvTaWkIDRRmigBe9FFBpAHrRRQf1oAb3opaSgYUUUUAOHNaelMocg8msoGr+l MTcYPFXTeplVV4s2Zc4JAxVIqXZgee9aLDPFVdvLBME9CewrrjKx5c731KrRKFK4 ADdabGgiUKmWGcA+lWJI2+Zs8Hr61DK2yPAI4HOK0TvqZN2EQBcsxy2az7q8it4n cDDNn5jzVud9kIAbkjI47Vzl2JG5OSNxGO9Z1JWWgRM28ne4bIXczHHNV1l8t9ib WLDDMehHoPb+f0qwbdtrKMAdGY8D86VVS3kBAwMY809W9lHb61xu71Noxe5t6A3k XQDMAzDOwcEe5HpXYKu8A5NeaJNILlWhdkG4cL94/U967+0md4VDn5sDcPf3rog7 o66T0sWXXjaAMVQntwilxHuPtWkDxzTGAPetEzVOxymoTTxwuwX5yOFHauet9Cnu 5PtN226QtnBHCj2rv57ZJWyVzVUwopIwBgdBUSjd3ZvCStoclPp3kKSACpOOlZ4W S3kZ1TGO9dVeRqzYHOayLuL5SNuT2P8ASsJNJ6G6s0QwahHcoUc7W6Y9atK0iKoj bco+8OorIltSy7kXH06irFtdPBGUIJOAM1CqJvUlxtsXzBaXUgSRNrkd6Es5rBj5 bZT09Kje7ElqJxHlkbDDvUhu5GLRk8Fdyn+8P8abaI1Iri4QqWABYdR6VVSVJG+b 5STVhIkDYY/I33WP8J9DUc0Hlsw6MOenB+lZSvuNWCSJlXOOB3qjcIdpdQAatx3L I2w8g8bT/So7mAupe3cEdSp/pUSSa0E3Y4/V5/NdbViUkkYKrDt9a2dO0SGwVYkR chQN4HLN3P4/0FRxW6S6sGmjG5AQp6AE+tbptZpBGInCheWGM7gfQ9qUY3MKk9bF jSoyqlGHzKADgfyreaJLiERSqSp5DjqCKqwwIsasDkqoPA5/z1q2GYqqgYLc7uo+ ld1OK5bM86cmpXRTNlPbkur+bFwM4ywFJb3ASYBlYknncMYq48gDbVyqr3Hemi4D RBpEVz2PtTdNJ6E819yw8oKqgxhvSs5nBZfmBYHI2njHSrHmW+5dwZW/z+tV3tUH zxXCqpO0ZGOvrUyi2JIngdTLkAg7QSfWpkkwwy2dvOSe9Z4tLlXTDoyj35FTlJwF Do3HBUd/Skm0NxuTGU7SQo2L8zN0xWXdSp5h25bzO59O5zU08tysLItuxxk7c/L0 /WueaPWLmYhrXyUXBUl+B+FZVJN9C4qxsRuqsMA525bd1Jz1qlfMyTggFt4yrfe5 Hb6VJDazEA3UqqcnKx9OtSXO1kjUIAFOF/2ayd2jaKsjPjtnmmDyN3yewY+1dlo1 o1vbBySCw5XsKyNKshPNsLABRuaupAAAAGMCt6EOprSj1FoNLn3pOldJsIaYaeaY aAG0UHrRTAzBTs+9NFKOtcpoLn3pRSZ96KAClptLSAdRQKKQCUUUUwCiiikMU0UU hoEJ60UlGaBjjVrTj/pa9KqHvVmwZUulY/hVR3RE9mdGVz1OfamNtUjA/CpAwZcg 8VFIu4YB5FdKPMmyJ8tkH8qpylLcFmGQavBTtP8AeI5rOnDOqqcHPWtE+xjJaJmf NdmSQqq5OOOKjkjCW6uQxLnLZ9fanoBHclSuWGcE1Be3e1cr1YYrNvR3CK11MS/c rIAccHKoOg9zVVZZHZnkbcD0GOlTSo0swJ78k1LbxLCvnOMjPyL6n1rl1b0OhXYG A2abyFNwy5TPIjH94+9bvhu9EkTRbySpyS3JJ9z61zl3OWbaeT95j1/CnadqbwMb grtjU7VReNzd/wD65+la05JM1g7aHo6Nnig8is7TtQS6gEg4ycc+verwfccCui3V GyBu9V2VWYnHOMVYdlCn2qu7BQWHBHSqWq1KTa2M66gKsePm7VmTwFn56EcVtzne OoziqMyjjPWuedNNm0ZuxiGEK7AjjtUb2wLZArRkjXJyaaQqrweawcEXzNlW3gAE qEcMufxpUjzDtAG5OV+npVhOJMge1QlikufQn8qdkkLUiLKnzEZRuo9KazZVUflT 9x/T2qWVeqDODyKp8hSjdD29KliIZ8g7JECkdGHesqe+e3kCFGwepUZ/L+da8yyF ShwxHKse/sazYAbjKyJja+0ZPI5xWTTvoROVlctWEKXkG+TDOrcMFwDj/Oa2reDy 5E4I5yD2Pt7VU0+3EUKgZwpwP93FaMTlG2DGD0HpW0Y21OOUrk4dhtJRioIAG3rz 3q0CdzKSqkLk8dagQ7wMH953yOg96Ur5cpYk5OATn+lbxdkc0vMa8MgU5VVLDK4P OPpULx7Zo14x2wcc1bJaXDZVmB2qfan7gc8BgOgxVGduxnPlWkZsj+HaRwDUZLrG uQvJB49PWtBAZJArbQuDxnmoZYY0kJGGKtwD2/8ArVLGisJGDSMd3Qc+3tUIuXVE w7Atxz6e9XHt0aRsoFAwT83Bqtc2oVgwdVDZ4zke1RK6LRE1w43Au3Tp6UwSMxGW Y8YNSTsZAsKptkXALDkEetN+ySAbix+VscHIP1rF3NExqvgc4A3BTmllO2Lkck/M PT3pyQICMsC3B+X1pLkK5AHyke/b0qHexrHY1dCcbXUj5iM5rbJPrXOaU4iul5OH 4x610grqou8TansH40hFLz60hz61tc0uBphpTSGkA2ikooAzQaWkFKK5zQUfWjtR 3oLYGaQCAgUbxUEjkZ5qCSfb1NS5WKSuX960b6zPtoHeg3o/vVPOg5TT3rRu96yv to9acL0HvRzoOU08jrmlrOS8HrUgus85FUpJhaxcoNVxcA08TKaBElGaZ5i0eYvr QA+lDbTkde1MDKe9BYE9aANyx1EMqxydR0q+cHDCuWSRUdWz0Nb1rfx3C4Q5YDkV vTlfR7nFXo9UWJW5IzyRxVGSMBAuelTBzINxGN3NQzuEQg/jXUkkjjl2M+ZwNzHG elZNxs3kFW6cVoSqGUvn5c1RubhJmVlHKjGfWueeo4opgIZCpyuBlj/Sms4duDyv AHvVhlUqeQSDub3aqZUK2/pisHoarYqzr5smwnaTy3v71UnffIsSD5F4VR39zVyV lIZucnjNZlzcGAMQDg+nGfqajmNIK7Or0WcJMkYOSMhiDwDn+ddSkmVP515rpN44 aNy+0AcKB0Gewrv7NjIiknPGa76Mk1Y6Grall5h69f8ACqryllwSfarBjBOcYP8A KqsiDGO4pyTKjYgaY/Ng9D/WqUsziYc8A/pVkkqCTzjP8xWdKG8726VzVG0jSKRW urtvMyDjOCahjvSzsCc//Xpl+SGwBz/SorSBywcjAB7965nJ3sbJKxsQsWUORyab IBuPFLGNqjPrSuctwK16GbGhg0Of4l/lVWVlBHTk4NToCWIPRgRWfc7lfbz1qW9B Cu+1Rlvl7exp0VurqxGAHGTt/nVCZz5bDqRlhjv9Kt6XeI4WLcAyruI9R3P6/rUx abszKqvdNOIbdyDBBPNPRlGCDgknil288AZPIqN1ZmIA3AnBx+tanDK5OSGZX4Uq f0qwAPlLYYE9c1URjtwcYz+PtxU6MIoQQo3E9KuJnJXJQREpwPlJ4Oc4NOiYBiOe eeTnikQEjADMCMgseAacIXZTgKpxk5PWtEjIjUbZQu3Cg/eB7mgwFmK9QeAT0Ipc p5hI+bHzZ/nQ7oq7nfKs3BUdKVtNQ1K8vlrySWlAwRnt6/Wmh4VjZ0VguNpVuStM lUPNkYZBjOWIxTHmVWKoeAeNzcmsZSNYxbZHC+4s6HnO3BH5UpLxcfdDNu696iBE as285DYx3YnoDUYlaUjJJJ+6CRgD+lZN2NVG25ZKnaZFPTPy+tMDgyKjMFPBIODS SuY4WbcFPQM3SonYqiMcFWIBOPY5qWynK2hradHtvQ+BtXJP/wBat8EMMiuTF2YI omJ4JKjPrWzZXocDLV00ZK1jpgrxTRqEUhFCuGUEGgk+tb3KuNNMNKaQmkMN1FNo qgM0U6mBqcK5SxwamscClBpjn5TQBUnfbnmsm6ugu7mrt65VSa5XU7wIGya56krG sUTy6kFYjdUR1YDPzfrXG3urFXPzVnS63j+P9ayTbLaSO/8A7XH96nrq4/vV5t/b pJ+/U6ayx/iquVkHpMeqAn71W4tRB/irzWPWSANzVfg1sFgN/wCtVG4pHoqagD3q cXoz1rhINXBI+atKLUwQMtXRFXM2daLwHvTxeD1rmU1DP8VSC/B43Vp7NsXMdGLs YyTSm6HY1z4v/VhimtqAA+9SdOwKRvteY71qeHrsNdTjOTsJ+lcM9+WZVByzHget dHdz/wDCOaCJG/4/bxMD/ZXvURVnd7IU3dW7naW00d1bh43BwMVUui6ghvmU1wvh jxhHbzfZZnG1j1JruhcQXa7o3VgR2NdUJqS0PPrU3FmdKwaExqvGapGNYkLYyByB 71o3MQiJIPBrOlfgI3XqfrWctHqKKuV1YrES3JJqJmG3Bx+NSzfMoA7VTdju5PFY ydjRRK87hVIHU1hX8yquGOfQDvWtctgkjpWJd7WlGMM38qxep0U4dTR0aN2kR2HX oPSvSrRQlshHXFcRo0ICrnJPeuysifKGW+ld+HVkXMvhS2CTUEoAPHU1KrYJB6Ux juPqe1dEtiIme/zBqoyKdu/v3rZeHKfjmqksHysSMYrmnBm0WYk8fmPyOV4qSGIK vNTsqqxzy3QUKuQCe9c6hrcvm6AF3EemaGXBJqTIXjvTXfjj1qrMm5UllEZU56NW fevtYsPrVq5KorEnkZNZVzcBo4iehAUn3rGUuhSRXkf5wM8Hj6Gs83klnfLOMgrj jseOaszttz6iqFyodRvGSD1rFyY3G+53dlPHd2yTRnKsM5znHt/SnsjDocDsfeuN 0TVf7NmKyZMLc5/u12aXCSQq6uGRhncO4rphJNHDVpNMeHw0blQzKMnI68U9GHls rlQVORxxn2qAL83PfgL3NSRSMjKxYBWO1VOCcfStIs55RL6MqqwJ5HU8HHGagMxd w29QrHBPf6Ux5UAzvJCghlHQ9MVXuHMKSKqgELgY7k9cf41blbUhRexY3gyOgIAU fMx649Kie82IMqoQ8DnlR9PWs17h98uwbRwBz1FU3aRyxO5mPAwfl9+f8msZVexo oJFl9Q3LKWySWx83OPfNQi4Z5xk4XjJHc+9QFCVBPGVHyqSeh/M/ypQqqu9mZUVh 8qkYJ/D+VZOTZS02LCMu1iCzE5OMdD2//XUkKksSW3E9WxUEQKluSBu3Z9aW5uo4 o3QFt2eo7ZHr0qW7FW6ssTSF1ChSWyMjHTHemzkmSAMM4LHdjjmqEbPITIeWLZPz biFAGMfXNaZ2OoHXaSQCeAPcd6NxWuynrM4gtIkwdxO5cdsdaZpepnKqWqvqrmQ7 RMHXrt9D9KyUZopAwJGDSU2nc9CELRSPTrG8DqvNaIYMMiuF0rUs4BauttLpZFHN d1OakiJKxcJphNBYY600mrEJmim5ooAoA0FsCmA0x3965yx+/wB6C+5TVZpDuoEh x1qbhYq3v3DXD63wrEV214/yE1w+vE7WrKormkXY851WZlkbB71hu7u2ATk1s6nC 7zEAHrTbTTCSCRyaI2SKk7lW0tHfBOSa0hZuB1NbdnpmAPlq89gAhO2hsIxucfKr x8Amq4vJImBySK3dQtQikYrmLslWJB6VUWglGxtW2pvkckVs22pMSMtXGW0+SME5 rbtHLYzxXVSs3YwkjrItQLDhqtC+O0c81hQNnqM1bxgA16MKaaMZM0jqHy4JqGTU Tg/NgeprPdht4JqjcSM+VBJJ4x61FSmkhxZ0On6ki3kbyPujR1Y47nPAFdp8SbpJ NG0/UIZF8tlICnqeOcV5IbpbdxFncIwWO0/eY/4dPzrrPiNepDoHh22L5kW1Z3AP Zhx+tefJJJotq7TOAl1uSGbO8qwOeDXR+HPiNdafdoJZGaPOOTXnsoJVctk471GG IrKKtqi5RT0Z9NQeO9NvYkJkUHbufnoBUUviXTmUyecoz718+RSyW+mySF2DTMEX n+FeT+uBVU6hdn/lu+OwzVNt7mfsYo951DxpY2nR1Y49ayj41tpgSCvNeQz3DuyF nY5UdTVi0cswBPHvWMr9zaFKJ6dL4h+1HajYBqaxUzzK7NkVxlk5O0A4FdjpTbgu TtFYxb5tTZwio6Hb6VEFA5OPatyG4ZCAegrH0hg4XnIFbk0TGMEDA9q9Sl8N0cst zTgfzkzipFiCn2NU7SUrGq4woq48w2jnrW6d0ZtWYPtxjvUMqBlKjqeTSTsEXcW5 oSQOhPU5xSeujGjMnh2hsDk8CohkZz/CMCrk8gMjMcZUHArNLNsJA6muaSSZortC O3zZHTFNLEo3+0OKZuwF3d8imK2VAJ+lRuMo37OwZhwOlZmzdDtPPNatztZWXrya z3URzEDocEVzzWty4vQquofKtnkHHtWfKpZR78NWgXDEgfeLZBqEKuSpyCTznsay aKM9I2Y7Sef4T61qaXfy20mxmIi3fMvoPaopbXC7gPfHoagaRdvX5gc/UUoyaYpR UlqdhHeRzxb4ZwyhiDyOPU464qQyvG6hWZSTnAHrwTXnc6yRXO9HKnqCODV+28S3 akpOqyDGM5wcVsqnc55UOx21vcKp8t9zY+U7u59/bvTZ2LMAX6pgLkYA9/y6VgQa xbzKWldo26YbJBH1FXXvI9qqZkCqAWG4ZOefwp+0ujF0mmSSqGLKBkn0/r+VRO5K nG5mIxu7e+KhNyjqQJFJOBjPf6UwThFJOAVBySwJA9evFZuQezZbEaFlVhkA8KSc E+47/jSBiGIHTsR0BqISbgHBHmADAz7d6aXBBUyBc8kAjp6D360cwKn2HyzBiBHk sV3A+nv7k9KrLbl4wJDuZizHccnPZQew4p5mjUnDZJ5JA7+3pVZ7kgrt2qF4AFQ2 XGg3uXIMLOzBQoY5/wA+9TNdhVfH+syAGA7VmCVm5JJ5pxYjnNNSsbwoxWo6X5s9 OfSqEq8k1cZ8iqkz5pNm4yC5MEowSBXXaRqJZV+bNcOxJatHTLowuATitKc3Fmco 3PToZQ6jmnlqxNOvQ4X5q2A4Zcg13p3V0YvQQtz1opM0UwMfzcd6hluNv3jUQc4q KdiRXLJmziPM4Pel88YrPYuD1pDLgcmo1FsWbicFGFcpqqCTIxW3LKSDk1mTqHY5 6VMlcpOxxk+nbpScVdtNOAIO2to2YdgQKtwWRXHFNRZSZXt7NVUcdKknt0WNiRit IRBF9KoXrDYaJKyNIs5HV1ADYFcVqK/Ma7XVWyWrjtQXLHiog9R1Nihb8MDW/ZDJ BrDthtPNbtmpOMV3UtzlkbNswIx3q7yFGTxVS2xtGOtWhkgBsV6lPY5XuQzMeSOl UZG8tDOfvD5U/wB71/Cr0ilmCKOTWZfuG4XO1Rhf8azrPQqJkmRRcIGYsCwHHU5N db8X3RNW0mGNdpj06MEdODmuInfbIrjgqwP5V2nxYdrmbQb4oVM2nJnnrg4rzX1N eqPN88YpRjOT0oqa0UPdIG+6Dub6Dk/yrM1H3p2mOEcCFACP9o8n+f6VTqSRzLKz t1ZiT+NR0xFl2ysbenFWbZiGGOKphtyAelWIDhhWci4nQWm8gbTg11GltP8AKA34 ZrkLOVgwxXVaTchWG4fpXM1qb7o9G0Cd1KowrvLaNZIRnBzXmul3JZlYNgdq9C0y cvCpJ5r08NK8bHFVWpZltyqkLxUMv7tNzA4UZrQBBHSoZ4hIjKRweK6bGSZzBv3v G3AMEVsfWtO0ZmznPHNWBYxogVVAA5oRViRmOMms7Nbsq66FaSIuxJ4zUcsIVFQd uSaso2+TJHApsrZUnHU4/Cs7J6lX6GVJEGQ+o6VXkR0jDqOnetSFAwYsehpLjygu AeMVPLpcd9Tmpi5mwAcEcmoJIHZsE4K1sIqYkcr0qpdsodXOBuGMVzzta5onqZkt qys7qf4elNQbkDSDnHNaAIYE+oxVNsKzADg1i9NSkVLzeoyjDHUVjuxbLHg56VsS /MuCPl7+1ZlyAGwMfX/Gs27u6KIzOGh2yDO3v3FVcAyHBDDr7inIrlyHHWmPHtbK t07UybFxCNowaj3bG5UUkT7hjjNK/oR1oAgnbD5RvY+1EB3NgE4qJ1KyHNSwfeBz QyjUhDq2Qx5qypLLkHBqnGxIzVlWIFTcQ8k96ikOO1OdsiomJPWqETRvlsdqsAjb xVJTg81ZVxjikgEc4z61Vl71PI3JqBvvGgorEndzUivtOR2oIFRM+2mmJo6PSr/5 gC1dhZz70GTXmFlOUuBg4Ga73SZ98a8110JX0MZqzNvNFM3Giukg58qSM1GVJ+8K ugfMKc0agcCsOW51SMt0IHSqjqRW08a46VRnRcHik4WMmzKcZHWohFuPWrLD3NOj +pqeQQyKAdxVkIqrwKkAAHFNPSrasNMqz9CAaybtSytitiVQRzWddKNprGaNYs4/ U4zlq5e8gJzkV22oIuTxXPXUa5PFZR3Km9DnorcrJz0rYtEK4wOKgKLv6VetfTtX pUYo5ZF+FQVBA5qzndwRjFV4eGGKnckMMV6cFZGDVxkzCONhk7m4/Cse7OATniti U71YsATWRcfNnNYVtUVEw7lAzHBxXZeNh9u8A+FL8klkR7difUYI/kaydF062v8A WrOCdCY5Z1RgDjIzXefFyzt9O0vTdMs4lhtIiZEjQYAbHWvNl1Zp1SPFSuOtTRfJ byvjlgI1/Hk/oP1qA8s2fWp2/wCPSEdiWY/XiszYrmkxT+nSm0EtAPSrMXaq4AyK ni6ilIqJq2z7SK3LC42letc/B1FbNlwRiuaZvE73SbxlAJOSf0r0HRLvdGuWBNeT 6ZM7OMmvRNEcgDGK6cNKzMKqO5hkDDk1KTvPtWdCxwvNaSdK9I5WrDChbPFVDCC+ D0q83Q1Xblhn1pSVwWhG8CRLkdazLmbaNvfNat4TgViXHL8+tYVHy6I0hrqRFnZV UHApJWQAs3SpmUDGBVW/+S0JXg1jJ2i2WtXYzLm8JUoowORgVTAaWMs55zxT1ALH NTFQIuBXC5OW5vypESAopGM1C6rtI/ixmpVY5bnvVWZyJOKbdlYSRUnYMSg/GqTQ JFk5Le1XT1z1PvUJRSM45qCzMlVmYFG2j0NNdVADDkkc1ouqlTwKzwg5+tWjJjY0 JOQeaezvnaVqPJR8qSDT9xc5Y5oAguTwKfbLhQe9QXBO+rtsBgUMosxMQcYq0CNt VlqXNSAjvzUZfdwetNkJHSoyTmmMsKasK3FVU6VOKQgc5quzYqdqqy8dKYwLjHvV Z2yetPNQty3NJCJYiRKprttEm+VRmuI6EV0+iO2F5rooO0jKa0O0V9yg5oqCN22D miu+5kf/2Q== 미주입니다. 이건 각주이지요. 다음 페이지 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5 Q7t/AAAACXBIWXMAAA3WAAAN1gGQb3mcAAAACXZwQWcAAAAQAAAAEABcxq3DAAAC V0lEQVQ4y32TMU9UQRDHf7tvOY47uAgel4tBhUKIJoZE0YbSSiBoQW2hFQnfwEjH F7CHjg6auwIaGm20wwYS6AUSNCdwB++93RmLd4AK+E+2mp2Z339n1szPzyMiuZmZ mTelUmlIVZV/1Gg04u97e6tTk5Nb09PT1Ov1i5grFos453qq1epcX1/fqIj8lWyM oVwu09vb+2pjY2OuVqt9mZh4ydraelYgu6ZGVW0cxxwfHXEFAegqFJ4Oj4ws1ur1 tysrq1/Hx8fZ3NzEqiqqioggISDBo8Ejf5zgPa1mE+fco8H7gx+Xl5eHFxYWMgJV RUWREGgGy4GWMBiczTp3O6En8qTHx+zu7HJycvK8Uql8WFpafDc7O5s4VUHUggR2 G8r6foHIGMoFcEa519Hkcf4EVaVcvk2l0o/3fnRs7FkpSZJDJ6JYq/gg2NY+xZ+H EPWgSYGunhLdnZDr6ECBrnyefD5Po9HAGINzUduCCiLCj4M9vn3+hNoctrNIrrsf /3CIgQe3EBGstVhrCSG0cxSnKqha0jTlbnWA1y+msJHD2ggbWaqlDpwD0YjIWkQE 7z3njV02ASX1nr5iJ08GctkYVQBB8bRagDFYazHGEEJAJJueU1HUKiEEkjTlLEnh 6jISRREG8N7jQ5tAFCcqWL3EclHETVLNGgXffoNzCypZIE1T4ji+NtkYk1EYkxFc WGhvYkYgOOduKMCF/4ygXSCOY3zkpdVqnlprUiDwf0WtVvP07OxMfAi4nZ1dUP3V lc+/z+Vyd5Rr/9IlCZg4Sfa2trePQPkN6rGAJMLKdHsAAAAldEVYdGRhdGU6Y3Jl YXRlADIwMTAtMDUtMjRUMDc6NDI6MTctMDY6MDB3nikDAAAAJXRFWHRkYXRlOm1v ZGlmeQAyMDEwLTA1LTI0VDA3OjQyOjE3LTA2OjAwBsORvwAAADV0RVh0TGljZW5z ZQBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9MR1BMLzIuMS87 wbQYAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAA90RVh0 U291cmNlAG51b3ZlWFQy6iA23AAAACJ0RVh0U291cmNlX1VSTABodHRwOi8vbnVv dmV4dC5wd3NwLm5ldJGJxy0AAAAASUVORK5CYII= $ xmllint --c14n sample-5017/styles.xml | xmllint --format - ================================================ FILE: tests/cli_tests/hwp5proc.txt ================================================ 프로그램 설명 및 사용법을 간단하게 표시한다:: $ hwp5proc --help usage: hwp5proc [-h] [--loglevel LOGLEVEL] [--logfile LOGFILE] {version,header,summaryinfo,ls,cat,unpack,records,models,find,xml,rawunz,diststream} ... Do various operations on HWPv5 files. optional arguments: -h, --help show this help message and exit --loglevel LOGLEVEL Set log level. --logfile LOGFILE Set log file. subcommands: valid subcommands {version,header,summaryinfo,ls,cat,unpack,records,models,find,xml,rawunz,diststream} version Print the file format version of .hwp files. header Print file headers of .hwp files. summaryinfo Print summary informations of .hwp files. ls List streams in .hwp files. cat Extract out internal streams of .hwp files unpack Extract out internal streams of .hwp files into a directory. records Print the record structure of .hwp file record streams. models Print parsed binary models of .hwp file record streams. find Find record models with specified predicates. xml Transform .hwp files into an XML. rawunz Deflate an headerless zlib-compressed stream diststream Decode a distribute document stream. hwp5proc 은 여러 하위 명령으로 이루어져 있다. ------------ version 명령 ------------ 사용법:: $ hwp5proc version --help usage: hwp5proc version [-h] Print the file format version of . positional arguments: .hwp file to analyze optional arguments: -h, --help show this help message and exit HWPv5 파일의 파일 포맷 버젼을 확인한다:: $ hwp5proc version samples/sample-5017.hwp 5.0.1.7 ----------- header 명령 ----------- 사용법:: $ hwp5proc header --help usage: hwp5proc header [-h] Print the file header of . positional arguments: .hwp file to analyze optional arguments: -h, --help show this help message and exit $ hwp5proc header samples/sample-5017.hwp ccl: 0 cert_drm: 0 cert_encrypted: 0 cert_signature_extra: 0 cert_signed: 0 compressed: 1 distributable: 0 drm: 0 history: 0 password: 0 script: 0 signature: HWP Document File version: 5.0.1.7 xmltemplate_storage: 0 ---------------- summaryinfo 명령 ---------------- 사용법:: $ hwp5proc summaryinfo --help usage: hwp5proc summaryinfo [-h] Print the summary information of . positional arguments: .hwp file to analyze optional arguments: -h, --help show this help message and exit $ hwp5proc summaryinfo samples/sample-5017.hwp Title: 제목입니다. Subject: 주제입니다. Author: 지은이입니다. Keywords: 키워드입니다. Comments: 기타입니다. Last saved by: mete0r Revision Number: 6, 7, 9, 1053 WIN6 Last Printed at: 1601-01-01 00:00:00 Created at: 2010-07-02 03:36:13.540000 Last saved at: 2011-06-14 12:54:58.775000 Number of pages: 2 Date: 2010년 7월 2일 금요일 오후 12:36:13 Number of paragraphs: 26 ------- ls 명령 ------- 사용법:: $ hwp5proc ls --help usage: hwp5proc ls [-h] [--vstreams | --ole] List streams in the . positional arguments: .hwp file to analyze optional arguments: -h, --help show this help message and exit --vstreams Process with virtual streams (i.e. parsed/converted form of real streams) --ole Treat as an OLE Compound File. As a result, some streams will be presented as-is. (i.e. not decompressed) $ hwp5proc ls samples/sample-5017.hwp \x05HwpSummaryInformation BinData/BIN0002.jpg BinData/BIN0002.png BinData/BIN0003.png BodyText/Section0 DocInfo DocOptions/_LinkDoc FileHeader PrvImage PrvText Scripts/DefaultJScript Scripts/JScriptVersion $ hwp5proc ls --vstreams samples/sample-5017.hwp \x05HwpSummaryInformation \x05HwpSummaryInformation.txt BinData/BIN0002.jpg BinData/BIN0002.png BinData/BIN0003.png BodyText/Section0 BodyText/Section0.models BodyText/Section0.records BodyText/Section0.xml BodyText.xml DocInfo DocInfo.models DocInfo.records DocInfo.xml DocOptions/_LinkDoc FileHeader FileHeader.txt PrvImage PrvText PrvText.utf8 Scripts/DefaultJScript Scripts/JScriptVersion -------- cat 명령 -------- $ hwp5proc cat --help usage: hwp5proc cat [-h] [--vstreams | --ole] Extract out the specified stream in the to the standard output. positional arguments: .hwp file to analyze Internal path of a stream to extract optional arguments: -h, --help show this help message and exit --vstreams Process with virtual streams (i.e. parsed/converted form of real streams) --ole Treat as an OLE Compound File. As a result, some streams will be presented as-is. (i.e. not decompressed) $ hwp5proc cat samples/sample-5017.hwp BinData/BIN0002.jpg | file --mime-type - /dev/stdin: image/jpeg $ hwp5proc cat --vstreams samples/sample-5017.hwp FileHeader.txt ccl: 0 cert_drm: 0 cert_encrypted: 0 cert_signature_extra: 0 cert_signed: 0 compressed: 1 distributable: 0 drm: 0 history: 0 password: 0 script: 0 signature: HWP Document File version: 5.0.1.7 xmltemplate_storage: 0 $ hwp5proc cat --vstreams samples/sample-5017.hwp $(printf '\005HwpSummaryInformation.txt') - ByteOrder: 0xfffe - Version: 0 - SystemIdentifier: 0x00020105 - CLSID: 9fa2b660-1061-11d4-b4c6-006097c09d8c - 00000030: Property Set 9fa2b660-1061-11d4-b4c6-006097c09d8c ------------------------------------------------- - 000000a8: PIDSI_TITLE(=0x00000002): 제목입니다. - 000000c0: PIDSI_SUBJECT(=0x00000003): 주제입니다. - 000000d8: PIDSI_AUTHOR(=0x00000004): 지은이입니다. - 000000f0: HWPPIDSI_DATE_STR(=0x00000014): 2010년 7월 2일 금요일 오후 12:36:13 - 00000130: PIDSI_KEYWORDS(=0x00000005): 키워드입니다. - 00000148: PIDSI_COMMENTS(=0x00000006): 기타입니다. - 00000160: PIDSI_LASTAUTHOR(=0x00000008): mete0r - 00000178: PIDSI_REVNUMBER(=0x00000009): 6, 7, 9, 1053 WIN6 - 000001a8: PIDSI_CREATE_DTM(=0x0000000c): 2010-07-02 03:36:13.540000 - 000001b4: PIDSI_LASTSAVE_DTM(=0x0000000d): 2011-06-14 12:54:58.775000 - 000001c0: PIDSI_LASTPRINTED(=0x0000000b): 1601-01-01 00:00:00 - 000001cc: PIDSI_PAGECOUNT(=0x0000000e): 2 - 000001d4: HWPPIDSI_PARACOUNT(=0x00000015): 26 - 000001dc: PID_DICTIONARY(=0x00000000): - 0: $ hwp5proc cat samples/sample-5017.hwp BodyText/Section0 | sha1sum 0c66f772894487ba06cd225ebc4871f552e07cf8 - unpack 명령 ----------- $ hwp5proc unpack --help usage: hwp5proc unpack [-h] [--vstreams | --ole] [] Extract out streams in the specified to a directory. positional arguments: .hwp file to analyze Output directory optional arguments: -h, --help show this help message and exit --vstreams Process with virtual streams (i.e. parsed/converted form of real streams) --ole Treat as an OLE Compound File. As a result, some streams will be presented as-is. (i.e. not decompressed) $ rm -rf sample-5017 $ hwp5proc unpack samples/sample-5017.hwp $ find sample-5017 -type f | sort --dictionary | xargs sha1sum 25233fb7d96f387fbe07eadae65c7ba3cdccaab1 sample-5017/_05HwpSummaryInformation a651496e95dd70a7a5c3ae08f8829cecd5e6ed7b sample-5017/BinData/BIN0002.jpg e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/BinData/BIN0002.png e0f44117bf675d77297a86a322bd9eaa96543c37 sample-5017/BinData/BIN0003.png 0c66f772894487ba06cd225ebc4871f552e07cf8 sample-5017/BodyText/Section0 f282704d3298c75c74ebf628d69fecb68663b132 sample-5017/DocInfo 7ccb9514dbb7cc874feef4cc131af0d64a8e52be sample-5017/DocOptions/_LinkDoc 33108a5790f0f9ce5147ec8c421ef6d2ecde6e3d sample-5017/FileHeader 6199556b9c4961b6f5a7c8e330c1f3f54c42f85f sample-5017/PrvImage 23302ee8ea7ddf4b1b7bfb8f6c307df589eeea4f sample-5017/PrvText e40fe23054d2df479a06947174be594ff4c80497 sample-5017/Scripts/DefaultJScript 3da89ee273be13437e7ecf760f3fbd4dc0e8d1fe sample-5017/Scripts/JScriptVersion $ rm -rf sample-5017 $ hwp5proc unpack --vstreams samples/sample-5017.hwp $ find sample-5017 -type f | sort --dictionary sample-5017/_05HwpSummaryInformation sample-5017/_05HwpSummaryInformation.txt sample-5017/BinData/BIN0002.jpg sample-5017/BinData/BIN0002.png sample-5017/BinData/BIN0003.png sample-5017/BodyText/Section0 sample-5017/BodyText/Section0.models sample-5017/BodyText/Section0.records sample-5017/BodyText/Section0.xml sample-5017/BodyText.xml sample-5017/DocInfo sample-5017/DocInfo.models sample-5017/DocInfo.records sample-5017/DocInfo.xml sample-5017/DocOptions/_LinkDoc sample-5017/FileHeader sample-5017/FileHeader.txt sample-5017/PrvImage sample-5017/PrvText sample-5017/PrvText.utf8 sample-5017/Scripts/DefaultJScript sample-5017/Scripts/JScriptVersion rawunz 명령 ----------- $ hwp5proc rawunz --help usage: hwp5proc rawunz [-h] Deflate an headerless zlib-compressed stream optional arguments: -h, --help show this help message and exit $ rm -f Section0 Section0.rawz $ hwp5proc cat --ole samples/sample-5017.hwp BodyText/Section0 > Section0.rawz $ sha1sum Section0.rawz 1d2293ddee9f584b2294ee042b9587c12c071011 Section0.rawz $ hwp5proc rawunz < Section0.rawz > Section0 $ sha1sum Section0 0c66f772894487ba06cd225ebc4871f552e07cf8 Section0 diststream 명령 --------------- $ hwp5proc diststream --help usage: hwp5proc diststream [-h] [--sha1 | --key] [--raw] Decode a distribute document stream. optional arguments: -h, --help show this help message and exit --sha1 Print SHA-1 value for decryption. --key Print decrypted key. --raw Print raw binary objects as is. $ rm -f Section0 Section.zraw Section0.zraw.aes128ecb $ hwp5proc cat --ole samples/viewtext.hwp ViewText/Section0 > Section0.zraw.aes128ecb $ sha1sum Section0.zraw.aes128ecb afb6223d49748dec0f1fb3ccf720918ea1a31ec5 Section0.zraw.aes128ecb $ hwp5proc diststream < Section0.zraw.aes128ecb > Section0.zraw 2>/dev/null $ sha1sum Section0.zraw 77150206051a11c68ec61353b9d7cf3a0dd63ec8 Section0.zraw $ hwp5proc rawunz < Section0.zraw > Section0 $ sha1sum Section0 75d6750ad7ad45edc9c1abae2060b8d1c404f6df Section0 $ hwp5proc diststream --sha1 < Section0.zraw.aes128ecb #=> --regex ^8cb2237d0679ca88db6464eac60da96345513964$ $ hwp5proc diststream --key < Section0.zraw.aes128ecb #=> --regex ^38004300420032003200330037004400$ records 명령 ------------ $ hwp5proc records --help usage: hwp5proc records [-h] [--simple | --json | --raw | --raw-header | --raw-payload] [--range | --treegroup ] [] [] Print the record structure of the specified stream. positional arguments: .hwp file to analyze Record-structured internal streams. (e.g. DocInfo, BodyText/*) optional arguments: -h, --help show this help message and exit --simple Print records as simple tree --json Print records as json --raw Print records as is --raw-header Print record headers as is --raw-payload Print record payloads as is --range Specifies the range of the records. N-M means "from the record N to M-1 (excluding M)" N means just the record N --treegroup Specifies the N-th subtree of the record structure. $ hwp5proc records samples/sample-5017.hwp DocInfo | jq .[66] { "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 04 00 00 00" ], "seqno": 66, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE" } $ hwp5proc records --simple samples/sample-5017.hwp DocInfo --range=0-2 0000 HWPTAG_DOCUMENT_PROPERTIES 0001 HWPTAG_ID_MAPPINGS $ hwp5proc records --raw samples/sample-5017.hwp DocInfo --range=0-2 | sha1sum 3004547bd45ca213d5d7963fb95bcb082fa0ae3b - $ hwp5proc records --json samples/sample-5017.hwp DocInfo --range=1 | jq . [ { "level": 0, "payload": [ "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "06 00 00 00 0a 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0f 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS" } ] models 명령 ----------- $ hwp5proc models --help usage: hwp5proc models [-h] [--file-format-version ] [--simple | --json | --format | --events] [--treegroup | --seqno ] [] [] Print parsed binary models in the specified . positional arguments: .hwp file to analyze Record-structured internal streams. (e.g. DocInfo, BodyText/*) optional arguments: -h, --help show this help message and exit --file-format-version , -V Specifies HWPv5 file format version of the standard input stream --simple Print records as simple tree --json Print records as json --format Print records formatted --events Print records as events --treegroup Specifies the N-th subtree of the record structure. --seqno Print a model of -th record $ hwp5proc models samples/sample-5017.hwp DocInfo | jq .[66] { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "메모", "name": "Memo", "next_style_id": 13, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 04 00 00 00" ], "seqno": 66, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } $ hwp5proc models samples/sample-5017.hwp docinfo | jq .[66] { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "메모", "name": "Memo", "next_style_id": 13, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 04 00 00 00" ], "seqno": 66, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } $ hwp5proc models samples/sample-5017.hwp BodyText/Section0 | jq .[0] { "content": { "charshapes": 5, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 3, "style_id": 0, "text": 34 }, "level": 0, "payload": [ "22 00 00 00 04 00 00 00 00 00 00 03 05 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" } $ hwp5proc models samples/sample-5017.hwp bodytext/0 | jq .[127] { "content": { "border": { "color": 0, "flags": 3221225472, "width": 0 }, "clip": { "bottom": 1200, "left": 0, "right": 1200, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 1614, "y": 0 }, "p2": { "x": 1614, "y": 1614 }, "p3": { "x": 0, "y": 1614 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00", "00 00 00 00 4e 06 00 00 00 00 00 00 4e 06 00 00", "4e 06 00 00 00 00 00 00 4e 06 00 00 00 00 00 00", "00 00 00 00 b0 04 00 00 b0 04 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 127, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" } $ hwp5proc models samples/sample-5017.hwp bodytext/0 --seqno=4 | jq . [ { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" } ] $ hwp5proc models --simple samples/sample-5017.hwp bodytext/0 0000 Paragraph 0001 ParaText 0002 ParaCharShape 0003 ParaLineSeg 0004 SectionDef 0005 PageDef 0006 FootnoteShape 0007 FootnoteShape 0008 PageBorderFill 0009 PageBorderFill 0010 PageBorderFill 0011 ColumnsDef 0012 Paragraph 0013 ParaCharShape 0014 ParaLineSeg 0015 Paragraph 0016 ParaText 0017 ParaCharShape 0018 ParaLineSeg 0019 Paragraph 0020 ParaCharShape 0021 ParaLineSeg 0022 Paragraph 0023 ParaText 0024 ParaCharShape 0025 ParaLineSeg 0026 Paragraph 0027 ParaText 0028 ParaCharShape 0029 ParaLineSeg 0030 TableControl 0031 TableBody 0032 TableCell 0033 Paragraph 0034 ParaText 0035 ParaCharShape 0036 ParaLineSeg 0037 TableCell 0038 Paragraph 0039 ParaText 0040 ParaCharShape 0041 ParaLineSeg 0042 TableCell 0043 Paragraph 0044 ParaText 0045 ParaCharShape 0046 ParaLineSeg 0047 TableCell 0048 Paragraph 0049 ParaText 0050 ParaCharShape 0051 ParaLineSeg 0052 Paragraph 0053 ParaText 0054 ParaCharShape 0055 ParaLineSeg 0056 TableControl 0057 TableBody 0058 TableCell 0059 Paragraph 0060 ParaText 0061 ParaCharShape 0062 ParaLineSeg 0063 Paragraph 0064 ParaText 0065 ParaCharShape 0066 ParaLineSeg 0067 TableControl 0068 TableCaption 0069 Paragraph 0070 ParaText 0071 ParaCharShape 0072 ParaLineSeg 0073 AutoNumbering 0074 Paragraph 0075 ParaText 0076 ParaCharShape 0077 ParaLineSeg 0078 TableBody 0079 TableCell 0080 Paragraph 0081 ParaCharShape 0082 ParaLineSeg 0083 TableCell 0084 Paragraph 0085 ParaCharShape 0086 ParaLineSeg 0087 TableCell 0088 Paragraph 0089 ParaCharShape 0090 ParaLineSeg 0091 TableCell 0092 Paragraph 0093 ParaCharShape 0094 ParaLineSeg 0095 Paragraph 0096 ParaText 0097 ParaCharShape 0098 ParaLineSeg 0099 Paragraph 0100 ParaCharShape 0101 ParaLineSeg 0102 Paragraph 0103 ParaText 0104 ParaCharShape 0105 ParaLineSeg 0106 Paragraph 0107 ParaText 0108 ParaCharShape 0109 ParaLineSeg 0110 GShapeObjectControl 0111 ShapeComponent 0112 ShapePicture 0113 Paragraph 0114 ParaText 0115 ParaCharShape 0116 ParaLineSeg 0117 Paragraph 0118 ParaText 0119 ParaCharShape 0120 ParaLineSeg 0121 Paragraph 0122 ParaText 0123 ParaCharShape 0124 ParaLineSeg 0125 GShapeObjectControl 0126 ShapeComponent 0127 ShapePicture $ hwp5proc models --treegroup=0 --simple samples/sample-5017.hwp bodytext/0 0000 Paragraph 0001 ParaText 0002 ParaCharShape 0003 ParaLineSeg 0004 SectionDef 0005 PageDef 0006 FootnoteShape 0007 FootnoteShape 0008 PageBorderFill 0009 PageBorderFill 0010 PageBorderFill 0011 ColumnsDef $ hwp5proc models --treegroup=5 --simple samples/sample-5017.hwp bodytext/0 0026 Paragraph 0027 ParaText 0028 ParaCharShape 0029 ParaLineSeg 0030 TableControl 0031 TableBody 0032 TableCell 0033 Paragraph 0034 ParaText 0035 ParaCharShape 0036 ParaLineSeg 0037 TableCell 0038 Paragraph 0039 ParaText 0040 ParaCharShape 0041 ParaLineSeg 0042 TableCell 0043 Paragraph 0044 ParaText 0045 ParaCharShape 0046 ParaLineSeg 0047 TableCell 0048 Paragraph 0049 ParaText 0050 ParaCharShape 0051 ParaLineSeg 0052 Paragraph 0053 ParaText 0054 ParaCharShape 0055 ParaLineSeg 0056 TableControl 0057 TableBody 0058 TableCell 0059 Paragraph 0060 ParaText 0061 ParaCharShape 0062 ParaLineSeg $ hwp5proc models samples/sample-5017.hwp bodytext/0 --treegroup=0 --format='%(seqno)s %(level)s %(tagname)s\n' 0 0 HWPTAG_PARA_HEADER 1 1 HWPTAG_PARA_TEXT 2 1 HWPTAG_PARA_CHAR_SHAPE 3 1 HWPTAG_PARA_LINE_SEG 4 1 HWPTAG_CTRL_HEADER 5 2 HWPTAG_PAGE_DEF 6 2 HWPTAG_FOOTNOTE_SHAPE 7 2 HWPTAG_FOOTNOTE_SHAPE 8 2 HWPTAG_PAGE_BORDER_FILL 9 2 HWPTAG_PAGE_BORDER_FILL 10 2 HWPTAG_PAGE_BORDER_FILL 11 1 HWPTAG_CTRL_HEADER $ hwp5proc cat samples/sample-5017.hwp BodyText/Section0 | hwp5proc models --simple -V 5.0.1.7 --treegroup=13 0121 Paragraph 0122 ParaText 0123 ParaCharShape 0124 ParaLineSeg 0125 GShapeObjectControl 0126 ShapeComponent 0127 ShapePicture find 명령 --------- $ hwp5proc find --help usage: hwp5proc find [-h] [--from-stdin] [--model | --tag ] [--incomplete] [--format ] [--dump] [ ...] Find record models with specified predicates. positional arguments: .hwp files to analyze optional arguments: -h, --help show this help message and exit --from-stdin get filenames from stdin --model filter with record model name --tag filter with record HWPTAG --incomplete filter with incompletely parsed content --format record output format --dump dump record $ hwp5proc find --model=Paragraph samples/charshape.hwp samples/parashape.hwp samples/charshape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 36 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 40 HWPTAG_PARA_HEADER Paragraph $ hwp5proc find --tag=HWPTAG_PARA_HEADER samples/charshape.hwp samples/parashape.hwp samples/charshape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 36 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 40 HWPTAG_PARA_HEADER Paragraph $ hwp5proc find --tag=66 samples/charshape.hwp samples/parashape.hwp samples/charshape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/charshape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 16 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 20 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 24 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 28 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 32 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 36 HWPTAG_PARA_HEADER Paragraph samples/parashape.hwp BodyText/Section0 40 HWPTAG_PARA_HEADER Paragraph $ hwp5proc find --incomplete samples/shapeline.hwp samples/shapeline.hwp DocInfo 16 HWPTAG_BORDER_FILL BorderFill samples/shapeline.hwp BodyText/Section0 13 HWPTAG_SHAPE_COMPONENT ShapeComponent samples/shapeline.hwp BodyText/Section0 14 HWPTAG_SHAPE_COMPONENT_LINE ShapeLine samples/shapeline.hwp BodyText/Section0 16 HWPTAG_SHAPE_COMPONENT ShapeComponent samples/shapeline.hwp BodyText/Section0 17 HWPTAG_SHAPE_COMPONENT_LINE ShapeLine $ hwp5proc find --incomplete --dump samples/shapeline.hwp | grep 'STARTEVENT' STARTEVENT: BorderFill STARTEVENT: Border 'left' STARTEVENT: Border 'right' STARTEVENT: Border 'top' STARTEVENT: Border 'bottom' STARTEVENT: Border 'diagonal' STARTEVENT: FillColorPattern 'fill_colorpattern' STARTEVENT: ShapeComponent STARTEVENT: Coord 'rotation_center' STARTEVENT: Matrix 'translation' STARTEVENT: ARRAY(ScaleRotationMatrix, 'scalerotations_count') 'scalerotations' STARTEVENT: ScaleRotationMatrix STARTEVENT: Matrix 'scaler' STARTEVENT: Matrix 'rotator' STARTEVENT: BorderLine 'line' STARTEVENT: ShapeLine STARTEVENT: Coord 'p0' STARTEVENT: Coord 'p1' STARTEVENT: ShapeComponent STARTEVENT: Coord 'rotation_center' STARTEVENT: Matrix 'translation' STARTEVENT: ARRAY(ScaleRotationMatrix, 'scalerotations_count') 'scalerotations' STARTEVENT: ScaleRotationMatrix STARTEVENT: Matrix 'scaler' STARTEVENT: Matrix 'rotator' STARTEVENT: BorderLine 'line' STARTEVENT: ShapeLine STARTEVENT: Coord 'p0' STARTEVENT: Coord 'p1' $ echo samples/sample-5017.hwp | hwp5proc find --from-stdin samples/sample-5017.hwp DocInfo 0 HWPTAG_DOCUMENT_PROPERTIES DocumentProperties samples/sample-5017.hwp DocInfo 1 HWPTAG_ID_MAPPINGS IdMappings samples/sample-5017.hwp DocInfo 2 HWPTAG_BIN_DATA BinData samples/sample-5017.hwp DocInfo 3 HWPTAG_BIN_DATA BinData samples/sample-5017.hwp DocInfo 4 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 5 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 6 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 7 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 8 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 9 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 10 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 11 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 12 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 13 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 14 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 15 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 16 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 17 HWPTAG_FACE_NAME FaceName samples/sample-5017.hwp DocInfo 18 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 19 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 20 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 21 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 22 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 23 HWPTAG_BORDER_FILL BorderFill samples/sample-5017.hwp DocInfo 24 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 25 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 26 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 27 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 28 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 29 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 30 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 31 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 32 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 33 HWPTAG_CHAR_SHAPE CharShape samples/sample-5017.hwp DocInfo 34 HWPTAG_TAB_DEF TabDef samples/sample-5017.hwp DocInfo 35 HWPTAG_TAB_DEF TabDef samples/sample-5017.hwp DocInfo 36 HWPTAG_TAB_DEF TabDef samples/sample-5017.hwp DocInfo 37 HWPTAG_NUMBERING Numbering samples/sample-5017.hwp DocInfo 38 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 39 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 40 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 41 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 42 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 43 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 44 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 45 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 46 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 47 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 48 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 49 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 50 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 51 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 52 HWPTAG_PARA_SHAPE ParaShape samples/sample-5017.hwp DocInfo 53 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 54 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 55 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 56 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 57 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 58 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 59 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 60 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 61 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 62 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 63 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 64 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 65 HWPTAG_STYLE Style samples/sample-5017.hwp DocInfo 66 HWPTAG_STYLE Style samples/sample-5017.hwp BodyText/Section0 0 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 1 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 2 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 3 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 4 HWPTAG_CTRL_HEADER SectionDef samples/sample-5017.hwp BodyText/Section0 5 HWPTAG_PAGE_DEF PageDef samples/sample-5017.hwp BodyText/Section0 6 HWPTAG_FOOTNOTE_SHAPE FootnoteShape samples/sample-5017.hwp BodyText/Section0 7 HWPTAG_FOOTNOTE_SHAPE FootnoteShape samples/sample-5017.hwp BodyText/Section0 8 HWPTAG_PAGE_BORDER_FILL PageBorderFill samples/sample-5017.hwp BodyText/Section0 9 HWPTAG_PAGE_BORDER_FILL PageBorderFill samples/sample-5017.hwp BodyText/Section0 10 HWPTAG_PAGE_BORDER_FILL PageBorderFill samples/sample-5017.hwp BodyText/Section0 11 HWPTAG_CTRL_HEADER ColumnsDef samples/sample-5017.hwp BodyText/Section0 12 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 13 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 14 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 15 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 16 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 17 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 18 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 19 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 20 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 21 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 22 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 23 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 24 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 25 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 26 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 27 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 28 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 29 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 30 HWPTAG_CTRL_HEADER TableControl samples/sample-5017.hwp BodyText/Section0 31 HWPTAG_TABLE TableBody samples/sample-5017.hwp BodyText/Section0 32 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 33 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 34 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 35 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 36 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 37 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 38 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 39 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 40 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 41 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 42 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 43 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 44 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 45 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 46 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 47 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 48 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 49 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 50 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 51 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 52 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 53 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 54 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 55 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 56 HWPTAG_CTRL_HEADER TableControl samples/sample-5017.hwp BodyText/Section0 57 HWPTAG_TABLE TableBody samples/sample-5017.hwp BodyText/Section0 58 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 59 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 60 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 61 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 62 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 63 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 64 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 65 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 66 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 67 HWPTAG_CTRL_HEADER TableControl samples/sample-5017.hwp BodyText/Section0 68 HWPTAG_LIST_HEADER TableCaption samples/sample-5017.hwp BodyText/Section0 69 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 70 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 71 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 72 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 73 HWPTAG_CTRL_HEADER AutoNumbering samples/sample-5017.hwp BodyText/Section0 74 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 75 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 76 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 77 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 78 HWPTAG_TABLE TableBody samples/sample-5017.hwp BodyText/Section0 79 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 80 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 81 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 82 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 83 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 84 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 85 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 86 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 87 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 88 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 89 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 90 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 91 HWPTAG_LIST_HEADER TableCell samples/sample-5017.hwp BodyText/Section0 92 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 93 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 94 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 95 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 96 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 97 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 98 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 99 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 100 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 101 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 102 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 103 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 104 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 105 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 106 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 107 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 108 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 109 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 110 HWPTAG_CTRL_HEADER GShapeObjectControl samples/sample-5017.hwp BodyText/Section0 111 HWPTAG_SHAPE_COMPONENT ShapeComponent samples/sample-5017.hwp BodyText/Section0 112 HWPTAG_SHAPE_COMPONENT_PICTURE ShapePicture samples/sample-5017.hwp BodyText/Section0 113 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 114 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 115 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 116 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 117 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 118 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 119 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 120 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 121 HWPTAG_PARA_HEADER Paragraph samples/sample-5017.hwp BodyText/Section0 122 HWPTAG_PARA_TEXT ParaText samples/sample-5017.hwp BodyText/Section0 123 HWPTAG_PARA_CHAR_SHAPE ParaCharShape samples/sample-5017.hwp BodyText/Section0 124 HWPTAG_PARA_LINE_SEG ParaLineSeg samples/sample-5017.hwp BodyText/Section0 125 HWPTAG_CTRL_HEADER GShapeObjectControl samples/sample-5017.hwp BodyText/Section0 126 HWPTAG_SHAPE_COMPONENT ShapeComponent samples/sample-5017.hwp BodyText/Section0 127 HWPTAG_SHAPE_COMPONENT_PICTURE ShapePicture $ hwp5proc find --format='%(stream)s %(seqno)s %(size)s' samples/sample-5017.hwp 2> /dev/null DocInfo 0 26 DocInfo 1 64 DocInfo 2 12 DocInfo 3 12 DocInfo 4 29 DocInfo 5 31 DocInfo 6 29 DocInfo 7 31 DocInfo 8 29 DocInfo 9 31 DocInfo 10 29 DocInfo 11 31 DocInfo 12 29 DocInfo 13 31 DocInfo 14 29 DocInfo 15 31 DocInfo 16 29 DocInfo 17 31 DocInfo 18 40 DocInfo 19 52 DocInfo 20 40 DocInfo 21 40 DocInfo 22 52 DocInfo 23 70 DocInfo 24 68 DocInfo 25 68 DocInfo 26 68 DocInfo 27 68 DocInfo 28 68 DocInfo 29 68 DocInfo 30 68 DocInfo 31 68 DocInfo 32 68 DocInfo 33 68 DocInfo 34 8 DocInfo 35 8 DocInfo 36 8 DocInfo 37 144 DocInfo 38 46 DocInfo 39 46 DocInfo 40 46 DocInfo 41 46 DocInfo 42 46 DocInfo 43 46 DocInfo 44 46 DocInfo 45 46 DocInfo 46 46 DocInfo 47 46 DocInfo 48 46 DocInfo 49 46 DocInfo 50 46 DocInfo 51 46 DocInfo 52 46 DocInfo 53 32 DocInfo 54 26 DocInfo 55 40 DocInfo 56 40 DocInfo 57 40 DocInfo 58 40 DocInfo 59 40 DocInfo 60 40 DocInfo 61 40 DocInfo 62 44 DocInfo 63 32 DocInfo 64 34 DocInfo 65 32 DocInfo 66 26 BodyText/Section0 0 22 BodyText/Section0 1 68 BodyText/Section0 2 40 BodyText/Section0 3 36 BodyText/Section0 4 36 BodyText/Section0 5 40 BodyText/Section0 6 28 BodyText/Section0 7 28 BodyText/Section0 8 14 BodyText/Section0 9 14 BodyText/Section0 10 14 BodyText/Section0 11 16 BodyText/Section0 12 22 BodyText/Section0 13 8 BodyText/Section0 14 36 BodyText/Section0 15 22 BodyText/Section0 16 14 BodyText/Section0 17 8 BodyText/Section0 18 36 BodyText/Section0 19 22 BodyText/Section0 20 8 BodyText/Section0 21 36 BodyText/Section0 22 22 BodyText/Section0 23 224 BodyText/Section0 24 24 BodyText/Section0 25 108 BodyText/Section0 26 22 BodyText/Section0 27 40 BodyText/Section0 28 16 BodyText/Section0 29 144 BodyText/Section0 30 44 BodyText/Section0 31 26 BodyText/Section0 32 38 BodyText/Section0 33 22 BodyText/Section0 34 6 BodyText/Section0 35 8 BodyText/Section0 36 36 BodyText/Section0 37 38 BodyText/Section0 38 22 BodyText/Section0 39 6 BodyText/Section0 40 8 BodyText/Section0 41 36 BodyText/Section0 42 38 BodyText/Section0 43 22 BodyText/Section0 44 6 BodyText/Section0 45 8 BodyText/Section0 46 36 BodyText/Section0 47 38 BodyText/Section0 48 22 BodyText/Section0 49 8 BodyText/Section0 50 8 BodyText/Section0 51 36 BodyText/Section0 52 22 BodyText/Section0 53 8 BodyText/Section0 54 8 BodyText/Section0 55 36 BodyText/Section0 56 44 BodyText/Section0 57 24 BodyText/Section0 58 38 BodyText/Section0 59 22 BodyText/Section0 60 14 BodyText/Section0 61 8 BodyText/Section0 62 36 BodyText/Section0 63 22 BodyText/Section0 64 18 BodyText/Section0 65 8 BodyText/Section0 66 36 BodyText/Section0 67 44 BodyText/Section0 68 22 BodyText/Section0 69 22 BodyText/Section0 70 36 BodyText/Section0 71 8 BodyText/Section0 72 36 BodyText/Section0 73 16 BodyText/Section0 74 22 BodyText/Section0 75 8 BodyText/Section0 76 8 BodyText/Section0 77 36 BodyText/Section0 78 26 BodyText/Section0 79 38 BodyText/Section0 80 22 BodyText/Section0 81 8 BodyText/Section0 82 36 BodyText/Section0 83 38 BodyText/Section0 84 22 BodyText/Section0 85 8 BodyText/Section0 86 36 BodyText/Section0 87 38 BodyText/Section0 88 22 BodyText/Section0 89 8 BodyText/Section0 90 36 BodyText/Section0 91 38 BodyText/Section0 92 22 BodyText/Section0 93 8 BodyText/Section0 94 36 BodyText/Section0 95 22 BodyText/Section0 96 12 BodyText/Section0 97 8 BodyText/Section0 98 36 BodyText/Section0 99 22 BodyText/Section0 100 8 BodyText/Section0 101 36 BodyText/Section0 102 22 BodyText/Section0 103 264 BodyText/Section0 104 24 BodyText/Section0 105 108 BodyText/Section0 106 22 BodyText/Section0 107 18 BodyText/Section0 108 8 BodyText/Section0 109 36 BodyText/Section0 110 44 BodyText/Section0 111 196 BodyText/Section0 112 73 BodyText/Section0 113 22 BodyText/Section0 114 14 BodyText/Section0 115 8 BodyText/Section0 116 36 BodyText/Section0 117 22 BodyText/Section0 118 20 BodyText/Section0 119 8 BodyText/Section0 120 36 BodyText/Section0 121 22 BodyText/Section0 122 30 BodyText/Section0 123 8 BodyText/Section0 124 36 BodyText/Section0 125 44 BodyText/Section0 126 196 BodyText/Section0 127 73 xml 명령 -------- $ hwp5proc xml --help usage: hwp5proc xml [-h] [--embedbin] [--no-xml-decl] [--output ] [--format ] [--no-validate-wellformed] Transform into an XML. positional arguments: .hwp file to analyze optional arguments: -h, --help show this help message and exit --embedbin Embed BinData/* streams in the output XML. --no-xml-decl Do not output XML declaration. --output Output filename. --format "flat", "nested" (default: "nested") --no-validate-wellformed Do not validate well-formedness of output. $ hwp5proc xml samples/sample-5017.hwp | xmllint --format -

left 0

left 10

center 0

center -10

right 0

right 10

inside 0

inside 0

outside 0

outside 10

top 0

top 10

middle 0

middle -10

bottom 0

bottom 10

================================================ FILE: tests/hwp5_tests/fixtures/aligns.html.d/index.xhtml ================================================

left 0

left 10

center 0

center -10

right 0

right 10

inside 0

inside 0

outside 0

outside 10

top 0

top 10

middle 0

middle -10

bottom 0

bottom 10

================================================ FILE: tests/hwp5_tests/fixtures/aligns.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/aligns.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 04 00 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0d 00" ], "seqno": 1, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 13, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 5669, "instance_id": 2052024613, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 25 69 4f 7a 00 00 00 00" ], "seqno": 16, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 17, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 18, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483655 }, "level": 3, "payload": [ "07 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 19, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "left 0" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6c 00 65 00 66 00 74 00 20 00 30 00 0d 00" ], "seqno": 20, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 21, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 22, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 23, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 25, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 5669, "instance_id": 2052024644, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 2835, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 00 00 00 00 13 0b 00 00", "38 21 00 00 25 16 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 44 69 4f 7a 00 00 00 00" ], "seqno": 28, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 30, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483656 }, "level": 3, "payload": [ "08 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 31, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "left 10" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6c 00 65 00 66 00 74 00 20 00 31 00 30 00 0d 00" ], "seqno": 32, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 33, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 34, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 35, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 37, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74073352, "height": 5669, "instance_id": 2052024645, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 2 }, "level": 1, "payload": [ "20 6f 73 67 08 45 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 02 00 00 00 00 00 00 00", "00 00 00 00 45 69 4f 7a 00 00 00 00" ], "seqno": 40, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 42, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 43, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "center 0" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "63 00 65 00 6e 00 74 00 65 00 72 00 20 00 30 00", "0d 00" ], "seqno": 44, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 45, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 46, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 47, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 49, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74073352, "height": 5669, "instance_id": 2052024646, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": -2835, "y": 0, "z_order": 3 }, "level": 1, "payload": [ "20 6f 73 67 08 45 6a 04 00 00 00 00 ed f4 ff ff", "38 21 00 00 25 16 00 00 03 00 00 00 00 00 00 00", "00 00 00 00 46 69 4f 7a 00 00 00 00" ], "seqno": 52, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 53, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 54, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483659 }, "level": 3, "payload": [ "0b 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 55, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "center -10" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "63 00 65 00 6e 00 74 00 65 00 72 00 20 00 2d 00", "31 00 30 00 0d 00" ], "seqno": 56, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 57, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 58, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 59, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 60, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 61, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 62, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 63, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74074376, "height": 5669, "instance_id": 2052024647, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 08 49 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 47 69 4f 7a 00 00 00 00" ], "seqno": 64, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 65, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 66, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483656 }, "level": 3, "payload": [ "08 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 67, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "right 0" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "72 00 69 00 67 00 68 00 74 00 20 00 30 00 0d 00" ], "seqno": 68, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 69, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 70, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 71, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 72, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 73, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 74, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 75, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74074376, "height": 5669, "instance_id": 2052024648, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 2835, "y": 0, "z_order": 5 }, "level": 1, "payload": [ "20 6f 73 67 08 49 6a 04 00 00 00 00 13 0b 00 00", "38 21 00 00 25 16 00 00 05 00 00 00 00 00 00 00", "00 00 00 00 48 69 4f 7a 00 00 00 00" ], "seqno": 76, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 77, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 78, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 79, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "right 10" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "72 00 69 00 67 00 68 00 74 00 20 00 31 00 30 00", "0d 00" ], "seqno": 80, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 81, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 82, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 83, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 84, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 85, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 86, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 87, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74075400, "height": 5669, "instance_id": 2052024649, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 6 }, "level": 1, "payload": [ "20 6f 73 67 08 4d 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 06 00 00 00 00 00 00 00", "00 00 00 00 49 69 4f 7a 00 00 00 00" ], "seqno": 88, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 89, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 90, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 91, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "inside 0" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "69 00 6e 00 73 00 69 00 64 00 65 00 20 00 30 00", "0d 00" ], "seqno": 92, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 93, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 94, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 95, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 96, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 97, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 98, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 99, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74075400, "height": 5669, "instance_id": 2052024650, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 2835, "y": 0, "z_order": 7 }, "level": 1, "payload": [ "20 6f 73 67 08 4d 6a 04 00 00 00 00 13 0b 00 00", "38 21 00 00 25 16 00 00 07 00 00 00 00 00 00 00", "00 00 00 00 4a 69 4f 7a 00 00 00 00" ], "seqno": 100, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 101, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 102, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 103, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "inside 0" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "69 00 6e 00 73 00 69 00 64 00 65 00 20 00 30 00", "0d 00" ], "seqno": 104, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 105, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 106, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 107, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 108, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 109, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 110, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 111, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74076424, "height": 5669, "instance_id": 2052024651, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 8 }, "level": 1, "payload": [ "20 6f 73 67 08 51 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 08 00 00 00 00 00 00 00", "00 00 00 00 4b 69 4f 7a 00 00 00 00" ], "seqno": 112, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 113, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 114, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483658 }, "level": 3, "payload": [ "0a 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 115, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "outside 0" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6f 00 75 00 74 00 73 00 69 00 64 00 65 00 20 00", "30 00 0d 00" ], "seqno": 116, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 117, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 118, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 119, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 120, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 121, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 122, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 123, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74076424, "height": 5669, "instance_id": 2052024652, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 2835, "y": 0, "z_order": 9 }, "level": 1, "payload": [ "20 6f 73 67 08 51 6a 04 00 00 00 00 13 0b 00 00", "38 21 00 00 25 16 00 00 09 00 00 00 00 00 00 00", "00 00 00 00 4c 69 4f 7a 00 00 00 00" ], "seqno": 124, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 125, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 126, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483659 }, "level": 3, "payload": [ "0b 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 127, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "outside 10" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6f 00 75 00 74 00 73 00 69 00 64 00 65 00 20 00", "31 00 30 00 0d 00" ], "seqno": 128, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 129, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 130, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 131, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 132, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 133, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 134, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 135, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 5669, "instance_id": 2052024653, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 10 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 0a 00 00 00 00 00 00 00", "00 00 00 00 4d 69 4f 7a 00 00 00 00" ], "seqno": 136, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 137, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 138, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483654 }, "level": 3, "payload": [ "06 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 139, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "top 0" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "74 00 6f 00 70 00 20 00 30 00 0d 00" ], "seqno": 140, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 141, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 142, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 143, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 144, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 145, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 146, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 147, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 5669, "instance_id": 2052024654, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 2835, "z_order": 11 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 13 0b 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 0b 00 00 00 00 00 00 00", "00 00 00 00 4e 69 4f 7a 00 00 00 00" ], "seqno": 148, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 149, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 150, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483655 }, "level": 3, "payload": [ "07 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 151, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "top 10" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "74 00 6f 00 70 00 20 00 31 00 30 00 0d 00" ], "seqno": 152, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 153, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 154, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 155, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 156, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 157, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 158, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 159, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072360, "height": 5669, "instance_id": 2052024655, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 12 }, "level": 1, "payload": [ "20 6f 73 67 28 41 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 0c 00 00 00 00 00 00 00", "00 00 00 00 4f 69 4f 7a 00 00 00 00" ], "seqno": 160, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 161, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 162, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 163, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "middle 0" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6d 00 69 00 64 00 64 00 6c 00 65 00 20 00 30 00", "0d 00" ], "seqno": 164, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 165, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 166, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 167, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 168, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 169, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 170, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 171, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072360, "height": 5669, "instance_id": 2052024656, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": -2835, "z_order": 13 }, "level": 1, "payload": [ "20 6f 73 67 28 41 6a 04 ed f4 ff ff 00 00 00 00", "38 21 00 00 25 16 00 00 0d 00 00 00 00 00 00 00", "00 00 00 00 50 69 4f 7a 00 00 00 00" ], "seqno": 172, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 173, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 174, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483659 }, "level": 3, "payload": [ "0b 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 175, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "middle -10" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "6d 00 69 00 64 00 64 00 6c 00 65 00 20 00 2d 00", "31 00 30 00 0d 00" ], "seqno": 176, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 177, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 178, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 179, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 180, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 181, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 182, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 183, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072392, "height": 5669, "instance_id": 2052024657, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 14 }, "level": 1, "payload": [ "20 6f 73 67 48 41 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 0e 00 00 00 00 00 00 00", "00 00 00 00 51 69 4f 7a 00 00 00 00" ], "seqno": 184, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 185, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 186, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 3, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 187, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "bottom 0" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "62 00 6f 00 74 00 74 00 6f 00 6d 00 20 00 30 00", "0d 00" ], "seqno": 188, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 189, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 190, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 191, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 192, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 193, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 194, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 195, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072392, "height": 5669, "instance_id": 2052024658, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 2835, "z_order": 15 }, "level": 1, "payload": [ "20 6f 73 67 48 41 6a 04 13 0b 00 00 00 00 00 00", "38 21 00 00 25 16 00 00 0f 00 00 00 00 00 00 00", "00 00 00 00 52 69 4f 7a 00 00 00 00" ], "seqno": 196, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5669, "initial_height": 4345, "initial_width": 11235, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 2834 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7569203382287495, "b": 0.0, "c": 0.0, "d": 1.3047180667433833, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e3 2b 00 00 f9 10 00 00 38 21 00 00", "25 16 00 00 00 00 00 01 00 00 9c 10 00 00 12 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 e4 d4 4b 00 b1 38 e8 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5f 9c 32 0d 20 e0 f4 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 197, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 198, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483658 }, "level": 3, "payload": [ "0a 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 199, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "bottom 10" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "62 00 6f 00 74 00 74 00 6f 00 6d 00 20 00 31 00", "30 00 0d 00" ], "seqno": 200, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 201, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 202, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11235, "y": 0 }, "p2": { "x": 11235, "y": 4345 }, "p3": { "x": 0, "y": 4345 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e3 2b 00 00 00 00 00", "00 e3 2b 00 00 f9 10 00 00 00 00 00 00 f9 10 00", "00" ], "seqno": 203, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/aligns.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 8, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 8, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 08 00", "00 00 00 00 00 00 08 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/aligns.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/borderfill.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/borderfill.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-2 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-3 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-color: #3f7fff; } .borderfill-4 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-image: linear-gradient(90deg,#3f7fff,#000000); background-image: -webkit-linear-gradient(90deg,#3f7fff,#000000); background-image: -moz-linear-gradient(90deg,#3f7fff,#000000); } .borderfill-5 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; } .borderfill-6 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-color: #3f7fff; background-image: url(bindata/BIN0001.jpg) ; background-size: 100% 100%; } .borderfill-7 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-image: url(bindata/BIN0001.jpg) ; background-size: 100% 100%; } .borderfill-8 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-image: linear-gradient(90deg,#3f7fff,#000000); background-image: -webkit-linear-gradient(90deg,#3f7fff,#000000); background-image: -moz-linear-gradient(90deg,#3f7fff,#000000); background-image: url(bindata/BIN0001.jpg) ; background-size: 100% 100%; } ================================================ FILE: tests/hwp5_tests/fixtures/borderfill.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "tbl ", "description": "", "flags": 136978960, "height": 3846, "instance_id": 2085489268, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 41954, "x": 0, "y": 0, "z_order": 6 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 08 00 00 00 00 00 00 00 00", "e2 a3 00 00 06 0f 00 00 06 00 00 00 1b 01 1b 01", "1b 01 1b 01 74 0a 4e 7c 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 2, "cellspacing": 0, "cols": 1, "flags": 6, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1, 1, 1 ], "rows": 3, "validZones": [] }, "level": 2, "payload": [ "06 00 00 00 03 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 01 00 02 00 00 00" ], "seqno": 13, "size": 28, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 2, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 e2 a3 00 00" ], "seqno": 14, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 3, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "03 00 e2 a3 00 00" ], "seqno": 18, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 19, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 4, "col": 0, "colspan": 1, "height": 282, "listflags": 16777248, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 2, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 01 00 00 02 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "04 00 e2 a3 00 00" ], "seqno": 22, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 23, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 24, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 25, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 27, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 4412 } ] }, "level": 1, "payload": [ "00 00 00 00 3c 11 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 29, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 136978960, "height": 3846, "instance_id": 2085489269, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 41954, "x": 0, "y": 0, "z_order": 7 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 08 00 00 00 00 00 00 00 00", "e2 a3 00 00 06 0f 00 00 07 00 00 00 1b 01 1b 01", "1b 01 1b 01 75 0a 4e 7c 00 00 00 00" ], "seqno": 30, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 2, "cellspacing": 0, "cols": 1, "flags": 6, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1, 1, 1 ], "rows": 3, "validZones": [ { "borderfill_id": 5, "end_column": 2, "end_row": 0, "starting_column": 0, "starting_row": 0 } ] }, "level": 2, "payload": [ "06 00 00 00 03 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 01 00 02 00 01 00 00 00 00 00", "02 00 00 00 05 00" ], "seqno": 31, "size": 38, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 7, "col": 0, "colspan": 1, "height": 282, "listflags": 67108896, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 04 00 00 00 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "07 00 e2 a3 00 00" ], "seqno": 32, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 33, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 6, "col": 0, "colspan": 1, "height": 282, "listflags": 67108896, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 04 00 00 01 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "06 00 e2 a3 00 00" ], "seqno": 36, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 37, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 8, "col": 0, "colspan": 1, "height": 282, "listflags": 83886112, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 2, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 05 00 00 02 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "08 00 e2 a3 00 00" ], "seqno": 40, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 41, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41672, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c8 a2 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 0, "payload": [ "01 00 00 80 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 45, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8824 } ] }, "level": 1, "payload": [ "00 00 00 00 78 22 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 46, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/borderfill.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 6, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 06 00", "00 00 00 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 1, "borderfills": 8, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "08 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 1 }, "flags": 1 }, "level": 1, "payload": [ "01 00 01 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 3, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 5, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 6, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 7, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 8, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 9, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 10, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 11, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 12, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 13, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 14, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 15, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 16, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 18, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": 16744255, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 3f 7f ff 00 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 19, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "blur_center": 50, "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_gradation": { "blur": 40, "center": { "x": 0, "y": 0 }, "colors": [ 16744255, 0 ], "shear": 90, "type": 1 }, "fillflags": 4, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "shape": 1, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "04 00 00 00 01 5a 00 00 00 00 00 00 00 00 00 00", "00 28 00 00 00 02 00 00 00 3f 7f ff 00 00 00 00", "00 01 00 00 00 32" ], "seqno": 20, "size": 70, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 0, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 00 01 00 00 00 00 00 01 00 00 00 00 00 01", "00 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 21, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": 16744255, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fillflags": 3, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "03 00 00 00 3f 7f ff 00 00 00 00 00 ff ff ff ff", "05 00 00 00 01 00 00 00 00 00" ], "seqno": 22, "size": 58, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fillflags": 2, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "02 00 00 00 05 00 00 00 01 00 00 00 00 00" ], "seqno": 23, "size": 46, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "blur_center": 50, "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_gradation": { "blur": 40, "center": { "x": 0, "y": 0 }, "colors": [ 16744255, 0 ], "shear": 90, "type": 1 }, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fillflags": 6, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "shape": 1, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "06 00 00 00 01 5a 00 00 00 00 00 00 00 00 00 00", "00 28 00 00 00 02 00 00 00 3f 7f ff 00 00 00 00", "00 05 00 00 00 01 00 01 00 00 00 32" ], "seqno": 24, "size": 76, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 25, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 27, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 31, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 32, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 33, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 46, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 47, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 49, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 50, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 51, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 52, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 53, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 55, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 56, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 57, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 58, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 59, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/borderfill.hwp.formatted.xml ================================================

기울임진하게

밑줄없음밑줄가운데줄윗줄

글자크기: 기준크기10pt 한글90% 영문80% 기타70%

폰트: 한글돋움 영문CourierNew 기타قLucidaSansUnicode

붉은밑줄

점선밑줄

================================================ FILE: tests/hwp5_tests/fixtures/charshape.html.d/index.xhtml ================================================ 가나다

기울임진하게

밑줄없음밑줄가운데줄윗줄

글자크기: 기준크기10pt 한글90% 영문80% 기타70%

폰트: 한글돋움 영문CourierNew 기타قLucidaSansUnicode

붉은밑줄

점선밑줄

================================================ FILE: tests/hwp5_tests/fixtures/charshape.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-1 > span { line-height: 1.3; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; font-weight: bold; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; font-style: italic; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8 { color: #000000; text-decoration: overline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9 { color: #000000; text-decoration: line-through; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-9.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10 { color: #000000; } span.charshape-10.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-en { font-family: "Courier New", monospace; font-size: 10pt; } span.charshape-10.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11 { color: #000000; } span.charshape-11.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-11.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12 { color: #000000; } span.charshape-12.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-13 { color: #000000; } span.charshape-13.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-en { font-family: "바탕", serif; font-size: 8pt; } span.charshape-13.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14 { color: #000000; } span.charshape-14.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-other { font-family: "바탕", serif; font-size: 7pt; } span.charshape-14.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15 { color: #000000; } span.charshape-15.lang-ko { font-family: "돋움", sans-serif; font-size: 10pt; } span.charshape-15.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16 { color: #000000; } span.charshape-16.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16.lang-other { font-family: "Lucida Sans Unicode", sans-serif; font-size: 10pt; } span.charshape-16.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-16.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17 { color: #000000; text-decoration: underline; text-decoration-color: #ff0000; -moz-text-decoration-color: #ff0000; -webkit-text-decoration-color: #ff0000; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-17.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17.lang-other { font-family: "Lucida Sans Unicode", sans-serif; font-size: 10pt; } span.charshape-17.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-17.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-18.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18.lang-other { font-family: "Lucida Sans Unicode", sans-serif; font-size: 10pt; } span.charshape-18.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-18.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/charshape.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 3, "style_id": 0, "text": 18 }, "level": 0, "payload": [ "12 00 00 00 04 00 00 00 00 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], "\uac00" ], [ [ 17, 18 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ac 0d 00" ], "seqno": 1, "size": 36, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uae30\uc6b8\uc784\uc9c4\ud558\uac8c" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "30 ae b8 c6 84 c7 c4 c9 58 d5 8c ac 0d 00" ], "seqno": 13, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 6 ], [ 3, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 06 00 00 00 03 00 00 00 05 00 00 00" ], "seqno": 14, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 5, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\ubc11\uc904\uc5c6\uc74c\ubc11\uc904\uac00\uc6b4\ub370\uc904\uc717\uc904" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "11 bc 04 c9 c6 c5 4c c7 11 bc 04 c9 00 ac b4 c6", "70 b3 04 c9 17 c7 04 c9 0d 00" ], "seqno": 17, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ], [ 4, 7 ], [ 6, 9 ], [ 10, 8 ], [ 12, 8 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 04 00 00 00 07 00 00 00", "06 00 00 00 09 00 00 00 0a 00 00 00 08 00 00 00", "0c 00 00 00 08 00 00 00" ], "seqno": 18, "size": 40, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 5, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 33 }, "level": 0, "payload": [ "21 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 32 ], "\uae00\uc790\ud06c\uae30: \uae30\uc900\ud06c\uae3010pt \ud55c\uae0090% \uc601\ubb3880% \uae30\ud0c070%" ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 6c d0 30 ae 3a 00 20 00 30 ae 00 c9", "6c d0 30 ae 31 00 30 00 70 00 74 00 20 00 5c d5", "00 ae 39 00 30 00 25 00 20 00 01 c6 38 bb 38 00", "30 00 25 00 20 00 30 ae c0 d0 37 00 30 00 25 00", "0d 00" ], "seqno": 21, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 5, 12 ], [ 14, 11 ], [ 20, 13 ], [ 26, 14 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 05 00 00 00 0c 00 00 00", "0e 00 00 00 0b 00 00 00 14 00 00 00 0d 00 00 00", "1a 00 00 00 0e 00 00 00" ], "seqno": 22, "size": 40, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 4, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 43 }, "level": 0, "payload": [ "2b 00 00 00 00 00 00 00 02 00 00 00 04 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 42 ], "\ud3f0\ud2b8: \ud55c\uae00\ub3cb\uc6c0 \uc601\ubb38CourierNew \uae30\ud0c0\u0642LucidaSansUnicode" ], [ [ 42, 43 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f0 d3 b8 d2 3a 00 20 00 5c d5 00 ae cb b3 c0 c6", "20 00 01 c6 38 bb 43 00 6f 00 75 00 72 00 69 00", "65 00 72 00 4e 00 65 00 77 00 20 00 30 ae c0 d0", "42 06 4c 00 75 00 63 00 69 00 64 00 61 00 53 00", "61 00 6e 00 73 00 55 00 6e 00 69 00 63 00 6f 00", "64 00 65 00 0d 00" ], "seqno": 25, "size": 86, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 3, 15 ], [ 8, 10 ], [ 21, 16 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 03 00 00 00 0f 00 00 00", "08 00 00 00 0a 00 00 00 15 00 00 00 10 00 00 00" ], "seqno": 26, "size": 32, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubd89\uc740\ubc11\uc904" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "89 bd 40 c7 11 bc 04 c9 0d 00" ], "seqno": 29, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 17 ] ] }, "level": 1, "payload": [ "00 00 00 00 11 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483653 }, "level": 0, "payload": [ "05 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uc810\uc120\ubc11\uc904" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "10 c8 20 c1 11 bc 04 c9 0d 00" ], "seqno": 33, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 18 ] ] }, "level": 1, "payload": [ "00 00 00 00 12 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/charshape.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 4, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 5, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 05 00 00 00 04 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 19, "cn_fonts": 2, "en_fonts": 3, "jp_fonts": 2, "ko_fonts": 3, "memoshapes": 0, "numberings": 1, "other_fonts": 3, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 03 00 00 00 03 00 00 00 02 00 00 00", "02 00 00 00 03 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 13 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Dotum", "flags": 97, "name": "\ub3cb\uc6c0", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 cb b3 c0 c6 02 0b 06 00 00 01 01 01 01", "01 05 00 44 00 6f 00 74 00 75 00 6d 00" ], "seqno": 3, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 5, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 6, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Courier New", "flags": 97, "name": "Courier New", "panose1": { "arm_style": 5, "contrast": 2, "family_type": 2, "letterform": 2, "midline": 4, "proportion": 9, "serif_style": 7, "stroke_variation": 2, "weight": 3, "x_height": 4 } }, "level": 1, "payload": [ "61 0b 00 43 00 6f 00 75 00 72 00 69 00 65 00 72", "00 20 00 4e 00 65 00 77 00 02 07 03 09 02 02 05", "02 04 04 0b 00 43 00 6f 00 75 00 72 00 69 00 65", "00 72 00 20 00 4e 00 65 00 77 00" ], "seqno": 7, "size": 59, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Lucida Sans Unicode", "flags": 97, "name": "Lucida Sans Unicode", "panose1": { "arm_style": 4, "contrast": 3, "family_type": 2, "letterform": 2, "midline": 2, "proportion": 2, "serif_style": 11, "stroke_variation": 5, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 13 00 4c 00 75 00 63 00 69 00 64 00 61 00 20", "00 53 00 61 00 6e 00 73 00 20 00 55 00 6e 00 69", "00 63 00 6f 00 64 00 65 00 02 0b 06 02 03 05 04", "02 02 04 13 00 4c 00 75 00 63 00 69 00 64 00 61", "00 20 00 53 00 61 00 6e 00 73 00 20 00 55 00 6e", "00 69 00 63 00 6f 00 64 00 65 00" ], "seqno": 14, "size": 91, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 15, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 16, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 17, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 18, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 19, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 2, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 02 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 25, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 1, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 01 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 4, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 04 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 27, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 12, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 0c 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 8, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 08 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 2, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 02 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 30, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 90, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 5a 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 31, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 32, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 80, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 50 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 33, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 70, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "46 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 34, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 35, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 2, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 02 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 36, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 4, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 2, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 255 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 02 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 04 00", "00 00 0a 0a 00 00 00 00 ff 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 37, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 36, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 2, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 02 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 24 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 38, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 40, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 41, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 42, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 52, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 53, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 54, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 55, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 56, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 58, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 59, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 60, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 61, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 62, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 63, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 64, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 65, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 01 00 03 00", "00 00" ], "seqno": 66, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 01 00 03 00 00 00" ], "seqno": 67, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 04 00 00 00" ], "seqno": 68, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/charshape.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/charstyle.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/charstyle.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* @charshape-id = 1*/ . > span { color: #000000; } . > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } . > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/charstyle.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483665 }, "level": 0, "payload": [ "11 00 00 80 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0d 00" ], "seqno": 1, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/charstyle.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 16, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 10 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 1, "lang_id": 1042, "local_name": "\uae00\uc790\uc2a4\ud0c0\uc77c", "name": "", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "05 00 00 ae 90 c7 a4 c2 c0 d0 7c c7 00 00 01 00", "12 04 00 00 01 00 00 00" ], "seqno": 51, "size": 24, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/charstyle.hwp.formatted.xml ================================================

ko바탕en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko한컴바탕en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko한양신명조en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko휴먼명조en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enArialcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enComicSansMScn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enCourierNewcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enDejaVuSerifcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕en바탕cnSimHeijp바탕other바탕symbol바탕user바탕

ko바탕en바탕cnSimSunjp바탕other바탕symbol바탕user바탕

ko바탕en바탕cn바탕jpMSGothicother바탕symbol바탕user바탕

ko바탕en바탕cn바탕jpMSMinChoother바탕symbol바탕user바탕

================================================ FILE: tests/hwp5_tests/fixtures/facename.html.d/index.xhtml ================================================ 신명조

ko바탕en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko한컴바탕en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko한양신명조en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko휴먼명조en바탕cn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enArialcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enComicSansMScn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enCourierNewcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕enDejaVuSerifcn바탕jp바탕other바탕symbol바탕user바탕

ko바탕en바탕cnSimHeijp바탕other바탕symbol바탕user바탕

ko바탕en바탕cnSimSunjp바탕other바탕symbol바탕user바탕

ko바탕en바탕cn바탕jpMSGothicother바탕symbol바탕user바탕

ko바탕en바탕cn바탕jpMSMinChoother바탕symbol바탕user바탕

================================================ FILE: tests/hwp5_tests/fixtures/facename.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-5 { color: #000000; } span.charshape-5.lang-ko { font-family: "한컴바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; } span.charshape-6.lang-ko { font-family: "한양신명조", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; } span.charshape-7.lang-ko { font-family: "휴먼명조", serif; font-size: 10pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8 { color: #000000; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-en { font-family: "Arial", sans-serif; font-size: 10pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9 { color: #000000; } span.charshape-9.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-en { font-family: "Comic Sans MS", cursive; font-size: 10pt; } span.charshape-9.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10 { color: #000000; } span.charshape-10.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-en { font-family: "Courier New", monospace; font-size: 10pt; } span.charshape-10.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11 { color: #000000; } span.charshape-11.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-en { font-family: "DejaVu Serif", serif; font-size: 10pt; } span.charshape-11.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12 { color: #000000; } span.charshape-12.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-cn { font-family: "SimHei", serif; font-size: 10pt; } span.charshape-12.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13 { color: #000000; } span.charshape-13.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-cn { font-family: "SimSun", serif; font-size: 10pt; } span.charshape-13.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14 { color: #000000; } span.charshape-14.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-jp { font-family: "MS Gothic", monospace; font-size: 10pt; } span.charshape-14.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15 { color: #000000; } span.charshape-15.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-jp { font-family: "MS Mincho", monospace; font-size: 10pt; } span.charshape-15.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/facename.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 54 }, "level": 0, "payload": [ "36 00 00 00 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 53 ], "ko\ubc14\ud0d5en\ubc14\ud0d5cn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 53, 54 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 14 bc d5 d0", "63 00 6e 00 14 bc d5 d0 6a 00 70 00 14 bc d5 d0", "6f 00 74 00 68 00 65 00 72 00 14 bc d5 d0 73 00", "79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0 75 00", "73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 1, "size": 108, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 40 }, "level": 0, "payload": [ "28 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 39 ], "ko\ud55c\ucef4\ubc14\ud0d5en\ubc14\ud0d5cn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 39, 40 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 5c d5 f4 ce 14 bc d5 d0 65 00 6e 00", "14 bc d5 d0 63 00 6e 00 14 bc d5 d0 6a 00 70 00", "14 bc d5 d0 6f 00 74 00 68 00 65 00 72 00 14 bc", "d5 d0 73 00 79 00 6d 00 62 00 6f 00 6c 00 14 bc", "d5 d0 75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 13, "size": 80, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 2, 5 ], [ 6, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 02 00 00 00 05 00 00 00", "06 00 00 00 01 00 00 00" ], "seqno": 14, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 41 }, "level": 0, "payload": [ "29 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 40 ], "ko\ud55c\uc591\uc2e0\uba85\uc870en\ubc14\ud0d5cn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 40, 41 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 5c d5 91 c5 e0 c2 85 ba 70 c8 65 00", "6e 00 14 bc d5 d0 63 00 6e 00 14 bc d5 d0 6a 00", "70 00 14 bc d5 d0 6f 00 74 00 68 00 65 00 72 00", "14 bc d5 d0 73 00 79 00 6d 00 62 00 6f 00 6c 00", "14 bc d5 d0 75 00 73 00 65 00 72 00 14 bc d5 d0", "0d 00" ], "seqno": 17, "size": 82, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 2, 6 ], [ 7, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 02 00 00 00 06 00 00 00", "07 00 00 00 01 00 00 00" ], "seqno": 18, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 40 }, "level": 0, "payload": [ "28 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 39 ], "ko\ud734\uba3c\uba85\uc870en\ubc14\ud0d5cn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 39, 40 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 34 d7 3c ba 85 ba 70 c8 65 00 6e 00", "14 bc d5 d0 63 00 6e 00 14 bc d5 d0 6a 00 70 00", "14 bc d5 d0 6f 00 74 00 68 00 65 00 72 00 14 bc", "d5 d0 73 00 79 00 6d 00 62 00 6f 00 6c 00 14 bc", "d5 d0 75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 21, "size": 80, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 2, 7 ], [ 6, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 02 00 00 00 07 00 00 00", "06 00 00 00 01 00 00 00" ], "seqno": 22, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 41 }, "level": 0, "payload": [ "29 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 40 ], "ko\ubc14\ud0d5enArialcn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 40, 41 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 41 00 72 00", "69 00 61 00 6c 00 63 00 6e 00 14 bc d5 d0 6a 00", "70 00 14 bc d5 d0 6f 00 74 00 68 00 65 00 72 00", "14 bc d5 d0 73 00 79 00 6d 00 62 00 6f 00 6c 00", "14 bc d5 d0 75 00 73 00 65 00 72 00 14 bc d5 d0", "0d 00" ], "seqno": 25, "size": 82, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 6, 8 ], [ 11, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 06 00 00 00 08 00 00 00", "0b 00 00 00 01 00 00 00" ], "seqno": 26, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 47 }, "level": 0, "payload": [ "2f 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 46 ], "ko\ubc14\ud0d5enComicSansMScn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 46, 47 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 43 00 6f 00", "6d 00 69 00 63 00 53 00 61 00 6e 00 73 00 4d 00", "53 00 63 00 6e 00 14 bc d5 d0 6a 00 70 00 14 bc", "d5 d0 6f 00 74 00 68 00 65 00 72 00 14 bc d5 d0", "73 00 79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0", "75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 29, "size": 94, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 6, 9 ], [ 17, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 06 00 00 00 09 00 00 00", "11 00 00 00 01 00 00 00" ], "seqno": 30, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 46 }, "level": 0, "payload": [ "2e 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 45 ], "ko\ubc14\ud0d5enCourierNewcn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 45, 46 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 43 00 6f 00", "75 00 72 00 69 00 65 00 72 00 4e 00 65 00 77 00", "63 00 6e 00 14 bc d5 d0 6a 00 70 00 14 bc d5 d0", "6f 00 74 00 68 00 65 00 72 00 14 bc d5 d0 73 00", "79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0 75 00", "73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 33, "size": 92, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 6, 10 ], [ 16, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 06 00 00 00 0a 00 00 00", "10 00 00 00 01 00 00 00" ], "seqno": 34, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 47 }, "level": 0, "payload": [ "2f 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 46 ], "ko\ubc14\ud0d5enDejaVuSerifcn\ubc14\ud0d5jp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 46, 47 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 44 00 65 00", "6a 00 61 00 56 00 75 00 53 00 65 00 72 00 69 00", "66 00 63 00 6e 00 14 bc d5 d0 6a 00 70 00 14 bc", "d5 d0 6f 00 74 00 68 00 65 00 72 00 14 bc d5 d0", "73 00 79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0", "75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 37, "size": 94, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 6, 11 ], [ 17, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 06 00 00 00 0b 00 00 00", "11 00 00 00 01 00 00 00" ], "seqno": 38, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 42 }, "level": 0, "payload": [ "2a 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 41 ], "ko\ubc14\ud0d5en\ubc14\ud0d5cnSimHeijp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 41, 42 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 14 bc d5 d0", "63 00 6e 00 53 00 69 00 6d 00 48 00 65 00 69 00", "6a 00 70 00 14 bc d5 d0 6f 00 74 00 68 00 65 00", "72 00 14 bc d5 d0 73 00 79 00 6d 00 62 00 6f 00", "6c 00 14 bc d5 d0 75 00 73 00 65 00 72 00 14 bc", "d5 d0 0d 00" ], "seqno": 41, "size": 84, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 10, 12 ], [ 16, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 0a 00 00 00 0c 00 00 00", "10 00 00 00 01 00 00 00" ], "seqno": 42, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 42 }, "level": 0, "payload": [ "2a 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 00" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 41 ], "ko\ubc14\ud0d5en\ubc14\ud0d5cnSimSunjp\ubc14\ud0d5other\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 41, 42 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 14 bc d5 d0", "63 00 6e 00 53 00 69 00 6d 00 53 00 75 00 6e 00", "6a 00 70 00 14 bc d5 d0 6f 00 74 00 68 00 65 00", "72 00 14 bc d5 d0 73 00 79 00 6d 00 62 00 6f 00", "6c 00 14 bc d5 d0 75 00 73 00 65 00 72 00 14 bc", "d5 d0 0d 00" ], "seqno": 45, "size": 84, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 10, 13 ], [ 16, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 0a 00 00 00 0d 00 00 00", "10 00 00 00 01 00 00 00" ], "seqno": 46, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 47, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 44 }, "level": 0, "payload": [ "2c 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 80" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 43 ], "ko\ubc14\ud0d5en\ubc14\ud0d5cn\ubc14\ud0d5jpMSGothicother\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 43, 44 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 14 bc d5 d0", "63 00 6e 00 14 bc d5 d0 6a 00 70 00 4d 00 53 00", "47 00 6f 00 74 00 68 00 69 00 63 00 6f 00 74 00", "68 00 65 00 72 00 14 bc d5 d0 73 00 79 00 6d 00", "62 00 6f 00 6c 00 14 bc d5 d0 75 00 73 00 65 00", "72 00 14 bc d5 d0 0d 00" ], "seqno": 49, "size": 88, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 14, 14 ], [ 22, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 0e 00 00 00 0e 00 00 00", "16 00 00 00 01 00 00 00" ], "seqno": 50, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 44 }, "level": 0, "payload": [ "2c 00 00 00 00 00 00 00 0b 00 00 00 03 00 00 00", "01 00 00 00 00 80" ], "seqno": 52, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 43 ], "ko\ubc14\ud0d5en\ubc14\ud0d5cn\ubc14\ud0d5jpMSMinChoother\ubc14\ud0d5symbol\ubc14\ud0d5user\ubc14\ud0d5" ], [ [ 43, 44 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 65 00 6e 00 14 bc d5 d0", "63 00 6e 00 14 bc d5 d0 6a 00 70 00 4d 00 53 00", "4d 00 69 00 6e 00 43 00 68 00 6f 00 6f 00 74 00", "68 00 65 00 72 00 14 bc d5 d0 73 00 79 00 6d 00", "62 00 6f 00 6c 00 14 bc d5 d0 75 00 73 00 65 00", "72 00 14 bc d5 d0 0d 00" ], "seqno": 53, "size": 88, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 14, 15 ], [ 22, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 0e 00 00 00 0f 00 00 00", "16 00 00 00 01 00 00 00" ], "seqno": 54, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 0, "payload": [ "01 00 00 80 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 56, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 57, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 58, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/facename.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 19, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 11, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 0b 00 00 00 13 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 16, "cn_fonts": 4, "en_fonts": 6, "jp_fonts": 4, "ko_fonts": 5, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 05 00 00 00 06 00 00 00 04 00 00 00", "04 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 10 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Haansoft Batang", "flags": 97, "name": "\ud55c\ucef4\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 04 00 5c d5 f4 ce 14 bc d5 d0 02 03 06 00 00", "01 01 01 01 01 0f 00 48 00 61 00 61 00 6e 00 73", "00 6f 00 66 00 74 00 20 00 42 00 61 00 74 00 61", "00 6e 00 67 00" ], "seqno": 4, "size": 53, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Human Myeongjo", "flags": 98, "name": "\ud734\uba3c\uba85\uc870", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 1, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 04 00 34 d7 3c ba 85 ba 70 c8 01 00 00 00 00", "00 00 00 00 00 0e 00 48 00 75 00 6d 00 61 00 6e", "00 20 00 4d 00 79 00 65 00 6f 00 6e 00 67 00 6a", "00 6f 00" ], "seqno": 5, "size": 51, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "HY Sinmyeongjo", "flags": 98, "name": "\ud55c\uc591\uc2e0\uba85\uc870", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 1, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 05 00 5c d5 91 c5 e0 c2 85 ba 70 c8 01 00 00", "00 00 00 00 00 00 00 0e 00 48 00 59 00 20 00 53", "00 69 00 6e 00 6d 00 79 00 65 00 6f 00 6e 00 67", "00 6a 00 6f 00" ], "seqno": 6, "size": 53, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 7, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 8, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Arial", "flags": 97, "name": "Arial", "panose1": { "arm_style": 2, "contrast": 2, "family_type": 2, "letterform": 2, "midline": 2, "proportion": 4, "serif_style": 11, "stroke_variation": 2, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 05 00 41 00 72 00 69 00 61 00 6c 00 02 0b 06", "04 02 02 02 02 02 04 05 00 41 00 72 00 69 00 61", "00 6c 00" ], "seqno": 9, "size": 35, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Comic Sans MS", "flags": 97, "name": "Comic Sans MS", "panose1": { "arm_style": 2, "contrast": 3, "family_type": 3, "letterform": 2, "midline": 2, "proportion": 2, "serif_style": 15, "stroke_variation": 3, "weight": 7, "x_height": 4 } }, "level": 1, "payload": [ "61 0d 00 43 00 6f 00 6d 00 69 00 63 00 20 00 53", "00 61 00 6e 00 73 00 20 00 4d 00 53 00 03 0f 07", "02 03 03 02 02 02 04 0d 00 43 00 6f 00 6d 00 69", "00 63 00 20 00 53 00 61 00 6e 00 73 00 20 00 4d", "00 53 00" ], "seqno": 10, "size": 67, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Courier New", "flags": 97, "name": "Courier New", "panose1": { "arm_style": 5, "contrast": 2, "family_type": 2, "letterform": 2, "midline": 4, "proportion": 9, "serif_style": 7, "stroke_variation": 2, "weight": 3, "x_height": 4 } }, "level": 1, "payload": [ "61 0b 00 43 00 6f 00 75 00 72 00 69 00 65 00 72", "00 20 00 4e 00 65 00 77 00 02 07 03 09 02 02 05", "02 04 04 0b 00 43 00 6f 00 75 00 72 00 69 00 65", "00 72 00 20 00 4e 00 65 00 77 00" ], "seqno": 11, "size": 59, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "DejaVu Serif", "flags": 97, "name": "DejaVu Serif", "panose1": { "arm_style": 5, "contrast": 5, "family_type": 2, "letterform": 2, "midline": 2, "proportion": 3, "serif_style": 6, "stroke_variation": 6, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 0c 00 44 00 65 00 6a 00 61 00 56 00 75 00 20", "00 53 00 65 00 72 00 69 00 66 00 02 06 06 03 05", "06 05 02 02 04 0c 00 44 00 65 00 6a 00 61 00 56", "00 75 00 20 00 53 00 65 00 72 00 69 00 66 00" ], "seqno": 12, "size": 63, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 13, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 14, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "SimHei", "flags": 97, "name": "SimHei", "panose1": { "arm_style": 1, "contrast": 3, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 1, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 06 00 53 00 69 00 6d 00 48 00 65 00 69 00 02", "01 06 00 03 01 01 01 01 01 06 00 53 00 69 00 6d", "00 48 00 65 00 69 00" ], "seqno": 15, "size": 39, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "SimSun", "flags": 97, "name": "SimSun", "panose1": { "arm_style": 1, "contrast": 3, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 1, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 06 00 53 00 69 00 6d 00 53 00 75 00 6e 00 02", "01 06 00 03 01 01 01 01 01 06 00 53 00 69 00 6d", "00 53 00 75 00 6e 00" ], "seqno": 16, "size": 39, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 17, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 18, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "MS Gothic", "flags": 97, "name": "MS Gothic", "panose1": { "arm_style": 5, "contrast": 7, "family_type": 2, "letterform": 8, "midline": 2, "proportion": 9, "serif_style": 11, "stroke_variation": 2, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 09 00 4d 00 53 00 20 00 47 00 6f 00 74 00 68", "00 69 00 63 00 02 0b 06 09 07 02 05 08 02 04 09", "00 4d 00 53 00 20 00 47 00 6f 00 74 00 68 00 69", "00 63 00" ], "seqno": 19, "size": 51, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "MS Mincho", "flags": 97, "name": "MS Mincho", "panose1": { "arm_style": 5, "contrast": 4, "family_type": 2, "letterform": 8, "midline": 3, "proportion": 9, "serif_style": 2, "stroke_variation": 2, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 09 00 4d 00 53 00 20 00 4d 00 69 00 6e 00 63", "00 68 00 6f 00 02 02 06 09 04 02 05 08 03 04 09", "00 4d 00 53 00 20 00 4d 00 69 00 6e 00 63 00 68", "00 6f 00" ], "seqno": 20, "size": 51, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 21, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 22, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 23, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 24, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 25, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 26, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 27, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 30, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 31, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 32, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 2, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 33, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 4, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "04 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 34, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 3, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "03 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 35, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 2, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 02 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 36, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 3, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 03 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 37, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 4, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 04 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 38, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 5, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 05 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 39, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 2, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 02 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 40, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 3, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 03 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 41, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 2, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 02 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 42, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 3, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 03 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 43, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 45, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 46, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 47, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 52, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 53, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 54, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 55, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 56, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 57, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 58, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 59, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 60, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 61, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 62, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 63, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 64, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 65, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 66, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 67, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 68, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 69, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 70, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 71, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 72, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/facename.hwp.formatted.xml ================================================

ko바탕 en바탕 cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko한컴돋움 en바탕 cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 enTimesNewRoman cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 enArial cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn약자漢字 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn간자漢字 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn바탕 jp명조other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn바탕 jp고딕other바탕 symbol바탕 user바탕

================================================ FILE: tests/hwp5_tests/fixtures/facename2.html.d/index.xhtml ================================================ ko바탕 en바탕 cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko한컴돋움 en바탕 cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 enTimesNewRoman cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 enArial cn바탕 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn약자漢字 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn간자漢字 jp바탕 other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn바탕 jp명조other바탕 symbol바탕 user바탕

ko바탕 en바탕 cn바탕 jp고딕other바탕 symbol바탕 user바탕

================================================ FILE: tests/hwp5_tests/fixtures/facename2.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 0*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .kohkdu { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .kohkdu > span { line-height: 1.6; } /* @charshape-id = 3*/ .kohkdu > span { color: #000000; } .kohkdu > span.lang-ko { font-family: "한컴돋움", sans-serif; font-size: 10pt; } .kohkdu > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .kohkdu > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .kohkdu > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .kohkdu > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .kohkdu > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .kohkdu > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .entnr { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .entnr > span { line-height: 1.6; } /* @charshape-id = 4*/ .entnr > span { color: #000000; } .entnr > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .entnr > span.lang-en { font-family: "Times New Roman", serif; font-size: 10pt; } .entnr > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .entnr > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .entnr > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .entnr > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .entnr > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .enarial { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .enarial > span { line-height: 1.6; } /* @charshape-id = 1*/ .enarial > span { color: #000000; } .enarial > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .enarial > span.lang-en { font-family: "Arial", sans-serif; font-size: 10pt; } .enarial > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .enarial > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .enarial > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .enarial > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .enarial > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .cnyak { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .cnyak > span { line-height: 1.6; } /* @charshape-id = 5*/ .cnyak > span { color: #000000; } .cnyak > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .cnyak > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .cnyak > span.lang-cn { font-family: "해서 약자"; font-size: 10pt; } .cnyak > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .cnyak > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .cnyak > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .cnyak > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .cngan { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .cngan > span { line-height: 1.6; } /* @charshape-id = 6*/ .cngan > span { color: #000000; } .cngan > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .cngan > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .cngan > span.lang-cn { font-family: "해서 간자"; font-size: 10pt; } .cngan > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .cngan > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .cngan > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .cngan > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .jpmincho { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .jpmincho > span { line-height: 1.6; } /* @charshape-id = 7*/ .jpmincho > span { color: #000000; } .jpmincho > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .jpmincho > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .jpmincho > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .jpmincho > span.lang-jp { font-family: "명조", serif; font-size: 10pt; } .jpmincho > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .jpmincho > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .jpmincho > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .jpgothic { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .jpgothic > span { line-height: 1.6; } /* @charshape-id = 2*/ .jpgothic > span { color: #000000; } .jpgothic > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .jpgothic > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .jpgothic > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .jpgothic > span.lang-jp { font-family: "고딕", sans-serif; font-size: 10pt; } .jpgothic > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .jpgothic > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .jpgothic > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "Arial", sans-serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2.lang-jp { font-family: "고딕", sans-serif; font-size: 10pt; } span.charshape-2.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "한컴돋움", sans-serif; font-size: 10pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-en { font-family: "Times New Roman", serif; font-size: 10pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5 { color: #000000; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "해서 약자"; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "해서 간자"; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-jp { font-family: "명조", serif; font-size: 10pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/facename2.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 3, "style_id": 0, "text": 60 }, "level": 0, "payload": [ "3c 00 00 00 04 00 00 00 00 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 59 ], "ko\ubc14\ud0d5 en\ubc14\ud0d5 cn\ubc14\ud0d5 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 59, 60 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 14 bc", "d5 d0 20 00 63 00 6e 00 14 bc d5 d0 20 00 6a 00", "70 00 14 bc d5 d0 20 00 6f 00 74 00 68 00 65 00", "72 00 14 bc d5 d0 20 00 73 00 79 00 6d 00 62 00", "6f 00 6c 00 14 bc d5 d0 20 00 75 00 73 00 65 00", "72 00 14 bc d5 d0 0d 00" ], "seqno": 1, "size": 120, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 1, "text": 46 }, "level": 0, "payload": [ "2e 00 00 00 00 00 00 00 01 00 01 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 45 ], "ko\ud55c\ucef4\ub3cb\uc6c0 en\ubc14\ud0d5 cn\ubc14\ud0d5 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 45, 46 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 5c d5 f4 ce cb b3 c0 c6 20 00 65 00", "6e 00 14 bc d5 d0 20 00 63 00 6e 00 14 bc d5 d0", "20 00 6a 00 70 00 14 bc d5 d0 20 00 6f 00 74 00", "68 00 65 00 72 00 14 bc d5 d0 20 00 73 00 79 00", "6d 00 62 00 6f 00 6c 00 14 bc d5 d0 20 00 75 00", "73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 13, "size": 92, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 3 ] ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 2, "text": 55 }, "level": 0, "payload": [ "37 00 00 00 00 00 00 00 01 00 02 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 54 ], "ko\ubc14\ud0d5 enTimesNewRoman cn\ubc14\ud0d5 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 54, 55 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 54 00", "69 00 6d 00 65 00 73 00 4e 00 65 00 77 00 52 00", "6f 00 6d 00 61 00 6e 00 20 00 63 00 6e 00 14 bc", "d5 d0 20 00 6a 00 70 00 14 bc d5 d0 20 00 6f 00", "74 00 68 00 65 00 72 00 14 bc d5 d0 20 00 73 00", "79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0 20 00", "75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 17, "size": 110, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 3, "text": 47 }, "level": 0, "payload": [ "2f 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 46 ], "ko\ubc14\ud0d5 enArial cn\ubc14\ud0d5 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 46, 47 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 41 00", "72 00 69 00 61 00 6c 00 20 00 63 00 6e 00 14 bc", "d5 d0 20 00 6a 00 70 00 14 bc d5 d0 20 00 6f 00", "74 00 68 00 65 00 72 00 14 bc d5 d0 20 00 73 00", "79 00 6d 00 62 00 6f 00 6c 00 14 bc d5 d0 20 00", "75 00 73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 21, "size": 94, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 4, "text": 46 }, "level": 0, "payload": [ "2e 00 00 00 00 00 00 00 01 00 04 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 45 ], "ko\ubc14\ud0d5 en\ubc14\ud0d5 cn\uc57d\uc790\u6f22\u5b57 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 45, 46 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 14 bc", "d5 d0 20 00 63 00 6e 00 7d c5 90 c7 22 6f 57 5b", "20 00 6a 00 70 00 14 bc d5 d0 20 00 6f 00 74 00", "68 00 65 00 72 00 14 bc d5 d0 20 00 73 00 79 00", "6d 00 62 00 6f 00 6c 00 14 bc d5 d0 20 00 75 00", "73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 25, "size": 92, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 5, "text": 46 }, "level": 0, "payload": [ "2e 00 00 00 00 00 00 00 01 00 05 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 45 ], "ko\ubc14\ud0d5 en\ubc14\ud0d5 cn\uac04\uc790\u6f22\u5b57 jp\ubc14\ud0d5 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 45, 46 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 14 bc", "d5 d0 20 00 63 00 6e 00 04 ac 90 c7 22 6f 57 5b", "20 00 6a 00 70 00 14 bc d5 d0 20 00 6f 00 74 00", "68 00 65 00 72 00 14 bc d5 d0 20 00 73 00 79 00", "6d 00 62 00 6f 00 6c 00 14 bc d5 d0 20 00 75 00", "73 00 65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 29, "size": 92, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 6 ] ] }, "level": 1, "payload": [ "00 00 00 00 06 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 6, "text": 45 }, "level": 0, "payload": [ "2d 00 00 00 00 00 00 00 01 00 06 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 44 ], "ko\ubc14\ud0d5 en\ubc14\ud0d5 cn\ubc14\ud0d5 jp\uba85\uc870\u3042 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 44, 45 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 14 bc", "d5 d0 20 00 63 00 6e 00 14 bc d5 d0 20 00 6a 00", "70 00 85 ba 70 c8 42 30 20 00 6f 00 74 00 68 00", "65 00 72 00 14 bc d5 d0 20 00 73 00 79 00 6d 00", "62 00 6f 00 6c 00 14 bc d5 d0 20 00 75 00 73 00", "65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 33, "size": 90, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 7 ] ] }, "level": 1, "payload": [ "00 00 00 00 07 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 7, "text": 2147483693 }, "level": 0, "payload": [ "2d 00 00 80 00 00 00 00 01 00 07 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 44 ], "ko\ubc14\ud0d5 en\ubc14\ud0d5 cn\ubc14\ud0d5 jp\uace0\ub515\u3042 other\ubc14\ud0d5 symbol\ubc14\ud0d5 user\ubc14\ud0d5" ], [ [ 44, 45 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6b 00 6f 00 14 bc d5 d0 20 00 65 00 6e 00 14 bc", "d5 d0 20 00 63 00 6e 00 14 bc d5 d0 20 00 6a 00", "70 00 e0 ac 15 b5 42 30 20 00 6f 00 74 00 68 00", "65 00 72 00 14 bc d5 d0 20 00 73 00 79 00 6d 00", "62 00 6f 00 6c 00 14 bc d5 d0 20 00 75 00 73 00", "65 00 72 00 14 bc d5 d0 0d 00" ], "seqno": 37, "size": 90, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 2 ] ] }, "level": 1, "payload": [ "00 00 00 00 02 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/facename2.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 18, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 7, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 07 00 00 00 12 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 8, "cn_fonts": 3, "en_fonts": 3, "jp_fonts": 3, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 1, "parashapes": 2, "styles": 8, "symbol_fonts": 1, "tabdefs": 1, "user_fonts": 1 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00", "03 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 08 00 00 00 01 00 00 00 01 00 00 00", "00 00 00 00 02 00 00 00 08 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 2, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Haansoft Dotum", "flags": 97, "name": "\ud55c\ucef4\ub3cb\uc6c0", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 04 00 5c d5 f4 ce cb b3 c0 c6 02 03 06 00 00", "01 01 01 01 01 0e 00 48 00 61 00 61 00 6e 00 73", "00 6f 00 66 00 74 00 20 00 44 00 6f 00 74 00 75", "00 6d 00" ], "seqno": 3, "size": 51, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Arial", "flags": 97, "name": "Arial", "panose1": { "arm_style": 2, "contrast": 2, "family_type": 2, "letterform": 2, "midline": 2, "proportion": 4, "serif_style": 11, "stroke_variation": 2, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 05 00 41 00 72 00 69 00 61 00 6c 00 02 0b 06", "04 02 02 02 02 02 04 05 00 41 00 72 00 69 00 61", "00 6c 00" ], "seqno": 5, "size": 35, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Times New Roman", "flags": 97, "name": "Times New Roman", "panose1": { "arm_style": 5, "contrast": 5, "family_type": 2, "letterform": 2, "midline": 3, "proportion": 3, "serif_style": 2, "stroke_variation": 4, "weight": 6, "x_height": 4 } }, "level": 1, "payload": [ "61 0f 00 54 00 69 00 6d 00 65 00 73 00 20 00 4e", "00 65 00 77 00 20 00 52 00 6f 00 6d 00 61 00 6e", "00 02 02 06 03 05 04 05 02 03 04 0f 00 54 00 69", "00 6d 00 65 00 73 00 20 00 4e 00 65 00 77 00 20", "00 52 00 6f 00 6d 00 61 00 6e 00" ], "seqno": 6, "size": 75, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Haeseo Jananese", "flags": 98, "name": "\ud574\uc11c \uc57d\uc790", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 1, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 05 00 74 d5 1c c1 20 00 7d c5 90 c7 01 00 00", "00 00 00 00 00 00 00 0f 00 48 00 61 00 65 00 73", "00 65 00 6f 00 20 00 4a 00 61 00 6e 00 61 00 6e", "00 65 00 73 00 65 00" ], "seqno": 8, "size": 55, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Haeseo Chinese", "flags": 98, "name": "\ud574\uc11c \uac04\uc790", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 1, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 05 00 74 d5 1c c1 20 00 04 ac 90 c7 01 00 00", "00 00 00 00 00 00 00 0e 00 48 00 61 00 65 00 73", "00 65 00 6f 00 20 00 43 00 68 00 69 00 6e 00 65", "00 73 00 65 00" ], "seqno": 9, "size": 53, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 10, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Myeongjo", "flags": 98, "name": "\uba85\uc870", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 1, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 02 00 85 ba 70 c8 01 00 00 00 00 00 00 00 00", "00 08 00 4d 00 79 00 65 00 6f 00 6e 00 67 00 6a", "00 6f 00" ], "seqno": 11, "size": 35, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gothic", "flags": 98, "name": "\uace0\ub515", "panose1": { "arm_style": 0, "contrast": 0, "family_type": 2, "letterform": 0, "midline": 0, "proportion": 0, "serif_style": 0, "stroke_variation": 0, "weight": 0, "x_height": 0 } }, "level": 1, "payload": [ "62 02 00 e0 ac 15 b5 02 00 00 00 00 00 00 00 00", "00 06 00 47 00 6f 00 74 00 68 00 69 00 63 00" ], "seqno": 12, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 14, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 1, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 01 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 2, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 02 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 1, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 2, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 02 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 2, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 02 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 1, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 01 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 00 00 00 00" ], "seqno": 29, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ud55c\uae00-\ud55c\ucef4\ub3cb\uc6c0", "name": "kohkdu", "next_style_id": 1, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "07 00 5c d5 00 ae 2d 00 5c d5 f4 ce cb b3 c0 c6", "06 00 6b 00 6f 00 68 00 6b 00 64 00 75 00 00 01", "12 04 01 00 03 00 00 00" ], "seqno": 30, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uc601\ubb38-TimesNewRoman", "name": "entnr", "next_style_id": 2, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "10 00 01 c6 38 bb 2d 00 54 00 69 00 6d 00 65 00", "73 00 4e 00 65 00 77 00 52 00 6f 00 6d 00 61 00", "6e 00 05 00 65 00 6e 00 74 00 6e 00 72 00 00 02", "12 04 01 00 04 00 00 00" ], "seqno": 31, "size": 56, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uc601\ubb38-Arial", "name": "enarial", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "08 00 01 c6 38 bb 2d 00 41 00 72 00 69 00 61 00", "6c 00 07 00 65 00 6e 00 61 00 72 00 69 00 61 00", "6c 00 00 03 12 04 01 00 01 00 00 00" ], "seqno": 32, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 5, "flags": 0, "lang_id": 1042, "local_name": "\uc911\ubb38-\uc57d\uc790", "name": "cnyak", "next_style_id": 4, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "05 00 11 c9 38 bb 2d 00 7d c5 90 c7 05 00 63 00", "6e 00 79 00 61 00 6b 00 00 04 12 04 01 00 05 00", "00 00" ], "seqno": 33, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 6, "flags": 0, "lang_id": 1042, "local_name": "\uc911\ubb38-\uac04\uc790", "name": "cngan", "next_style_id": 5, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "05 00 11 c9 38 bb 2d 00 04 ac 90 c7 05 00 63 00", "6e 00 67 00 61 00 6e 00 00 05 12 04 01 00 06 00", "00 00" ], "seqno": 34, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 7, "flags": 0, "lang_id": 1042, "local_name": "\uc77c\ubb38-\uba85\uc870", "name": "jpmincho", "next_style_id": 6, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "05 00 7c c7 38 bb 2d 00 85 ba 70 c8 08 00 6a 00", "70 00 6d 00 69 00 6e 00 63 00 68 00 6f 00 00 06", "12 04 01 00 07 00 00 00" ], "seqno": 35, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uc77c\ubb38-\uace0\ub515", "name": "jpgothic", "next_style_id": 7, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "05 00 7c c7 38 bb 2d 00 e0 ac 15 b5 08 00 6a 00", "70 00 67 00 6f 00 74 00 68 00 69 00 63 00 00 07", "12 04 01 00 02 00 00 00" ], "seqno": 36, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/facename2.hwp.formatted.xml ================================================

각주참조

미주참조

================================================ FILE: tests/hwp5_tests/fixtures/footnote-endnote.html.d/index.xhtml ================================================ 각주참조

각주참조

미주참조

================================================ FILE: tests/hwp5_tests/fixtures/footnote-endnote.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/footnote-endnote.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 131076, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 37 }, "level": 0, "payload": [ "25 00 00 00 04 00 02 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 20 ], "\uac01\uc8fc\ucc38\uc870" ], [ [ 20, 28 ], { "chid": "fn ", "code": 17, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 28, 36 ], { "chid": "fn ", "code": 17, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 36, 37 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "01 ac fc c8 38 cc 70 c8 11 00 20 20 6e 66 00 00", "00 00 00 00 00 00 11 00 11 00 20 20 6e 66 00 00", "00 00 00 00 00 00 11 00 0d 00" ], "seqno": 1, "size": 74, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "fn ", "number": 1, "unknown0": 2686976, "unknown1": 0 }, "level": 1, "payload": [ "20 20 6e 66 01 00 00 00 00 00 29 00 00 00 00 00" ], "seqno": 12, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "FootNote" }, { "content": { "listflags": 0, "paragraphs": 1, "unknown1": 0 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 13, "size": 8, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "ListHeader" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 10, "rangetags": 0, "split": 0, "style_id": 11, "text": 2147483664 }, "level": 2, "payload": [ "10 00 00 80 00 00 04 00 0a 00 0b 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 14, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 15 ], " \uac01\uc8fc\uc785\ub2c8\ub2e4." ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "12 00 6f 6e 74 61 00 00 00 00 00 00 00 00 12 00", "20 00 01 ac fc c8 85 c7 c8 b2 e4 b2 2e 00 0d 00" ], "seqno": 15, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 3, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 272, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 10 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 1, "number": 1, "prefix": 0, "suffix": 41, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 01 00 00 00 01 00 00 00 00 00 29 00" ], "seqno": 18, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "chid": "fn ", "number": 2, "unknown0": 2686976, "unknown1": 0 }, "level": 1, "payload": [ "20 20 6e 66 02 00 00 00 00 00 29 00 00 00 00 00" ], "seqno": 19, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "FootNote" }, { "content": { "listflags": 0, "paragraphs": 1, "unknown1": 0 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 20, "size": 8, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "ListHeader" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 10, "rangetags": 0, "split": 0, "style_id": 11, "text": 2147483669 }, "level": 2, "payload": [ "15 00 00 80 00 00 04 00 0a 00 0b 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 20 ], " \uac01\uc8fc \ub450 \ubc88\uc9f8\uc785\ub2c8\ub2e4." ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "12 00 6f 6e 74 61 00 00 00 00 00 00 00 00 12 00", "20 00 01 ac fc c8 20 00 50 b4 20 00 88 bc f8 c9", "85 c7 c8 b2 e4 b2 2e 00 0d 00" ], "seqno": 22, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 3, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 272, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 10 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 24, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 1, "number": 2, "prefix": 0, "suffix": 41, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 01 00 00 00 02 00 00 00 00 00 29 00" ], "seqno": 25, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "charshapes": 1, "controlmask": 131072, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483669 }, "level": 0, "payload": [ "15 00 00 80 00 00 02 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubbf8\uc8fc\ucc38\uc870" ], [ [ 4, 12 ], { "chid": "en ", "code": 17, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 12, 20 ], { "chid": "en ", "code": 17, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bb fc c8 38 cc 70 c8 11 00 20 20 6e 65 00 00", "00 00 00 00 00 00 11 00 11 00 20 20 6e 65 00 00", "00 00 00 00 00 00 11 00 0d 00" ], "seqno": 27, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 29, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "en ", "number": 1, "unknown0": 2686976, "unknown1": 0 }, "level": 1, "payload": [ "20 20 6e 65 01 00 00 00 00 00 29 00 00 00 00 00" ], "seqno": 30, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "EndNote" }, { "content": { "listflags": 0, "paragraphs": 1, "unknown1": 0 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 31, "size": 8, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "ListHeader" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483664 }, "level": 2, "payload": [ "10 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 15 ], " \ubbf8\uc8fc\uc785\ub2c8\ub2e4." ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "12 00 6f 6e 74 61 00 00 00 00 00 00 00 00 12 00", "20 00 f8 bb fc c8 85 c7 c8 b2 e4 b2 2e 00 0d 00" ], "seqno": 33, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 2, "number": 1, "prefix": 0, "suffix": 41, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 02 00 00 00 01 00 00 00 00 00 29 00" ], "seqno": 36, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "chid": "en ", "number": 2, "unknown0": 2686976, "unknown1": 0 }, "level": 1, "payload": [ "20 20 6e 65 02 00 00 00 00 00 29 00 00 00 00 00" ], "seqno": 37, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "EndNote" }, { "content": { "listflags": 0, "paragraphs": 1, "unknown1": 0 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 38, "size": 8, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "ListHeader" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483669 }, "level": 2, "payload": [ "15 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 39, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 20 ], " \ubbf8\uc8fc \ub450 \ubc88\uc9f8\uc785\ub2c8\ub2e4." ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "12 00 6f 6e 74 61 00 00 00 00 00 00 00 00 12 00", "20 00 f8 bb fc c8 20 00 50 b4 20 00 88 bc f8 c9", "85 c7 c8 b2 e4 b2 2e 00 0d 00" ], "seqno": 40, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 41, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 42, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 2, "number": 2, "prefix": 0, "suffix": 41, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 02 00 00 00 02 00 00 00 00 00 29 00" ], "seqno": 43, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" } ] ================================================ FILE: tests/hwp5_tests/fixtures/footnote-endnote.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 20, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 4, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 04 00", "00 00 00 00 00 00 14 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/footnote-endnote.hwp.formatted.xml ================================================

Header 이것은 머리말입니다1.

첫 페이지

Footer 이것은 꼬리말입니다.

================================================ FILE: tests/hwp5_tests/fixtures/headerfooter.html.d/index.xhtml ================================================

Header 이것은 머리말입니다1.

첫 페이지

Footer 이것은 꼬리말입니다.

================================================ FILE: tests/hwp5_tests/fixtures/headerfooter.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/headerfooter.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 3, "style_id": 0, "text": 22 }, "level": 0, "payload": [ "16 00 00 00 04 00 00 00 09 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 21 ], "\uccab \ud398\uc774\uc9c0" ], [ [ 21, 22 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "ab cc 20 00 98 d3 74 c7 c0 c9 0d 00" ], "seqno": 1, "size": 44, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 65536, "instance_id": 0, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483665 }, "level": 0, "payload": [ "11 00 00 80 00 00 01 00 09 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "head", "code": 16, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "foot", "code": 16, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "10 00 64 61 65 68 00 00 00 00 00 00 00 00 10 00", "10 00 74 6f 6f 66 00 00 00 00 00 00 00 00 10 00", "0d 00" ], "seqno": 13, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "head", "flags": 0 }, "level": 1, "payload": [ "64 61 65 68 00 00 00 00" ], "seqno": 16, "size": 8, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "Header" }, { "content": { "height": 4252, "listflags": 0, "numberrefsbitmap": 0, "paragraphs": 1, "textrefsbitmap": 0, "unknown1": 0, "width": 42520 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 18 a6 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00 00 00" ], "seqno": 17, "size": 26, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "HeaderParagraphList", "unparsed": [ "00 00 00 00 00 00 00 00" ] }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 10, "text": 2147483675 }, "level": 2, "payload": [ "1b 00 00 80 00 00 04 00 0b 00 0a 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 18, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 17 ], "Header \uc774\uac83\uc740 \uba38\ub9ac\ub9d0\uc785\ub2c8\ub2e4" ], [ [ 17, 25 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 25, 26 ], "." ], [ [ 26, 27 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "48 00 65 00 61 00 64 00 65 00 72 00 20 00 74 c7", "83 ac 40 c7 20 00 38 ba ac b9 d0 b9 85 c7 c8 b2", "e4 b2 12 00 6f 6e 74 61 00 00 00 00 00 00 00 00", "12 00 2e 00 0d 00" ], "seqno": 19, "size": 54, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 2 ] ] }, "level": 3, "payload": [ "00 00 00 00 02 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 452, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 c4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 0, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 00 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 22, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "chid": "foot", "flags": 2 }, "level": 1, "payload": [ "74 6f 6f 66 02 00 00 00" ], "seqno": 23, "size": 8, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "Footer" }, { "content": { "height": 4252, "listflags": 64, "numberrefsbitmap": 0, "paragraphs": 1, "textrefsbitmap": 0, "unknown1": 0, "width": 42520 }, "level": 2, "payload": [ "01 00 00 00 40 00 00 00 18 a6 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00 00 00" ], "seqno": 24, "size": 26, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "FooterParagraphList", "unparsed": [ "00 00 00 00 00 00 00 00" ] }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 10, "text": 2147483667 }, "level": 2, "payload": [ "13 00 00 80 00 00 00 00 0b 00 0a 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 25, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 18 ], "Footer \uc774\uac83\uc740 \uaf2c\ub9ac\ub9d0\uc785\ub2c8\ub2e4." ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "46 00 6f 00 6f 00 74 00 65 00 72 00 20 00 74 c7", "83 ac 40 c7 20 00 2c af ac b9 d0 b9 85 c7 c8 b2", "e4 b2 2e 00 0d 00" ], "seqno": 26, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 2 ] ] }, "level": 3, "payload": [ "00 00 00 00 02 00 00 00" ], "seqno": 27, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 452, "width": 42520, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 c4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 28, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/headerfooter.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 21, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 15 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 0a 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 01 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 02 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 03 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 04 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 05 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 06 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 07 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 08 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 0a 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 09 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/headerfooter.hwp.formatted.xml ================================================

gmail g

le

================================================ FILE: tests/hwp5_tests/fixtures/issue144-fields-crossing-lineseg-boundary.html.d/index.xhtml ================================================ issue144-fields-crossing-lineseg-boundary

gmail g

le

================================================ FILE: tests/hwp5_tests/fixtures/issue144-fields-crossing-lineseg-boundary.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-5 { color: #000000; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 32pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6 { color: #0000ff; text-decoration: underline; text-decoration-color: #0000ff; -moz-text-decoration-color: #0000ff; -webkit-text-decoration-color: #0000ff; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 32pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 32pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/issue144-fields-crossing-lineseg-boundary.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 3, "controlmask": 28, "instance_id": 0, "linesegs": 2, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 74 }, "level": 0, "payload": [ "4a 00 00 00 1c 00 00 00 0b 00 00 03 03 00 00 00", "02 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "%hlk", "code": 3, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 65 ], "google google google google google google" ], [ [ 65, 73 ], { "chid": "\u0000hlk", "code": 4, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 73, 74 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "03 00 6b 6c 68 25 00 00 00 00 00 00 00 00 03 00", "67 00 6f 00 6f 00 67 00 6c 00 65 00 20 00 67 00", "6f 00 6f 00 67 00 6c 00 65 00 20 00 67 00 6f 00", "6f 00 67 00 6c 00 65 00 20 00 67 00 6f 00 6f 00", "67 00 6c 00 65 00 20 00 67 00 6f 00 6f 00 67 00", "6c 00 65 00 20 00 67 00 6f 00 6f 00 67 00 6c 00", "65 00 04 00 6b 6c 68 00 00 00 00 00 00 00 00 00", "04 00 0d 00" ], "seqno": 1, "size": 148, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 24, 6 ], [ 65, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 18 00 00 00 06 00 00 00", "41 00 00 00 05 00 00 00" ], "seqno": 2, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 3200, "height_baseline": 2720, "height_text": 3200, "lineseg_flags": 393216, "space_below": 1920, "width": 42520, "x": 0, "y": 0 }, { "chpos": 45, "height": 3200, "height_baseline": 2720, "height_text": 3200, "lineseg_flags": 393216, "space_below": 1920, "width": 42520, "x": 0, "y": 5120 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 80 0c 00 00 80 0c 00 00", "a0 0a 00 00 80 07 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00 2d 00 00 00 00 14 00 00 80 0c 00 00", "80 0c 00 00 a0 0a 00 00 80 07 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00" ], "seqno": 3, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "%hlk", "command": "http\\://google.com;1;0;0;", "extra_attr": 0, "flags": 43008, "id": 1528818375 }, "level": 1, "payload": [ "6b 6c 68 25 00 a8 00 00 00 19 00 68 00 74 00 74", "00 70 00 5c 00 3a 00 2f 00 2f 00 67 00 6f 00 6f", "00 67 00 6c 00 65 00 2e 00 63 00 6f 00 6d 00 3b", "00 31 00 3b 00 30 00 3b 00 30 00 3b 00 c7 ea 1f", "5b 00 00 00 00" ], "seqno": 12, "size": 69, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "FieldHyperLink", "unparsed": [ "00 00 00 00" ] }, { "content": { "charshapes": 2, "controlmask": 8, "instance_id": 0, "linesegs": 2, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 44 }, "level": 0, "payload": [ "2c 00 00 00 08 00 00 00 0b 00 00 00 02 00 00 00", "02 00 00 00 00 00" ], "seqno": 13, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "gmail g" ], [ [ 7, 15 ], { "chid": "%hlk", "code": 3, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 15, 43 ], "mail gmail gmail gmail gmail" ], [ [ 43, 44 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "67 00 6d 00 61 00 69 00 6c 00 20 00 67 00 03 00", "6b 6c 68 25 00 00 00 00 00 00 00 00 03 00 6d 00", "61 00 69 00 6c 00 20 00 67 00 6d 00 61 00 69 00", "6c 00 20 00 67 00 6d 00 61 00 69 00 6c 00 20 00", "67 00 6d 00 61 00 69 00 6c 00 20 00 67 00 6d 00", "61 00 69 00 6c 00 0d 00" ], "seqno": 14, "size": 88, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 6 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 06 00 00 00" ], "seqno": 15, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 3200, "height_baseline": 2720, "height_text": 3200, "lineseg_flags": 393216, "space_below": 1920, "width": 42520, "x": 0, "y": 10240 }, { "chpos": 32, "height": 3200, "height_baseline": 2720, "height_text": 3200, "lineseg_flags": 393216, "space_below": 1920, "width": 42520, "x": 0, "y": 15360 } ] }, "level": 1, "payload": [ "00 00 00 00 00 28 00 00 80 0c 00 00 80 0c 00 00", "a0 0a 00 00 80 07 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00 20 00 00 00 00 3c 00 00 80 0c 00 00", "80 0c 00 00 a0 0a 00 00 80 07 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00" ], "seqno": 16, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "%hlk", "command": "http\\://gmail.com;1;0;0;", "extra_attr": 0, "flags": 43008, "id": 1528818376 }, "level": 1, "payload": [ "6b 6c 68 25 00 a8 00 00 00 18 00 68 00 74 00 74", "00 70 00 5c 00 3a 00 2f 00 2f 00 67 00 6d 00 61", "00 69 00 6c 00 2e 00 63 00 6f 00 6d 00 3b 00 31", "00 3b 00 30 00 3b 00 30 00 3b 00 c8 ea 1f 5b 00", "00 00 00" ], "seqno": 17, "size": 67, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "FieldHyperLink", "unparsed": [ "00 00 00 00" ] }, { "content": { "charshapes": 2, "controlmask": 16, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483663 }, "level": 0, "payload": [ "0f 00 00 80 10 00 00 00 0b 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 18, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "gmai" ], [ [ 4, 12 ], { "chid": "\u0000hlk", "code": 4, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 12, 14 ], "le" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "67 00 6d 00 61 00 69 00 04 00 6b 6c 68 00 00 00", "00 00 00 00 00 00 04 00 6c 00 65 00 0d 00" ], "seqno": 19, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 6 ], [ 4, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 06 00 00 00 04 00 00 00 05 00 00 00" ], "seqno": 20, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 3200, "height_baseline": 2720, "height_text": 3200, "lineseg_flags": 393216, "space_below": 1920, "width": 42520, "x": 0, "y": 20480 } ] }, "level": 1, "payload": [ "00 00 00 00 00 50 00 00 80 0c 00 00 80 0c 00 00", "a0 0a 00 00 80 07 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/issue144-fields-crossing-lineseg-boundary.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 36, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 1, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 01 00 00 00 24 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 7, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 07 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 3200, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 80 0c 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 3200, "charshapeflags": 4, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 16711680, "underline_color": 16711680 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 80 0c 00 00 04 00", "00 00 0a 0a 00 00 ff 00 00 00 ff 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 26, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 27, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 40, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 41, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 49, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 51, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/issue144-fields-crossing-lineseg-boundary.hwp.formatted.xml ================================================

ODT 변환 시 원문에 없는 공백이 띄엄띄엄 나타남 ODT 변환 시 중간 중간에 공백 문자들이 들어가는 현상이 발생한다. 아마도 변환 과정에서 xmllintreindent 때문에 new line 문자가 들어가는 것 같음.

================================================ FILE: tests/hwp5_tests/fixtures/issue30.html.d/index.xhtml ================================================ ODT 변환 시 원문에 없는 공백이 띄엄띄엄 나타남 ODT 변환 시 중간 중간에 공백 문자들이 들어가는 현상이 발생한다

ODT 변환 시 원문에 없는 공백이 띄엄띄엄 나타남 ODT 변환 시 중간 중간에 공백 문자들이 들어가는 현상이 발생한다. 아마도 변환 과정에서 xmllintreindent 때문에 new line 문자가 들어가는 것 같음.

================================================ FILE: tests/hwp5_tests/fixtures/issue30.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/issue30.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 3, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483790 }, "level": 0, "payload": [ "8e 00 00 80 04 00 00 00 01 00 00 03 01 00 00 00", "03 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 141 ], "ODT \ubcc0\ud658 \uc2dc \uc6d0\ubb38\uc5d0 \uc5c6\ub294 \uacf5\ubc31\uc774 \ub744\uc5c4\ub744\uc5c4 \ub098\ud0c0\ub0a8 ODT \ubcc0\ud658 \uc2dc \uc911\uac04 \uc911\uac04\uc5d0 \uacf5\ubc31 \ubb38\uc790\ub4e4\uc774 \ub4e4\uc5b4\uac00\ub294 \ud604\uc0c1\uc774 \ubc1c\uc0dd\ud55c\ub2e4. \uc544\ub9c8\ub3c4 \ubcc0\ud658 \uacfc\uc815\uc5d0\uc11c xmllint\uc758 reindent \ub54c\ubb38\uc5d0 new line \ubb38\uc790\uac00 \ub4e4\uc5b4\uac00\ub294 \uac83 \uac19\uc74c." ], [ [ 141, 142 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "4f 00 44 00 54 00 20 00 c0 bc 58 d6 20 00 dc c2", "20 00 d0 c6 38 bb d0 c5 20 00 c6 c5 94 b2 20 00", "f5 ac 31 bc 74 c7 20 00 44 b7 c4 c5 44 b7 c4 c5", "20 00 98 b0 c0 d0 a8 b0 20 00 4f 00 44 00 54 00", "20 00 c0 bc 58 d6 20 00 dc c2 20 00 11 c9 04 ac", "20 00 11 c9 04 ac d0 c5 20 00 f5 ac 31 bc 20 00", "38 bb 90 c7 e4 b4 74 c7 20 00 e4 b4 b4 c5 00 ac", "94 b2 20 00 04 d6 c1 c0 74 c7 20 00 1c bc dd c0", "5c d5 e4 b2 2e 00 20 00 44 c5 c8 b9 c4 b3 20 00", "c0 bc 58 d6 20 00 fc ac 15 c8 d0 c5 1c c1 20 00", "78 00 6d 00 6c 00 6c 00 69 00 6e 00 74 00 58 c7", "20 00 72 00 65 00 69 00 6e 00 64 00 65 00 6e 00", "74 00 20 00 4c b5 38 bb d0 c5 20 00 6e 00 65 00", "77 00 20 00 6c 00 69 00 6e 00 65 00 20 00 38 bb", "90 c7 00 ac 20 00 e4 b4 b4 c5 00 ac 94 b2 20 00", "83 ac 20 00 19 ac 4c c7 2e 00 0d 00" ], "seqno": 1, "size": 284, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 }, { "chpos": 67, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 }, { "chpos": 127, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00 43 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00 7f 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 18 a6 00 00 00 00 06 00" ], "seqno": 3, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/issue30.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 141, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 8d 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/issue30.hwp.formatted.xml ================================================

|HHHHHHHHHHHHHH

|HHHHHHHHHHHHHH

|H 글자에 따라 150%

|HHHHHHHHHHHHHH

|H 고정 값 15pt

|HHHHHHHHHHHHHH

|H 여백만 지정 5pt

|HHHHHHHHHHHHHH

|H 글자에 따라 100%

|HHHHHHHHHHHHHH

|H 고정 값 10pt

|HHHHHHHHHHHHHH

|H 여백만 지정 0pt

|HHHHHHHHHHHHHH

|H 글자에 따라 200%

|HHHHHHHHHHHHHH

|H 고정 값 20pt

|HHHHHHHHHHHHHH

|H 여백만 지정 10pt

|HHHHHHHHHHHHHH

|H 글자에 따라 100%

|HHHHHHHHHHHHHH

|H 고정 값 0pt

|HHHHHHHHHHHHHH

|H 여백만 지정 0pt

|HHHHHHHHHHHHHH

================================================ FILE: tests/hwp5_tests/fixtures/linespacing.html.d/index.xhtml ================================================

|HHHHHHHHHHHHHH

|HHHHHHHHHHHHHH

|H 글자에 따라 150%

|HHHHHHHHHHHHHH

|H 고정 값 15pt

|HHHHHHHHHHHHHH

|H 여백만 지정 5pt

|HHHHHHHHHHHHHH

|H 글자에 따라 100%

|HHHHHHHHHHHHHH

|H 고정 값 10pt

|HHHHHHHHHHHHHH

|H 여백만 지정 0pt

|HHHHHHHHHHHHHH

|H 글자에 따라 200%

|HHHHHHHHHHHHHH

|H 고정 값 20pt

|HHHHHHHHHHHHHH

|H 여백만 지정 10pt

|HHHHHHHHHHHHHH

|H 글자에 따라 100%

|HHHHHHHHHHHHHH

|H 고정 값 0pt

|HHHHHHHHHHHHHH

|H 여백만 지정 0pt

|HHHHHHHHHHHHHH

================================================ FILE: tests/hwp5_tests/fixtures/linespacing.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 5*/ .Normal > span { color: #000000; text-decoration: overline; text-decoration-color: #0000ff; -moz-text-decoration-color: #0000ff; -webkit-text-decoration-color: #0000ff; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1em; } p.parashape-12 > span { line-height: 1; } p.parashape-13 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-13 > span { } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-14 > span { } p.parashape-15 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-15 > span { } p.parashape-16 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 2em; } p.parashape-16 > span { line-height: 2; } p.parashape-17 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-17 > span { } p.parashape-18 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-18 > span { line-height: 1.5; } p.parashape-19 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-19 > span { } p.parashape-20 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; } p.parashape-20 > span { } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; text-decoration: overline; text-decoration-color: #0000ff; -moz-text-decoration-color: #0000ff; -webkit-text-decoration-color: #0000ff; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; text-decoration: overline; text-decoration-color: #0000ff; -moz-text-decoration-color: #0000ff; -webkit-text-decoration-color: #0000ff; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7 { color: #000000; text-decoration: overline; text-decoration-color: #0000ff; -moz-text-decoration-color: #0000ff; -webkit-text-decoration-color: #0000ff; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 15pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 15pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/linespacing.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 3, "style_id": 0, "text": 32 }, "level": 0, "payload": [ "20 00 00 00 04 00 00 00 0d 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 31 ], "|HHHHHHHHHHHHHH" ], [ [ 31, 32 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 1, "size": 64, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 13, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 14, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 1000 } ] }, "level": 1, "payload": [ "00 00 00 00 e8 03 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "|H \uae00\uc790\uc5d0 \ub530\ub77c 150%" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 00 ae 90 c7 d0 c5 20 00 30 b5", "7c b7 20 00 31 00 35 00 30 00 25 00 0d 00" ], "seqno": 17, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 500, "width": 42520, "x": 0, "y": 2000 } ] }, "level": 1, "payload": [ "00 00 00 00 d0 07 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 f4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 21, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 22, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 3500 } ] }, "level": 1, "payload": [ "00 00 00 00 ac 0d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "|H \uace0\uc815 \uac12 15pt" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 e0 ac 15 c8 20 00 12 ac 20 00", "31 00 35 00 70 00 74 00 0d 00" ], "seqno": 25, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 500, "width": 42520, "x": 0, "y": 4500 } ] }, "level": 1, "payload": [ "00 00 00 00 94 11 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 f4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 29, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 30, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 6000 } ] }, "level": 1, "payload": [ "00 00 00 00 70 17 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 14 }, "level": 0, "payload": [ "0e 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 13 ], "|H \uc5ec\ubc31\ub9cc \uc9c0\uc815 5pt" ], [ [ 13, 14 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 ec c5 31 bc cc b9 20 00 c0 c9", "15 c8 20 00 35 00 70 00 74 00 0d 00" ], "seqno": 33, "size": 28, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 500, "width": 42520, "x": 0, "y": 7000 } ] }, "level": 1, "payload": [ "00 00 00 00 58 1b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 f4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 37, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 38, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 8500 } ] }, "level": 1, "payload": [ "00 00 00 00 34 21 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "|H \uae00\uc790\uc5d0 \ub530\ub77c 100%" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 00 ae 90 c7 d0 c5 20 00 30 b5", "7c b7 20 00 31 00 30 00 30 00 25 00 0d 00" ], "seqno": 41, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 9500 } ] }, "level": 1, "payload": [ "00 00 00 00 1c 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 45, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 46, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 10500 } ] }, "level": 1, "payload": [ "00 00 00 00 04 29 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 47, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "|H \uace0\uc815 \uac12 10pt" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 e0 ac 15 c8 20 00 12 ac 20 00", "31 00 30 00 70 00 74 00 0d 00" ], "seqno": 49, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 11500 } ] }, "level": 1, "payload": [ "00 00 00 00 ec 2c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 52, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 53, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 54, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 12500 } ] }, "level": 1, "payload": [ "00 00 00 00 d4 30 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 14 }, "level": 0, "payload": [ "0e 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 56, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 13 ], "|H \uc5ec\ubc31\ub9cc \uc9c0\uc815 0pt" ], [ [ 13, 14 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 ec c5 31 bc cc b9 20 00 c0 c9", "15 c8 20 00 30 00 70 00 74 00 0d 00" ], "seqno": 57, "size": 28, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 58, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 13500 } ] }, "level": 1, "payload": [ "00 00 00 00 bc 34 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 59, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 60, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 61, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 62, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 14500 } ] }, "level": 1, "payload": [ "00 00 00 00 a4 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 63, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 64, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "|H \uae00\uc790\uc5d0 \ub530\ub77c 200%" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 00 ae 90 c7 d0 c5 20 00 30 b5", "7c b7 20 00 32 00 30 00 30 00 25 00 0d 00" ], "seqno": 65, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 66, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 1000, "width": 42520, "x": 0, "y": 15500 } ] }, "level": 1, "payload": [ "00 00 00 00 8c 3c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 e8 03 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 67, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 68, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 69, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 70, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 17500 } ] }, "level": 1, "payload": [ "00 00 00 00 5c 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 71, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 72, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "|H \uace0\uc815 \uac12 20pt" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 e0 ac 15 c8 20 00 12 ac 20 00", "32 00 30 00 70 00 74 00 0d 00" ], "seqno": 73, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 74, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 1000, "width": 42520, "x": 0, "y": 18500 } ] }, "level": 1, "payload": [ "00 00 00 00 44 48 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 e8 03 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 75, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 76, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 77, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 78, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 20500 } ] }, "level": 1, "payload": [ "00 00 00 00 14 50 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 79, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 80, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "|H \uc5ec\ubc31\ub9cc \uc9c0\uc815 10pt" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 ec c5 31 bc cc b9 20 00 c0 c9", "15 c8 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 81, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 82, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 1000, "width": 42520, "x": 0, "y": 21500 } ] }, "level": 1, "payload": [ "00 00 00 00 fc 53 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 e8 03 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 83, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 84, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 85, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 86, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 23500 } ] }, "level": 1, "payload": [ "00 00 00 00 cc 5b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 87, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 0c 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 88, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "|H \uae00\uc790\uc5d0 \ub530\ub77c 100%" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 00 ae 90 c7 d0 c5 20 00 30 b5", "7c b7 20 00 31 00 30 00 30 00 25 00 0d 00" ], "seqno": 89, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 10, 6 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0a 00 00 00 06 00 00 00" ], "seqno": 90, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 2000, "height_baseline": 1700, "height_text": 2000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 24500 } ] }, "level": 1, "payload": [ "00 00 00 00 b4 5f 00 00 d0 07 00 00 d0 07 00 00", "a4 06 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 91, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 92, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 93, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 94, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 26500 } ] }, "level": 1, "payload": [ "00 00 00 00 84 67 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 95, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 12 }, "level": 0, "payload": [ "0c 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 96, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "|H \uace0\uc815 \uac12 0pt" ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 e0 ac 15 c8 20 00 12 ac 20 00", "30 00 70 00 74 00 0d 00" ], "seqno": 97, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 8, 7 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 08 00 00 00 07 00 00 00" ], "seqno": 98, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1500, "height_baseline": 1275, "height_text": 1500, "lineseg_flags": 393216, "space_below": -500, "width": 42520, "x": 0, "y": 27500 } ] }, "level": 1, "payload": [ "00 00 00 00 6c 6b 00 00 dc 05 00 00 dc 05 00 00", "fb 04 00 00 0c fe ff ff 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 99, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 16 }, "level": 0, "payload": [ "10 00 00 00 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 100, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 101, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 102, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 28500 } ] }, "level": 1, "payload": [ "00 00 00 00 54 6f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 103, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 14 }, "level": 0, "payload": [ "0e 00 00 00 00 00 00 00 0e 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 104, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 13 ], "|H \uc5ec\ubc31\ub9cc \uc9c0\uc815 0pt" ], [ [ 13, 14 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 20 00 ec c5 31 bc cc b9 20 00 c0 c9", "15 c8 20 00 30 00 70 00 74 00 0d 00" ], "seqno": 105, "size": 28, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 10, 6 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0a 00 00 00 06 00 00 00" ], "seqno": 106, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 2000, "height_baseline": 1700, "height_text": 2000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 29500 } ] }, "level": 1, "payload": [ "00 00 00 00 3c 73 00 00 d0 07 00 00 d0 07 00 00", "a4 06 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 107, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483664 }, "level": 0, "payload": [ "10 00 00 80 00 00 00 00 0d 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 108, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 15 ], "|HHHHHHHHHHHHHH" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c 00 48 00 48 00 48 00 48 00 48 00 48 00 48 00", "48 00 48 00 48 00 48 00 48 00 48 00 48 00 0d 00" ], "seqno": 109, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ], [ 15, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00 0f 00 00 00 05 00 00 00" ], "seqno": 110, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 0, "width": 42520, "x": 0, "y": 31500 } ] }, "level": 1, "payload": [ "00 00 00 00 0c 7b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 00 00 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 111, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/linespacing.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 7, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 2, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 02 00 00 00 07 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 8, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 21, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 08 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 15 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 44, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 16711680 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 2c 00", "00 00 0a 0a 00 00 00 00 00 00 ff 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 2000, "charshapeflags": 44, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 16711680 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 d0 07 00 00 2c 00", "00 00 0a 0a 00 00 00 00 00 00 ff 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1500, "charshapeflags": 44, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 16711680 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 dc 05 00 00 2c 00", "00 00 0a 0a 00 00 00 00 00 00 ff 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 26, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 27, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 28, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 100, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 64 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 2000, "numbering_bullet_id": 0, "parashapeflags": 385, "tabdef_id": 0 }, "level": 1, "payload": [ "81 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 d0 07 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 0, "numbering_bullet_id": 0, "parashapeflags": 386, "tabdef_id": 0 }, "level": 1, "payload": [ "82 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 4000, "numbering_bullet_id": 0, "parashapeflags": 385, "tabdef_id": 0 }, "level": 1, "payload": [ "81 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 0f 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 200, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 c8 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 2000, "numbering_bullet_id": 0, "parashapeflags": 386, "tabdef_id": 0 }, "level": 1, "payload": [ "82 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 d0 07 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 3000, "numbering_bullet_id": 0, "parashapeflags": 385, "tabdef_id": 0 }, "level": 1, "payload": [ "81 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 b8 0b 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 1000, "numbering_bullet_id": 0, "parashapeflags": 386, "tabdef_id": 0 }, "level": 1, "payload": [ "82 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 e8 03 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 5, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 05 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 52, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 53, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 58, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 59, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 60, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 61, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 62, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 63, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/linespacing.hwp.formatted.xml ================================================

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표 사용자정의

너비 10pt

정렬 가운데

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 오른쪽

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 20pt

정렬 왼쪽

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기 X

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기 X

새 글머리표 모양: sun

================================================ FILE: tests/hwp5_tests/fixtures/lists-bullet.html.d/index.xhtml ================================================ 글머리표

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표

1

2

3

글머리표 사용자정의

너비 10pt

정렬 가운데

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 오른쪽

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 20pt

정렬 왼쪽

본문과의 간격 50%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기 X

글자모양 없음

글머리표 사용자정의

너비 10pt

정렬 왼쪽

본문과의 간격 0%

자동 내어쓰기 X

새 글머리표 모양: sun

================================================ FILE: tests/hwp5_tests/fixtures/lists-bullet.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 0*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } p.parashape-13 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-14 > span { line-height: 1.6; } p.parashape-15 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-15 > span { line-height: 1.6; } p.parashape-16 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-16 > span { line-height: 1.6; } p.parashape-17 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-17 > span { line-height: 1.6; } p.parashape-18 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-18 > span { line-height: 1.6; } p.parashape-19 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-19 > span { line-height: 1.6; } p.parashape-20 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-20 > span { line-height: 1.6; } p.parashape-21 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-21 > span { line-height: 1.6; } p.parashape-22 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-22 > span { line-height: 1.6; } p.parashape-23 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-23 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .Bullet-1::before { content: "●"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-2::before { content: "•"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-3::before { content: "■"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-4::before { content: "▪"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-5::before { content: "◆"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-6::before { content: "⬩"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-7::before { content: "▶"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-8::before { content: "○"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-9::before { content: "☐"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-10::before { content: "◇"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-11::before { content: "▷"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-12::before { content: "◉"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-13::before { content: "☑"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-14::before { content: "✓"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-15::before { content: "★"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-16::before { content: "❖"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-17::before { content: "☞"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-18::before { content: "☀"; display: inline-block; text-align: center; width: 10pt; margin-right: 5pt; } .Bullet-19::before { content: "☀"; display: inline-block; text-align: right; width: 10pt; margin-right: 5pt; } .Bullet-20::before { content: "☀"; display: inline-block; text-align: left; width: 20pt; margin-right: 10pt; } .Bullet-21::before { content: "☀"; display: inline-block; text-align: left; width: 10pt; margin-right: 0pt; } .Bullet-22::before { content: "☀"; display: inline-block; text-align: left; width: 10pt; margin-right: 0pt; } ================================================ FILE: tests/hwp5_tests/fixtures/lists-bullet.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 04 00 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 20 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 1, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 13, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 17, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 21, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 25, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 5, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 29, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 5, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 33, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 5, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 37, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 41, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 45, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 47, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 49, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 52, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 53, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 54, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 56, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 57, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 58, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 59, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 6, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 60, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 61, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 62, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 20800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 51 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 63, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 6, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 64, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 65, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 66, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 22400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 67, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 6, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 68, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 69, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 70, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 71, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 72, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 73, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 74, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 25600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 75, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 7, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 76, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 77, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 78, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 27200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 6a 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 79, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 7, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 80, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 81, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 82, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 28800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 70 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 83, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 7, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 07 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 84, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 85, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 86, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 30400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 87, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 88, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 89, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 90, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 32000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 91, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 8, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 92, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 93, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 94, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 33600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 83 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 95, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 8, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 96, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 97, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 98, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 35200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 89 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 99, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 8, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 100, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 101, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 102, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 36800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 103, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 104, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 105, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 106, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 107, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 108, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 109, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 110, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 40000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 9c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 111, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 112, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 113, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 114, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 41600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 a2 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 115, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 116, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 117, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 118, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 43200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 119, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 120, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 121, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 122, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 44800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 123, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 10, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 124, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 125, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 126, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 46400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 b5 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 127, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 10, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 128, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 129, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 130, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 48000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 bb 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 131, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 10, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0a 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 132, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 133, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 134, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 49600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 c1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 135, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 136, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 137, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 138, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 51200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 c8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 139, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 140, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 141, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 142, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 52800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 ce 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 143, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 144, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 145, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 146, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 54400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 d4 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 147, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 148, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 149, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 150, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 56000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 151, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 152, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 153, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 154, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 57600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 e1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 155, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 156, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 157, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 158, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 59200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 e7 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 159, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 160, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 161, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 162, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 60800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 ed 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 163, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 164, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 165, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 166, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 62400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 f3 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 167, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 168, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 169, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 170, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 64000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 fa 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 171, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 172, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 173, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 174, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 175, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 176, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 177, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 178, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 179, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 180, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 181, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 182, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 183, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 184, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 185, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 186, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 187, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 188, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 189, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 190, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 191, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 192, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 193, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 194, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 195, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 196, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 197, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 198, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 199, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 200, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 201, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 202, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 203, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 204, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 205, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 206, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 207, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 208, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 209, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 210, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 211, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 212, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 213, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 214, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 215, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 216, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 217, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 218, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 219, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 220, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 221, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 222, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 223, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 224, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 225, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 226, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 20800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 51 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 227, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 228, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 229, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 230, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 22400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 231, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 232, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 233, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 234, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 235, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 236, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 237, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 238, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 25600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 239, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 240, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 241, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 242, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 27200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 6a 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 243, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 244, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 245, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 246, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 28800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 70 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 247, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 248, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 249, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 250, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 30400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 251, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 252, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 253, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 254, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 32000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 255, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 256, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 257, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 258, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 33600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 83 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 259, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 260, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 261, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 262, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 35200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 89 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 263, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 264, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 265, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 266, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 36800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 267, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 268, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 269, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 270, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 271, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 272, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 273, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 274, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 40000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 9c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 275, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 276, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 277, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 278, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 41600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 a2 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 279, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 280, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 281, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 282, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 43200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 283, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 284, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 285, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 286, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 44800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 287, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 288, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 289, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 290, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 46400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 b5 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 291, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 292, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 293, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 294, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 48000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 bb 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 295, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 296, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 297, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 298, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 49600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 c1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 299, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 300, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 301, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 302, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 51200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 c8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 303, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 304, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 305, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 306, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 52800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 ce 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 307, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 308, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 309, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 310, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 54400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 d4 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 311, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 312, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 313, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 314, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 56000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 315, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 316, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 10pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 317, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 318, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 57600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 e1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 319, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 320, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uc815\ub82c \uac00\uc6b4\ub370" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 00 ac b4 c6 70 b3 0d 00" ], "seqno": 321, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 322, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 59200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 e7 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 323, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 12 }, "level": 0, "payload": [ "0c 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 324, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 50%" ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "35 00 30 00 25 00 0d 00" ], "seqno": 325, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 326, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 60800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 ed 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 327, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 328, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 0d 00" ], "seqno": 329, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 330, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 62400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 f3 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 331, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 332, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uae00\uc790\ubaa8\uc591 \uc5c6\uc74c" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 a8 ba 91 c5 20 00 c6 c5 4c c7 0d 00" ], "seqno": 333, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 334, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 64000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 fa 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 335, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 336, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 337, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 338, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 339, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 340, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 10pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 341, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 342, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 343, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 344, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uc815\ub82c \uc624\ub978\ucabd" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 24 c6 78 b9 bd ca 0d 00" ], "seqno": 345, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 346, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 347, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 12 }, "level": 0, "payload": [ "0c 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 348, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 50%" ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "35 00 30 00 25 00 0d 00" ], "seqno": 349, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 350, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 351, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 352, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 0d 00" ], "seqno": 353, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 354, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 355, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 356, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uae00\uc790\ubaa8\uc591 \uc5c6\uc74c" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 a8 ba 91 c5 20 00 c6 c5 4c c7 0d 00" ], "seqno": 357, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 358, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 359, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 360, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 361, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 362, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 363, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 21, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 364, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 20pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 32 00 30 00 70 00 74 00 0d 00" ], "seqno": 365, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 366, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 367, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 21, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 368, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uc815\ub82c \uc67c\ucabd" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 7c c6 bd ca 0d 00" ], "seqno": 369, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 370, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 371, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 21, "rangetags": 0, "split": 0, "style_id": 0, "text": 12 }, "level": 0, "payload": [ "0c 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 372, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 50%" ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "35 00 30 00 25 00 0d 00" ], "seqno": 373, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 374, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 375, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 21, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 376, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 0d 00" ], "seqno": 377, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 378, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 379, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 21, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 15 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 380, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uae00\uc790\ubaa8\uc591 \uc5c6\uc74c" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 a8 ba 91 c5 20 00 c6 c5 4c c7 0d 00" ], "seqno": 381, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 382, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 383, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 384, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 385, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 386, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 387, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 22, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 388, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 10pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 389, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 390, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 20800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 51 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 391, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 22, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 392, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uc815\ub82c \uc67c\ucabd" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 7c c6 bd ca 0d 00" ], "seqno": 393, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 394, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 22400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 395, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 22, "rangetags": 0, "split": 0, "style_id": 0, "text": 11 }, "level": 0, "payload": [ "0b 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 396, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 0%" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "30 00 25 00 0d 00" ], "seqno": 397, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 398, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 399, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 22, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 400, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 0d 00" ], "seqno": 401, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 402, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 25600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 403, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 22, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 16 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 404, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uae00\uc790\ubaa8\uc591 \uc5c6\uc74c" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 a8 ba 91 c5 20 00 c6 c5 4c c7 0d 00" ], "seqno": 405, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 406, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 27200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 6a 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 407, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 408, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 409, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 410, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 28800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 70 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 411, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 412, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 10pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 413, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 414, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 30400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 415, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 416, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uc815\ub82c \uc67c\ucabd" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 7c c6 bd ca 0d 00" ], "seqno": 417, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 418, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 32000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 419, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 11 }, "level": 0, "payload": [ "0b 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 420, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 0%" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "30 00 25 00 0d 00" ], "seqno": 421, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 422, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 33600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 83 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 423, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 10 }, "level": 0, "payload": [ "0a 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 424, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30 X" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 20 00", "58 00 0d 00" ], "seqno": 425, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 426, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 35200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 89 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 427, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 428, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\uae00\uc790\ubaa8\uc591 \uc5c6\uc74c" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 90 c7 a8 ba 91 c5 20 00 c6 c5 4c c7 0d 00" ], "seqno": 429, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 430, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 36800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 431, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 13 }, "level": 0, "payload": [ "0d 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 432, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uae00\uba38\ub9ac\ud45c \uc0ac\uc6a9\uc790\uc815\uc758 \u2600" ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 ac c0 a9 c6 90 c7", "15 c8 58 c7 20 00 00 26 0d 00" ], "seqno": 433, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 434, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 435, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 8 }, "level": 0, "payload": [ "08 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 436, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 7 ], "\ub108\ube44 10pt" ], [ [ 7, 8 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "08 b1 44 be 20 00 31 00 30 00 70 00 74 00 0d 00" ], "seqno": 437, "size": 16, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 438, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 40000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 9c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 439, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 440, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uc815\ub82c \uc67c\ucabd" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "15 c8 2c b8 20 00 7c c6 bd ca 0d 00" ], "seqno": 441, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 442, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 41600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 a2 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 443, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 11 }, "level": 0, "payload": [ "0b 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 444, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 10 ], "\ubcf8\ubb38\uacfc\uc758 \uac04\uaca9 0%" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb fc ac 58 c7 20 00 04 ac a9 ac 20 00", "30 00 25 00 0d 00" ], "seqno": 445, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 446, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 43200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 447, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 10 }, "level": 0, "payload": [ "0a 00 00 00 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 448, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "\uc790\ub3d9 \ub0b4\uc5b4\uc4f0\uae30 X" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 d9 b3 20 00 b4 b0 b4 c5 f0 c4 30 ae 20 00", "58 00 0d 00" ], "seqno": 449, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 450, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 44800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 451, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 23, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483663 }, "level": 0, "payload": [ "0f 00 00 80 00 00 00 00 17 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 452, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "\uc0c8 \uae00\uba38\ub9ac\ud45c \ubaa8\uc591: sun" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "c8 c0 20 00 00 ae 38 ba ac b9 5c d4 20 00 a8 ba", "91 c5 3a 00 20 00 73 00 75 00 6e 00 0d 00" ], "seqno": 453, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 0 ] ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 454, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 46400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 b5 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 455, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/lists-bullet.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 7, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 111, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 6f 00 00 00 07 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 22, "charshapes": 1, "cn_fonts": 1, "en_fonts": 1, "jp_fonts": 1, "ko_fonts": 1, "memoshapes": 0, "numberings": 1, "other_fonts": 1, "parashapes": 24, "styles": 1, "symbol_fonts": 1, "tabdefs": 1, "user_fonts": 1 }, "level": 0, "payload": [ "00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00", "16 00 00 00 18 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 2, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 6, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 8, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 9, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 10, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 1 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 01 00" ], "seqno": 12, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "char": 61548, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 6c f0" ], "seqno": 13, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61599, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 9f f0" ], "seqno": 14, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61550, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 6e f0" ], "seqno": 15, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61607, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff a7 f0" ], "seqno": 16, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61557, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 75 f0" ], "seqno": 17, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61559, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 77 f0" ], "seqno": 18, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9654, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff b6 25" ], "seqno": 19, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61601, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff a1 f0" ], "seqno": 20, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61551, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 6f f0" ], "seqno": 21, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9671, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff c7 25" ], "seqno": 22, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9655, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff b7 25" ], "seqno": 23, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61604, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff a4 f0" ], "seqno": 24, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61694, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff fe f0" ], "seqno": 25, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61692, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff fc f0" ], "seqno": 26, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61611, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff ab f0" ], "seqno": 27, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61558, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 76 f0" ], "seqno": 28, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61510, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 46 f0" ], "seqno": 29, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9728, "charshape_id": -1, "flags": 9, "space": 50, "width": 1000 }, "level": 1, "payload": [ "09 00 00 00 e8 03 32 00 ff ff ff ff 00 26" ], "seqno": 30, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9728, "charshape_id": -1, "flags": 10, "space": 50, "width": 1000 }, "level": 1, "payload": [ "0a 00 00 00 e8 03 32 00 ff ff ff ff 00 26" ], "seqno": 31, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9728, "charshape_id": -1, "flags": 8, "space": 50, "width": 2000 }, "level": 1, "payload": [ "08 00 00 00 d0 07 32 00 ff ff ff ff 00 26" ], "seqno": 32, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9728, "charshape_id": -1, "flags": 8, "space": 0, "width": 1000 }, "level": 1, "payload": [ "08 00 00 00 e8 03 00 00 ff ff ff ff 00 26" ], "seqno": 33, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 9728, "charshape_id": -1, "flags": 0, "space": 0, "width": 1000 }, "level": 1, "payload": [ "00 00 00 00 e8 03 00 00 ff ff ff ff 00 26" ], "seqno": 34, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 3, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 03 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 1, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 01 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 15, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0f 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 2, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 02 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 4, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 04 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 5, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 05 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 6, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 06 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 7, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 07 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 8, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 08 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 9, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 09 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 10, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0a 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 11, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0b 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 12, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0c 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 13, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0d 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 14, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 0e 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 16, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 10 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 52, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 17, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 11 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 53, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 18, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 12 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 54, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 19, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 13 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 55, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 20, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 14 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 56, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 21, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 15 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 57, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 22, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 16 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 58, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 00 00 00 00" ], "seqno": 59, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/lists-bullet.hwp.formatted.xml ================================================

글머리표

1

2

3

글머리표 두 번째

1

2

3

문단번호

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

문단번호 두 번째 (번호 이어짐)

5

5-1

문단번호 세 번째 (새 번호)

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

개요

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

개요 두 번째 (번호 이어짐)

5

5-1

개요 세 번째 (새 번호)

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

================================================ FILE: tests/hwp5_tests/fixtures/lists.html.d/index.xhtml ================================================

글머리표

1

2

3

글머리표 두 번째

1

2

3

문단번호

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

문단번호 두 번째 (번호 이어짐)

5

5-1

문단번호 세 번째 (새 번호)

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

개요

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

개요 두 번째 (번호 이어짐)

5

5-1

개요 세 번째 (새 번호)

1

2

2-1

3

3-1

3-2

3-2-1

3-2-2

3-2-3

4

================================================ FILE: tests/hwp5_tests/fixtures/lists.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } p.parashape-13 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-14 > span { line-height: 1.6; } p.parashape-15 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-15 > span { line-height: 1.6; } p.parashape-16 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-16 > span { line-height: 1.6; } p.parashape-17 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-17 > span { line-height: 1.6; } p.parashape-18 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-18 > span { line-height: 1.6; } p.parashape-19 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-19 > span { line-height: 1.6; } p.parashape-20 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-20 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .Bullet-1::before { content: "●"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } .Bullet-2::before { content: "•"; display: inline-block; text-align: left; width: 1em; margin-right: 0.5em; } ================================================ FILE: tests/hwp5_tests/fixtures/lists.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 20 ], "\uae00\uba38\ub9ac\ud45c" ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ae 38 ba ac b9 5c d4 0d 00" ], "seqno": 1, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 2, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 13, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 17, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 21, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 25, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 26, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 10 }, "level": 0, "payload": [ "0a 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 27, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "\uae00\uba38\ub9ac\ud45c \ub450 \ubc88\uc9f8" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 38 ba ac b9 5c d4 20 00 50 b4 20 00 88 bc", "f8 c9 0d 00" ], "seqno": 28, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 29, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 30, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 31, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 32, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 33, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 34, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 35, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 36, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 37, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 38, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 39, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 40, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 41, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 42, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 43, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 44, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 45, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 46, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8\ubc88\ud638" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 88 bc 38 d6 0d 00" ], "seqno": 47, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 48, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 49, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 50, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 51, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 52, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 53, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 54, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 55, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 56, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 57, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 58, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "2-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 2d 00 31 00 0d 00" ], "seqno": 59, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 60, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 20800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 51 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 61, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 62, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 63, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 64, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 22400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 65, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 66, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 31 00 0d 00" ], "seqno": 67, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 68, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 69, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 70, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-2" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 0d 00" ], "seqno": 71, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 72, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 25600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 73, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 74, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-1" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 31 00 0d 00" ], "seqno": 75, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 76, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 27200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 6a 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 77, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 78, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-2" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 32 00 0d 00" ], "seqno": 79, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 80, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 28800 } ] }, "level": 1, "payload": [ "00 00 00 00 80 70 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 81, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 20, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 14 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 82, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-3" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 33 00 0d 00" ], "seqno": 83, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 84, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 30400 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 85, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 86, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "4" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "34 00 0d 00" ], "seqno": 87, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 88, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 32000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 89, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 90, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 91, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 33600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 83 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 92, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 19 }, "level": 0, "payload": [ "13 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 93, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 18 ], "\ubb38\ub2e8\ubc88\ud638 \ub450 \ubc88\uc9f8 (\ubc88\ud638 \uc774\uc5b4\uc9d0)" ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 88 bc 38 d6 20 00 50 b4 20 00 88 bc", "f8 c9 20 00 28 00 88 bc 38 d6 20 00 74 c7 b4 c5", "d0 c9 29 00 0d 00" ], "seqno": 94, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 95, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 35200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 89 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 96, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 97, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "5" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "35 00 0d 00" ], "seqno": 98, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 99, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 36800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 100, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 101, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "5-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "35 00 2d 00 31 00 0d 00" ], "seqno": 102, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 103, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 104, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 105, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 106, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 40000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 9c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 107, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 108, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 16 ], "\ubb38\ub2e8\ubc88\ud638 \uc138 \ubc88\uc9f8 (\uc0c8 \ubc88\ud638)" ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 88 bc 38 d6 20 00 38 c1 20 00 88 bc", "f8 c9 20 00 28 00 c8 c0 20 00 88 bc 38 d6 29 00", "0d 00" ], "seqno": 109, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 110, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 41600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 a2 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 111, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 112, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 113, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 114, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 43200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 115, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 116, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 117, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 118, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 44800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 119, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 120, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "2-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 2d 00 31 00 0d 00" ], "seqno": 121, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 122, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 46400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 b5 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 123, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 124, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 125, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 126, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 48000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 bb 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 127, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 128, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 31 00 0d 00" ], "seqno": 129, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 130, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 49600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 c1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 131, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 132, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-2" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 0d 00" ], "seqno": 133, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 134, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 51200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 c8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 135, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 136, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-1" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 31 00 0d 00" ], "seqno": 137, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 138, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 52800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 ce 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 139, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 140, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-2" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 32 00 0d 00" ], "seqno": 141, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 142, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 54400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 d4 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 143, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 144, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-3" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 33 00 0d 00" ], "seqno": 145, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 146, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 56000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 147, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 148, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "4" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "34 00 0d 00" ], "seqno": 149, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 150, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 42520, "x": 0, "y": 57600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 e1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 26 00" ], "seqno": 151, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2822337794, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 3 }, "level": 0, "payload": [ "03 00 00 00 00 00 00 00 00 00 00 04 01 00 00 00", "01 00 02 75 39 a8" ], "seqno": 152, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\uac1c\uc694" ], [ [ 2, 3 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "1c ac 94 c6 0d 00" ], "seqno": 153, "size": 6, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 154, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 155, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854155, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 2, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 02 00 01 00 00 00", "01 00 0b 75 39 28" ], "seqno": 156, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "1" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "31 00 0d 00" ], "seqno": 157, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 158, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 41520, "x": 1000, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 30 a2 00 00", "00 00 26 00" ], "seqno": 159, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854156, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 2, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 02 00 01 00 00 00", "01 00 0c 75 39 28" ], "seqno": 160, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "2" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 0d 00" ], "seqno": 161, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 162, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 41520, "x": 1000, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 30 a2 00 00", "00 00 26 00" ], "seqno": 163, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854165, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 3, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00", "01 00 15 75 39 28" ], "seqno": 164, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "2-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 2d 00 31 00 0d 00" ], "seqno": 165, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 166, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 40520, "x": 2000, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 d0 07 00 00 48 9e 00 00", "00 00 26 00" ], "seqno": 167, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854158, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 2, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 02 00 01 00 00 00", "01 00 0e 75 39 28" ], "seqno": 168, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "3" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 0d 00" ], "seqno": 169, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 170, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 41520, "x": 1000, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 30 a2 00 00", "00 00 26 00" ], "seqno": 171, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854166, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 3, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00", "01 00 16 75 39 28" ], "seqno": 172, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 31 00 0d 00" ], "seqno": 173, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 174, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 40520, "x": 2000, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 d0 07 00 00 48 9e 00 00", "00 00 26 00" ], "seqno": 175, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854167, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 3, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00", "01 00 17 75 39 28" ], "seqno": 176, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "3-2" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 0d 00" ], "seqno": 177, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 178, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 40520, "x": 2000, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 d0 07 00 00 48 9e 00 00", "00 00 26 00" ], "seqno": 179, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854169, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 4, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 02 00 04 00 01 00 00 00", "01 00 19 75 39 28" ], "seqno": 180, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-1" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 31 00 0d 00" ], "seqno": 181, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 182, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 39520, "x": 3000, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 b8 0b 00 00 60 9a 00 00", "00 00 26 00" ], "seqno": 183, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854171, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 4, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 02 00 04 00 01 00 00 00", "01 00 1b 75 39 28" ], "seqno": 184, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-2" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 32 00 0d 00" ], "seqno": 185, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 186, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 39520, "x": 3000, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 b8 0b 00 00 60 9a 00 00", "00 00 26 00" ], "seqno": 187, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854173, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 4, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 02 00 04 00 01 00 00 00", "01 00 1d 75 39 28" ], "seqno": 188, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3-2-3" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 2d 00 32 00 2d 00 33 00 0d 00" ], "seqno": 189, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 190, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 39520, "x": 3000, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 b8 0b 00 00 60 9a 00 00", "00 00 26 00" ], "seqno": 191, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854176, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 2, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 02 00 01 00 00 00", "01 00 20 75 39 28" ], "seqno": 192, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "4" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "34 00 0d 00" ], "seqno": 193, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 194, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 41520, "x": 1000, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 30 a2 00 00", "00 00 26 00" ], "seqno": 195, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2822337825, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 21 75 39 a8" ], "seqno": 196, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 197, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 17600 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 198, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 199, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 16 ], "\uac1c\uc694 \ub450 \ubc88\uc9f8 (\ubc88\ud638 \uc774\uc5b4\uc9d0)" ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "1c ac 94 c6 20 00 50 b4 20 00 88 bc f8 c9 20 00", "28 00 88 bc 38 d6 20 00 74 c7 b4 c5 d0 c9 29 00", "0d 00" ], "seqno": 200, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 201, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 19200 } ] }, "level": 1, "payload": [ "00 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 202, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854198, "linesegs": 1, "parashape_id": 9, "rangetags": 0, "split": 0, "style_id": 2, "text": 2 }, "level": 0, "payload": [ "02 00 00 00 00 00 00 00 09 00 02 00 01 00 00 00", "01 00 36 75 39 28" ], "seqno": 203, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "5" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "35 00 0d 00" ], "seqno": 204, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 205, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 41520, "x": 1000, "y": 20800 } ] }, "level": 1, "payload": [ "00 00 00 00 40 51 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 30 a2 00 00", "00 00 26 00" ], "seqno": 206, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 674854245, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 3, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 01 00 03 00 01 00 00 00", "01 00 65 75 39 28" ], "seqno": 207, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "5-1" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "35 00 2d 00 31 00 0d 00" ], "seqno": 208, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 209, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 2490368, "space_below": 600, "width": 40520, "x": 2000, "y": 22400 } ] }, "level": 1, "payload": [ "00 00 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 d0 07 00 00 48 9e 00 00", "00 00 26 00" ], "seqno": 210, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2822337891, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 63 75 39 a8" ], "seqno": 211, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 212, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 213, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2822337825, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483663 }, "level": 0, "payload": [ "0f 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 21 75 39 a8" ], "seqno": 214, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "\uac1c\uc694 \uc138 \ubc88\uc9f8 (\uc0c8 \ubc88\ud638)" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "1c ac 94 c6 20 00 38 c1 20 00 88 bc f8 c9 20 00", "28 00 c8 c0 20 00 88 bc 38 d6 29 00 0d 00" ], "seqno": 215, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 216, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 25600 } ] }, "level": 1, "payload": [ "00 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 217, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/lists.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 3, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 51, "picture_startnum": 1, "section_count": 2, "table_startnum": 1 }, "level": 0, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 33 00 00 00 03 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 2, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 4, "other_fonts": 2, "parashapes": 21, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 04 00 00 00", "02 00 00 00 15 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 76, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 140, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 108, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 172, "numbering_format": "^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "4c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 8c 00 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 2e 00 6c 00 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "ac 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "35 00 29 00 0c 00 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 36 00 29 00 2c 00 00 00 00 00 32 00", "ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 140, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 1 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 01 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 1 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 01 00" ], "seqno": 27, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "\uc81c^1\uc7a5", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "\uc81c^2\uc808", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "\uc81c^3\ud56d", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "-", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "", "space": 50, "width_correction": 0 } ], "starting_number": 1 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 1c c8", "5e 00 31 00 a5 c7 0c 00 00 00 00 00 32 00 ff ff", "ff ff 04 00 1c c8 5e 00 32 00 08 c8 0c 00 00 00", "00 00 32 00 ff ff ff ff 04 00 1c c8 5e 00 33 00", "6d d5 0c 00 00 00 00 00 32 00 ff ff ff ff 01 00", "2d 00 0c 00 00 00 00 00 32 00 ff ff ff ff 00 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 00 00 0c 00", "00 00 00 00 32 00 ff ff ff ff 00 00 01 00" ], "seqno": 28, "size": 126, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "char": 61548, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 6c f0" ], "seqno": 29, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "char": 61599, "charshape_id": -1, "flags": 8, "space": 50, "width": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 32 00 ff ff ff ff 9f f0" ], "seqno": 30, "size": 14, "tagid": 24, "tagname": "HWPTAG_BULLET", "type": "Bullet" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 1, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 01 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 33554816, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 2, "parashapeflags": 25166208, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 80 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 02 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 1, "parashapeflags": 16777600, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 01 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 1, "parashapeflags": 50332032, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 01 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 1, "parashapeflags": 83886464, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 05 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 01 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 3, "parashapeflags": 16777600, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 03 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 3, "parashapeflags": 50332032, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 03 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 03 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 3, "parashapeflags": 83886464, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 05 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 03 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 52, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 53, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 58, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 59, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 60, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 61, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 62, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 63, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 64, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/lists.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/matrix.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/matrix.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/matrix.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483689 }, "level": 0, "payload": [ "29 00 00 80 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 32 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 32, 40 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 40, 41 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 82, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 17008, "instance_id": 2050600116, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 8504, "x": 0, "y": 0, "z_order": 2 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 00 00 00 00 00 00 00 00", "38 21 00 00 70 42 00 00 02 00 00 00 00 00 00 00", "00 00 00 00 b4 ac 39 7a 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 17008, "initial_height": 8504, "initial_width": 8504, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4252, "y": 8504 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 2.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 38 21 00 00 38 21 00 00 38 21 00 00", "70 42 00 00 00 00 00 01 00 00 9c 10 00 00 38 21", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 13, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 8504, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "38 21 00 00" ], "seqno": 14, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 3, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7936, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 1f 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 18, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 18982, "instance_id": 2050392189, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 15868, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 00 00 00 00 00 00 00 00", "fc 3d 00 00 26 4a 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 7d 80 36 7a 00 00 00 00" ], "seqno": 19, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 30, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 17008, "initial_height": 8504, "initial_width": 8504, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 7934, "y": 9491 }, "scalerotations": [ { "rotator": { "a": 0.866025, "b": 0.5, "c": -0.5, "d": 0.866025, "e": 4821.6617, "f": -986.6766000000005 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 2.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 3682.0, "f": 987.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 3682, "y_in_group": 987 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 62 0e 00 00 db 03 00 00", "00 00 01 00 38 21 00 00 38 21 00 00 38 21 00 00", "70 42 00 00 00 00 00 01 1e 00 fe 1e 00 00 13 25", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 c4 ac 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 d8 8e 40 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00", "00 00 00 00 bc 96 90 0f 7a b6 eb 3f 00 00 00 00", "00 00 e0 bf c3 d3 2b 65 a9 d5 b2 40 00 00 00 00", "00 00 e0 3f bc 96 90 0f 7a b6 eb 3f ce c3 42 ad", "69 d5 8e c0 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 20, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 15868, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "fc 3d 00 00" ], "seqno": 21, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 3, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 22, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 15300, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c4 3b 00 00", "00 00 06 00" ], "seqno": 24, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 25, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 18982, "instance_id": 1812098207, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 15868, "x": 5669, "y": 5669, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 25 16 00 00 25 16 00 00", "fc 3d 00 00 26 4a 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 9f 6c 02 6c 00 00 00 00" ], "seqno": 26, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 30, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 17008, "initial_height": 8504, "initial_width": 8504, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 7934, "y": 9491 }, "scalerotations": [ { "rotator": { "a": 0.866025, "b": 0.5, "c": -0.5, "d": 0.866025, "e": 4821.6617, "f": -986.6766000000005 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 2.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 3682.0, "f": 987.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 3682, "y_in_group": 987 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 62 0e 00 00 db 03 00 00", "00 00 01 00 38 21 00 00 38 21 00 00 38 21 00 00", "70 42 00 00 00 00 00 01 1e 00 fe 1e 00 00 13 25", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 c4 ac 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 d8 8e 40 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 00", "00 00 00 00 bc 96 90 0f 7a b6 eb 3f 00 00 00 00", "00 00 e0 bf c3 d3 2b 65 a9 d5 b2 40 00 00 00 00", "00 00 e0 3f bc 96 90 0f 7a b6 eb 3f ce c3 42 ad", "69 d5 8e c0 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 15868, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "fc 3d 00 00" ], "seqno": 28, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 3, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 29, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 15300, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 c4 3b 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 32, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/matrix.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 24, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 18 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/matrix.hwp.formatted.xml ================================================

1

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

그림 1

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-in-common-controls.html.d/index.xhtml ================================================

1

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

그림 1

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-in-common-controls.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-2 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-in-common-controls.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1536083113, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 41954, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "e2 a3 00 00 02 05 00 00 00 00 00 00 1b 01 1b 01", "1b 01 1b 01 a9 c4 8e 5b 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 41954, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 e2 a3 00 00" ], "seqno": 13, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483660 }, "level": 2, "payload": [ "0c 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 14, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 11 ], " " ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 0d 00" ], "seqno": 15, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41952, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e0 a3 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 18, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 2, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 02 00 00 00" ], "seqno": 19, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 2, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 41954, "width": 41954 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "e2 a3 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 e2 a3 00 00" ], "seqno": 20, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 2, "parashape_id": 12, "rangetags": 0, "split": 2, "style_id": 0, "text": 2147483705 }, "level": 2, "payload": [ "39 00 00 80 04 00 00 00 0c 00 00 02 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 56 ], "\ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 " ], [ [ 56, 57 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "0d 00" ], "seqno": 22, "size": 114, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19700, "x": 0, "y": 0 }, { "chpos": 32, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19700, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f4 4c 00 00", "00 00 06 00 20 00 00 00 00 00 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "f4 4c 00 00 00 00 06 00" ], "seqno": 24, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 3, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 01 01 00 00 00 00" ], "seqno": 25, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 08 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 27, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3698 } ] }, "level": 1, "payload": [ "00 00 00 00 72 0e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 29, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 610942976, "height": 6240, "instance_id": 1536083114, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 20340, "x": 10294, "y": 15720, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 24 68 3d 00 00 36 28 00 00", "74 4f 00 00 60 18 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 aa c4 8e 5b 00 00 00 00" ], "seqno": 30, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20340, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 74 4f 00 00" ], "seqno": 31, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "GShapeObjectCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483661 }, "level": 2, "payload": [ "0d 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\uadf8\ub9bc " ], [ [ 3, 11 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 11, 12 ], " " ], [ [ 12, 13 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "f8 ad bc b9 20 00 12 00 6f 6e 74 61 00 00 00 00", "00 00 00 00 12 00 20 00 0d 00" ], "seqno": 33, "size": 26, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20340, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 74 4f 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 3, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 03 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 36, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 6366, "initial_height": 6240, "initial_width": 20340, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 10170, "y": 3183 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0201923076923076, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 20340, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 74 4f 00 00 60 18 00 00 74 4f 00 00", "de 18 00 00 00 00 00 01 00 00 ba 27 00 00 6f 0c", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 2b b5 52 2b b5 52 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 20340, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "74 4f 00 00" ], "seqno": 38, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 8, "parashape_id": 12, "rangetags": 0, "split": 2, "style_id": 0, "text": 2147483729 }, "level": 3, "payload": [ "51 00 00 80 04 00 00 00 0c 00 00 02 01 00 00 00", "08 00 00 00 00 00" ], "seqno": 39, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 80 ], "\ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 " ], [ [ 80, 81 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "0d 00" ], "seqno": 40, "size": 162, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 41, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 0 }, { "chpos": 17, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 1600 }, { "chpos": 26, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 3200 }, { "chpos": 35, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 4800 }, { "chpos": 44, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 0 }, { "chpos": 53, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 1600 }, { "chpos": 62, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 3200 }, { "chpos": 71, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8752, "x": 0, "y": 4800 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 30 22 00 00", "00 00 06 00 11 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "30 22 00 00 00 00 06 00 1a 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 30 22 00 00 00 00 06 00 23 00 00 00", "c0 12 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 30 22 00 00 00 00 06 00", "2c 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 30 22 00 00", "00 00 06 00 35 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "30 22 00 00 00 00 06 00 3e 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 30 22 00 00 00 00 06 00 47 00 00 00", "c0 12 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 30 22 00 00 00 00 06 00" ], "seqno": 42, "size": 288, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 4, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 01 01 00 00 00 00" ], "seqno": 43, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 20340, "y": 0 }, "p2": { "x": 20340, "y": 6240 }, "p3": { "x": 0, "y": 6240 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 74 4f 00 00 00 00 00", "00 74 4f 00 00 60 18 00 00 00 00 00 00 60 18 00", "00" ], "seqno": 44, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-in-common-controls.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 8, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 1, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00", "00 00 00 00 00 00 08 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 2, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 13, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0d 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 17, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 40, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 41, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 49, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 51, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-in-common-controls.hwp.formatted.xml ================================================

첫페이지 첫 문단: 1단

2단 2단 2단 2단 2단 2단 2단 2단 2단

2단 2단 2단

3단 3단 3단 3단 3단 3단 3단 3단 3단 3단 3단

3단 3단

3단 3단 3단

두 번 째 페이지: 새 쪽으로 2 단

다단다단다단다단다단다단다단

글 상자 안의 다

글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자

표 셀 안의 다단

표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-layout.html.d/index.xhtml ================================================ 첫페이지

첫페이지 첫 문단: 1단

2단 2단 2단 2단 2단 2단 2단 2단 2단

2단 2단 2단

3단 3단 3단 3단 3단 3단 3단 3단 3단 3단 3단

3단 3단

3단 3단 3단

두 번 째 페이지: 새 쪽으로 2 단

다단다단다단다단다단다단다단

글 상자 안의 다

글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자 글상자

표 셀 안의 다단

표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀 표 셀

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-layout.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-2 > span { line-height: 1.3; } p.parashape-3 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-10 > span { line-height: 1.5; } p.parashape-11 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 72pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 72pt; } span.charshape-6 { color: #000000; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 120pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7 { color: #003366; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 120pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8 { color: #ff0000; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-en { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 120pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 120pt; } .borderfill-1 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-layout.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 30 }, "level": 0, "payload": [ "1e 00 00 00 04 00 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 29 ], "\uccab\ud398\uc774\uc9c0 \uccab \ubb38\ub2e8: 1\ub2e8" ], [ [ 29, 30 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "ab cc 98 d3 74 c7 c0 c9 20 00 ab cc 20 00 38 bb", "e8 b2 3a 00 20 00 31 00 e8 b2 0d 00" ], "seqno": 1, "size": 60, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 dc 08 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 5, "controlmask": 4, "instance_id": 0, "linesegs": 9, "parashape_id": 1, "rangetags": 0, "split": 2, "style_id": 0, "text": 35 }, "level": 0, "payload": [ "23 00 00 00 04 00 00 00 01 00 00 02 05 00 00 00", "09 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 34 ], "2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8 2\ub2e8" ], [ [ 34, 35 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "32 00 e8 b2 20 00 32 00 e8 b2 20 00 32 00 e8 b2", "20 00 32 00 e8 b2 20 00 32 00 e8 b2 20 00 32 00", "e8 b2 20 00 32 00 e8 b2 20 00 32 00 e8 b2 20 00", "32 00 e8 b2 0d 00" ], "seqno": 13, "size": 70, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 7 ], [ 16, 6 ], [ 17, 8 ], [ 25, 6 ], [ 26, 7 ] ] }, "level": 1, "payload": [ "00 00 00 00 07 00 00 00 10 00 00 00 06 00 00 00", "11 00 00 00 08 00 00 00 19 00 00 00 06 00 00 00", "1a 00 00 00 07 00 00 00" ], "seqno": 14, "size": 40, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 0 }, { "chpos": 11, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 14, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 38400 }, { "chpos": 17, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 0 }, { "chpos": 20, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 23, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 38400 }, { "chpos": 26, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 0 }, { "chpos": 29, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 32, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e0 2e 00 00 e0 2e 00 00", "d8 27 00 00 20 1c 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 0b 00 00 00 00 4b 00 00 e0 2e 00 00", "e0 2e 00 00 d8 27 00 00 20 1c 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 0e 00 00 00 00 96 00 00", "e0 2e 00 00 e0 2e 00 00 d8 27 00 00 20 1c 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 11 00 00 00", "00 00 00 00 e0 2e 00 00 e0 2e 00 00 d8 27 00 00", "20 1c 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "14 00 00 00 00 4b 00 00 e0 2e 00 00 e0 2e 00 00", "d8 27 00 00 20 1c 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 17 00 00 00 00 96 00 00 e0 2e 00 00", "e0 2e 00 00 d8 27 00 00 20 1c 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 1a 00 00 00 00 00 00 00", "e0 2e 00 00 e0 2e 00 00 d8 27 00 00 20 1c 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 1d 00 00 00", "00 4b 00 00 e0 2e 00 00 e0 2e 00 00 d8 27 00 00", "20 1c 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "20 00 00 00 00 96 00 00 e0 2e 00 00 e0 2e 00 00", "d8 27 00 00 20 1c 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00" ], "seqno": 15, "size": 324, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 3, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "03 00 00 00 00 00" ], "seqno": 17, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "2\ub2e8 2\ub2e8 2\ub2e8" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "32 00 e8 b2 20 00 32 00 e8 b2 20 00 32 00 e8 b2", "0d 00" ], "seqno": 18, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 8 ] ] }, "level": 1, "payload": [ "00 00 00 00 08 00 00 00" ], "seqno": 19, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 0 }, { "chpos": 3, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 6, "height": 12000, "height_baseline": 10200, "height_text": 12000, "lineseg_flags": 393216, "space_below": 7200, "width": 20124, "x": 0, "y": 38400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e0 2e 00 00 e0 2e 00 00", "d8 27 00 00 20 1c 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 03 00 00 00 00 4b 00 00 e0 2e 00 00", "e0 2e 00 00 d8 27 00 00 20 1c 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 06 00 00 00 00 96 00 00", "e0 2e 00 00 e0 2e 00 00 d8 27 00 00 20 1c 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00" ], "seqno": 20, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 11, "parashape_id": 1, "rangetags": 0, "split": 2, "style_id": 0, "text": 45 }, "level": 0, "payload": [ "2d 00 00 00 04 00 00 00 01 00 00 02 01 00 00 00", "0b 00 00 00 00 00" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 44 ], "3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 3\ub2e8 " ], [ [ 44, 45 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "33 00 e8 b2 20 00 33 00 e8 b2 20 00 33 00 e8 b2", "20 00 33 00 e8 b2 20 00 20 00 33 00 e8 b2 20 00", "20 00 33 00 e8 b2 20 00 20 00 33 00 e8 b2 20 00", "33 00 e8 b2 20 00 33 00 e8 b2 20 00 33 00 e8 b2", "20 00 33 00 e8 b2 20 00 0d 00" ], "seqno": 22, "size": 90, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 }, { "chpos": 11, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 }, { "chpos": 14, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 }, { "chpos": 17, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 }, { "chpos": 21, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 11520 }, { "chpos": 25, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 23040 }, { "chpos": 29, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 34560 }, { "chpos": 32, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 46080 }, { "chpos": 35, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 57600 }, { "chpos": 38, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 }, { "chpos": 41, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 11520 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 0b 00 00 00 00 00 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 0e 00 00 00 00 00 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 11 00 00 00", "00 00 00 00 20 1c 00 00 20 1c 00 00 e8 17 00 00", "e0 10 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "15 00 00 00 00 2d 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 19 00 00 00 00 5a 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 1d 00 00 00 00 87 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 20 00 00 00", "00 b4 00 00 20 1c 00 00 20 1c 00 00 e8 17 00 00", "e0 10 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "23 00 00 00 00 e1 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 26 00 00 00 00 00 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 29 00 00 00 00 2d 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 68 34 00 00 00 00 06 00" ], "seqno": 24, "size": 396, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4108, "spacing": 1134, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 0c 10 6e 04 00 00 00 00 00 00 00 00" ], "seqno": 25, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 2, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "3\ub2e8 3\ub2e8" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 e8 b2 20 00 33 00 e8 b2 0d 00" ], "seqno": 27, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 23040 }, { "chpos": 3, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 34560 } ] }, "level": 1, "payload": [ "00 00 00 00 00 5a 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 03 00 00 00 00 87 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "68 34 00 00 00 00 06 00" ], "seqno": 29, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 3, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "03 00 00 00 00 00" ], "seqno": 30, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "3\ub2e8 3\ub2e8 3\ub2e8" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "33 00 e8 b2 20 00 33 00 e8 b2 20 00 33 00 e8 b2", "0d 00" ], "seqno": 31, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 32, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 46080 }, { "chpos": 3, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 57600 }, { "chpos": 6, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 13416, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 b4 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 03 00 00 00 00 e1 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 06 00 00 00 00 00 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 68 34 00 00 00 00 06 00" ], "seqno": 33, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 6, "style_id": 0, "text": 29 }, "level": 0, "payload": [ "1d 00 00 00 04 00 00 00 01 00 00 06 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 34, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 28 ], "\ub450 \ubc88 \uc9f8 \ud398\uc774\uc9c0: \uc0c8 \ucabd\uc73c\ub85c 2 \ub2e8" ], [ [ 28, 29 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "50 b4 20 00 88 bc 20 00 f8 c9 20 00 98 d3 74 c7", "c0 c9 3a 00 20 00 c8 c0 20 00 bd ca 3c c7 5c b8", "20 00 32 00 20 00 e8 b2 0d 00" ], "seqno": 35, "size": 58, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 36, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00" ], "seqno": 37, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 39, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 40, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00" ], "seqno": 41, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 7, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 15 }, "level": 0, "payload": [ "0f 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00", "07 00 00 00 00 00" ], "seqno": 42, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 14 ], "\ub2e4\ub2e8\ub2e4\ub2e8\ub2e4\ub2e8\ub2e4\ub2e8\ub2e4\ub2e8\ub2e4\ub2e8\ub2e4\ub2e8" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "e4 b2 e8 b2 e4 b2 e8 b2 e4 b2 e8 b2 e4 b2 e8 b2", "e4 b2 e8 b2 e4 b2 e8 b2 e4 b2 e8 b2 0d 00" ], "seqno": 43, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 44, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 3200 }, { "chpos": 2, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 14720 }, { "chpos": 4, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 26240 }, { "chpos": 6, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 37760 }, { "chpos": 8, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 49280 }, { "chpos": 10, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 0 }, { "chpos": 12, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 11520 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 02 00 00 00 80 39 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 04 00 00 00 80 66 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 06 00 00 00", "80 93 00 00 20 1c 00 00 20 1c 00 00 e8 17 00 00", "e0 10 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "08 00 00 00 80 c0 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 0a 00 00 00 00 00 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 0c 00 00 00 00 2d 00 00", "20 1c 00 00 20 1c 00 00 e8 17 00 00 e0 10 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00" ], "seqno": 45, "size": 252, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 2, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 46, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 47, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 48, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 9000, "height_baseline": 7650, "height_text": 9000, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 23040 }, { "chpos": 8, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 36360 } ] }, "level": 1, "payload": [ "00 00 00 00 00 5a 00 00 28 23 00 00 28 23 00 00", "e2 1d 00 00 e0 10 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 08 00 00 00 08 8e 00 00 20 1c 00 00", "20 1c 00 00 e8 17 00 00 e0 10 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00" ], "seqno": 49, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072849, "height": 9000, "instance_id": 1748212125, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 19431, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 11 43 6a 04 00 00 00 00 00 00 00 00", "e7 4b 00 00 28 23 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 9d 99 33 68 00 00 00 00" ], "seqno": 50, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 9000, "initial_height": 9000, "initial_width": 19431, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 9715, "y": 4500 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 19431, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e7 4b 00 00 28 23 00 00 e7 4b 00 00", "28 23 00 00 00 00 00 01 00 00 f3 25 00 00 94 11", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 19431, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 2, "unknown1": 0 }, "level": 3, "payload": [ "02 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "e7 4b 00 00" ], "seqno": 52, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 2, "parashape_id": 0, "rangetags": 0, "split": 2, "style_id": 0, "text": 19 }, "level": 3, "payload": [ "13 00 00 00 04 00 00 00 00 00 00 02 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 53, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 18 ], "\uae00 \uc0c1\uc790 \uc548\uc758 \ub2e4\ub2e8" ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ae 20 00 c1 c0 90 c7 20 00 48 c5 58 c7 20 00", "e4 b2 e8 b2 0d 00" ], "seqno": 54, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 55, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 0 }, { "chpos": 17, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 1600 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 20 00 00", "00 00 06 00 11 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 20 00 00 00 00 06 00" ], "seqno": 56, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 4, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 00 00 00 00 00 00" ], "seqno": 57, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 8, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483720 }, "level": 3, "payload": [ "48 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "08 00 00 00 00 00" ], "seqno": 58, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 71 ], "\uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790 \uae00\uc0c1\uc790" ], [ [ 71, 72 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 20 00", "00 ae c1 c0 90 c7 20 00 00 ae c1 c0 90 c7 0d 00" ], "seqno": 59, "size": 144, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 60, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 3200 }, { "chpos": 9, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 4800 }, { "chpos": 18, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 6400 }, { "chpos": 28, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 0 }, { "chpos": 37, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 1600 }, { "chpos": 46, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 3200 }, { "chpos": 56, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 4800 }, { "chpos": 65, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8296, "x": 0, "y": 6400 } ] }, "level": 4, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 20 00 00", "00 00 06 00 09 00 00 00 c0 12 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 20 00 00 00 00 06 00 12 00 00 00 00 19 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 20 00 00 00 00 06 00 1c 00 00 00", "00 00 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 20 00 00 00 00 06 00", "25 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 20 00 00", "00 00 06 00 2e 00 00 00 80 0c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 20 00 00 00 00 06 00 38 00 00 00 c0 12 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 20 00 00 00 00 06 00 41 00 00 00", "00 19 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 20 00 00 00 00 06 00" ], "seqno": 61, "size": 288, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 19431, "y": 0 }, "p2": { "x": 19431, "y": 9000 }, "p3": { "x": 0, "y": 9000 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e7 4b 00 00 00 00 00", "00 e7 4b 00 00 28 23 00 00 00 00 00 00 28 23 00", "00" ], "seqno": 62, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "tbl ", "description": "", "flags": 136979217, "height": 6082, "instance_id": 1748212118, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 11 23 2a 08 00 00 00 00 00 00 00 00", "f0 51 00 00 c2 17 00 00 00 00 00 00 1b 01 1b 01", "1b 01 1b 01 96 99 33 68 00 00 00 00" ], "seqno": 63, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 64, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 3, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "03 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 65, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 2, "style_id": 0, "text": 18 }, "level": 2, "payload": [ "12 00 00 00 04 00 00 00 00 00 00 02 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 66, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 17 ], "\ud45c \uc140 \uc548\uc758 \ub2e4\ub2e8" ], [ [ 17, 18 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "5c d4 20 00 40 c1 20 00 48 c5 58 c7 20 00 e4 b2", "e8 b2 0d 00" ], "seqno": 67, "size": 36, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 68, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 fc 23 00 00", "00 00 06 00" ], "seqno": 69, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 3, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 00 00 00 00 00 00" ], "seqno": 70, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 6, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 68 }, "level": 2, "payload": [ "44 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "06 00 00 00 00 00" ], "seqno": 71, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 67 ], "\ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140 \ud45c \uc140" ], [ [ 67, 68 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 20 00 5c d4 20 00 40 c1 20 00", "5c d4 20 00 40 c1 0d 00" ], "seqno": 72, "size": 136, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 73, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 1600 }, { "chpos": 12, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 3200 }, { "chpos": 24, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 4800 }, { "chpos": 36, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 0 }, { "chpos": 48, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 1600 }, { "chpos": 60, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 3200 } ] }, "level": 3, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 fc 23 00 00", "00 00 06 00 0c 00 00 00 80 0c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "fc 23 00 00 00 00 06 00 18 00 00 00 c0 12 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 fc 23 00 00 00 00 06 00 24 00 00 00", "00 00 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 fc 23 00 00 00 00 06 00", "30 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 fc 23 00 00", "00 00 06 00 3c 00 00 00 80 0c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "fc 23 00 00 00 00 06 00" ], "seqno": 74, "size": 216, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 75, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 76, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 9212, "x": 0, "y": 4800 } ] }, "level": 3, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 fc 23 00 00", "00 00 06 00" ], "seqno": 77, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 0, "payload": [ "01 00 00 80 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 78, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 79, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7200, "height_baseline": 6120, "height_text": 7200, "lineseg_flags": 393216, "space_below": 4320, "width": 20124, "x": 0, "y": 47880 } ] }, "level": 1, "payload": [ "00 00 00 00 08 bb 00 00 20 1c 00 00 20 1c 00 00", "e8 17 00 00 e0 10 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00" ], "seqno": 80, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-layout.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 1, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 2, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 02 00 00 00 01 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 2, "bullets": 0, "charshapes": 9, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 09 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 7200, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 20 1c 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 12000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e0 2e 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 12000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 6697728, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e0 2e 00 00 00 00", "00 00 0a 0a 00 33 66 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 25, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 12000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 255, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e0 2e 00 00 00 00", "00 00 0a 0a ff 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 28, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 29, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 30, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 43, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 09 00 01 00 00 00" ], "seqno": 44, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 0b 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 03 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 04 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 05 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 06 00 01 00 00 00" ], "seqno": 49, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 07 00 01 00 00 00" ], "seqno": 50, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 08 00 01 00 00 00" ], "seqno": 51, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 52, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0a 00 02 00 00 00" ], "seqno": 53, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 02 00 03 00", "00 00" ], "seqno": 54, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 01 00 04 00 00 00" ], "seqno": 55, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-layout.hwp.formatted.xml ================================================

1

2

3

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-widths.html.d/index.xhtml ================================================ 1

1

2

3

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-widths.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-widths.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 18 }, "level": 0, "payload": [ "12 00 00 00 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], "1" ], [ [ 17, 18 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "31 00 0d 00" ], "seqno": 1, "size": 36, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 255, "stroke_flags": 1, "width_flags": 2 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 01 02 ff 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 2, "style_id": 0, "text": 10 }, "level": 0, "payload": [ "0a 00 00 00 04 00 00 00 0b 00 00 02 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], "2" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "32 00 0d 00" ], "seqno": 13, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19842, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 82 4d 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "column0": { "width": 15291 }, "columns": [ { "spacing": 1744, "width": 15733 } ], "flags": 8, "spacing": 0, "splitter": { "color": 255, "stroke_flags": 1, "width_flags": 2 } }, "level": 1, "payload": [ "64 6c 6f 63 08 00 00 00 bb 3b d0 06 75 3d 00 00", "01 02 ff 00 00 00" ], "seqno": 16, "size": 22, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 2, "style_id": 0, "text": 2147483658 }, "level": 0, "payload": [ "0a 00 00 80 04 00 00 00 0b 00 00 02 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 17, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], "3" ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "33 00 0d 00" ], "seqno": 18, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 19, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13412, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 64 34 00 00", "00 00 06 00" ], "seqno": 20, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "column0": { "width": 10336 }, "columns": [ { "spacing": 870, "width": 10336 }, { "spacing": 434, "width": 10792 } ], "flags": 12, "spacing": 0, "splitter": { "color": 255, "stroke_flags": 1, "width_flags": 2 } }, "level": 1, "payload": [ "64 6c 6f 63 0c 00 00 00 60 28 66 03 60 28 b2 01", "28 2a 00 00 01 02 ff 00 00 00" ], "seqno": 21, "size": 26, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-widths.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 17, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 11 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns-widths.hwp.formatted.xml ================================================

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns.html.d/index.xhtml ================================================

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단 다단

================================================ FILE: tests/hwp5_tests/fixtures/multicolumns.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0d 00" ], "seqno": 1, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 1 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 dc 08 00 00 00 01 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 82, "parashape_id": 11, "rangetags": 0, "split": 6, "style_id": 0, "text": 1977 }, "level": 0, "payload": [ "b9 07 00 00 04 00 00 00 0b 00 00 06 01 00 00 00", "52 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 1976 ], "\ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 " ], [ [ 1976, 1977 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "0d 00" ], "seqno": 13, "size": 3954, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 0 }, { "chpos": 32, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 1600 }, { "chpos": 56, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 3200 }, { "chpos": 80, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 4800 }, { "chpos": 104, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 6400 }, { "chpos": 128, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 8000 }, { "chpos": 152, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 9600 }, { "chpos": 176, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 11200 }, { "chpos": 200, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 12800 }, { "chpos": 224, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 14400 }, { "chpos": 248, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 16000 }, { "chpos": 272, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 17600 }, { "chpos": 296, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 320, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 20800 }, { "chpos": 344, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 22400 }, { "chpos": 368, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 24000 }, { "chpos": 392, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 25600 }, { "chpos": 416, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 27200 }, { "chpos": 440, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 28800 }, { "chpos": 464, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 30400 }, { "chpos": 488, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 32000 }, { "chpos": 512, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 33600 }, { "chpos": 536, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 35200 }, { "chpos": 560, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 36800 }, { "chpos": 584, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 38400 }, { "chpos": 608, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 40000 }, { "chpos": 632, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 41600 }, { "chpos": 656, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 43200 }, { "chpos": 680, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 44800 }, { "chpos": 704, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 46400 }, { "chpos": 728, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 48000 }, { "chpos": 752, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 49600 }, { "chpos": 776, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 51200 }, { "chpos": 800, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 52800 }, { "chpos": 824, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 54400 }, { "chpos": 848, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 56000 }, { "chpos": 872, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 57600 }, { "chpos": 896, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 59200 }, { "chpos": 920, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 60800 }, { "chpos": 944, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 62400 }, { "chpos": 968, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 64000 }, { "chpos": 992, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 0 }, { "chpos": 1016, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 1600 }, { "chpos": 1040, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 3200 }, { "chpos": 1064, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 4800 }, { "chpos": 1088, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 6400 }, { "chpos": 1112, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 8000 }, { "chpos": 1136, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 9600 }, { "chpos": 1160, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 11200 }, { "chpos": 1184, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 12800 }, { "chpos": 1208, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 14400 }, { "chpos": 1232, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 16000 }, { "chpos": 1256, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 17600 }, { "chpos": 1280, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 19200 }, { "chpos": 1304, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 20800 }, { "chpos": 1328, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 22400 }, { "chpos": 1352, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 24000 }, { "chpos": 1376, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 25600 }, { "chpos": 1400, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 27200 }, { "chpos": 1424, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 28800 }, { "chpos": 1448, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 30400 }, { "chpos": 1472, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 32000 }, { "chpos": 1496, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 33600 }, { "chpos": 1520, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 35200 }, { "chpos": 1544, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 36800 }, { "chpos": 1568, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 38400 }, { "chpos": 1592, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 40000 }, { "chpos": 1616, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 41600 }, { "chpos": 1640, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 43200 }, { "chpos": 1664, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 44800 }, { "chpos": 1688, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 46400 }, { "chpos": 1712, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 48000 }, { "chpos": 1736, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 49600 }, { "chpos": 1760, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 51200 }, { "chpos": 1784, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 52800 }, { "chpos": 1808, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 54400 }, { "chpos": 1832, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 56000 }, { "chpos": 1856, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 57600 }, { "chpos": 1880, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 59200 }, { "chpos": 1904, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 60800 }, { "chpos": 1928, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 62400 }, { "chpos": 1952, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20124, "x": 0, "y": 64000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 20 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 38 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 50 00 00 00", "c0 12 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "68 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 80 00 00 00 40 1f 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 98 00 00 00 80 25 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 b0 00 00 00", "c0 2b 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "c8 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 e0 00 00 00 40 38 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 f8 00 00 00 80 3e 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 10 01 00 00", "c0 44 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "28 01 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 40 01 00 00 40 51 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 58 01 00 00 80 57 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 70 01 00 00", "c0 5d 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "88 01 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 a0 01 00 00 40 6a 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 b8 01 00 00 80 70 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 d0 01 00 00", "c0 76 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "e8 01 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 00 02 00 00 40 83 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 18 02 00 00 80 89 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 30 02 00 00", "c0 8f 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "48 02 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 60 02 00 00 40 9c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 78 02 00 00 80 a2 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 90 02 00 00", "c0 a8 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "a8 02 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 c0 02 00 00 40 b5 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 d8 02 00 00 80 bb 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 f0 02 00 00", "c0 c1 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "08 03 00 00 00 c8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 20 03 00 00 40 ce 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 38 03 00 00 80 d4 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 50 03 00 00", "c0 da 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "68 03 00 00 00 e1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 80 03 00 00 40 e7 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 98 03 00 00 80 ed 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 b0 03 00 00", "c0 f3 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "c8 03 00 00 00 fa 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 e0 03 00 00 00 00 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 f8 03 00 00 40 06 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 10 04 00 00", "80 0c 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "28 04 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 40 04 00 00 00 19 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 58 04 00 00 40 1f 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 70 04 00 00", "80 25 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "88 04 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 a0 04 00 00 00 32 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 b8 04 00 00 40 38 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 d0 04 00 00", "80 3e 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "e8 04 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 00 05 00 00 00 4b 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 18 05 00 00 40 51 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 30 05 00 00", "80 57 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "48 05 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 60 05 00 00 00 64 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 78 05 00 00 40 6a 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 90 05 00 00", "80 70 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "a8 05 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 c0 05 00 00 00 7d 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 d8 05 00 00 40 83 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 f0 05 00 00", "80 89 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "08 06 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 20 06 00 00 00 96 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 38 06 00 00 40 9c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 50 06 00 00", "80 a2 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "68 06 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 80 06 00 00 00 af 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 98 06 00 00 40 b5 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 b0 06 00 00", "80 bb 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "c8 06 00 00 c0 c1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 e0 06 00 00 00 c8 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 f8 06 00 00 40 ce 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 10 07 00 00", "80 d4 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "28 07 00 00 c0 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 40 07 00 00 00 e1 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00 58 07 00 00 40 e7 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 9c 4e 00 00 00 00 06 00 70 07 00 00", "80 ed 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 9c 4e 00 00 00 00 06 00", "88 07 00 00 c0 f3 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 9c 4e 00 00", "00 00 06 00 a0 07 00 00 00 fa 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "9c 4e 00 00 00 00 06 00" ], "seqno": 15, "size": 2952, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4104, "spacing": 2268, "splitter": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "64 6c 6f 63 08 10 dc 08 00 00 01 01 00 00 00 00" ], "seqno": 16, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 123, "parashape_id": 11, "rangetags": 0, "split": 2, "style_id": 0, "text": 2147485502 }, "level": 0, "payload": [ "3e 07 00 80 04 00 00 00 0b 00 00 02 01 00 00 00", "7b 00 00 00 00 00" ], "seqno": 17, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 1853 ], "\ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 \ub2e4\ub2e8 " ], [ [ 1853, 1854 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00", "e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2", "20 00 e4 b2 e8 b2 20 00 e4 b2 e8 b2 20 00 e4 b2", "e8 b2 20 00 e4 b2 e8 b2 20 00 0d 00" ], "seqno": 18, "size": 3708, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 19, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 0 }, { "chpos": 23, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 1600 }, { "chpos": 38, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 3200 }, { "chpos": 53, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 4800 }, { "chpos": 68, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 6400 }, { "chpos": 83, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 8000 }, { "chpos": 98, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 9600 }, { "chpos": 113, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 11200 }, { "chpos": 128, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 12800 }, { "chpos": 143, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 14400 }, { "chpos": 158, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 16000 }, { "chpos": 173, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 17600 }, { "chpos": 188, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 19200 }, { "chpos": 203, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 20800 }, { "chpos": 218, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 22400 }, { "chpos": 233, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 24000 }, { "chpos": 248, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 25600 }, { "chpos": 263, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 27200 }, { "chpos": 278, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 28800 }, { "chpos": 293, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 30400 }, { "chpos": 308, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 32000 }, { "chpos": 323, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 33600 }, { "chpos": 338, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 35200 }, { "chpos": 353, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 36800 }, { "chpos": 368, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 38400 }, { "chpos": 383, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 40000 }, { "chpos": 398, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 41600 }, { "chpos": 413, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 43200 }, { "chpos": 428, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 44800 }, { "chpos": 443, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 46400 }, { "chpos": 458, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 48000 }, { "chpos": 473, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 49600 }, { "chpos": 488, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 51200 }, { "chpos": 503, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 52800 }, { "chpos": 518, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 54400 }, { "chpos": 533, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 56000 }, { "chpos": 548, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 57600 }, { "chpos": 563, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 59200 }, { "chpos": 578, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 60800 }, { "chpos": 593, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 62400 }, { "chpos": 608, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 64000 }, { "chpos": 623, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 0 }, { "chpos": 638, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 1600 }, { "chpos": 653, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 3200 }, { "chpos": 668, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 4800 }, { "chpos": 683, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 6400 }, { "chpos": 698, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 8000 }, { "chpos": 713, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 9600 }, { "chpos": 728, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 11200 }, { "chpos": 743, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 12800 }, { "chpos": 758, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 14400 }, { "chpos": 773, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 16000 }, { "chpos": 788, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 17600 }, { "chpos": 803, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 19200 }, { "chpos": 818, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 20800 }, { "chpos": 833, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 22400 }, { "chpos": 848, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 24000 }, { "chpos": 863, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 25600 }, { "chpos": 878, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 27200 }, { "chpos": 893, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 28800 }, { "chpos": 908, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 30400 }, { "chpos": 923, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 32000 }, { "chpos": 938, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 33600 }, { "chpos": 953, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 35200 }, { "chpos": 968, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 36800 }, { "chpos": 983, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 38400 }, { "chpos": 998, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 40000 }, { "chpos": 1013, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 41600 }, { "chpos": 1028, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 43200 }, { "chpos": 1043, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 44800 }, { "chpos": 1058, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 46400 }, { "chpos": 1073, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 48000 }, { "chpos": 1088, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 49600 }, { "chpos": 1103, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 51200 }, { "chpos": 1118, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 52800 }, { "chpos": 1133, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 54400 }, { "chpos": 1148, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 56000 }, { "chpos": 1163, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 57600 }, { "chpos": 1178, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 59200 }, { "chpos": 1193, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 60800 }, { "chpos": 1208, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 62400 }, { "chpos": 1223, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 64000 }, { "chpos": 1238, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 0 }, { "chpos": 1253, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 1600 }, { "chpos": 1268, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 3200 }, { "chpos": 1283, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 4800 }, { "chpos": 1298, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 6400 }, { "chpos": 1313, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 8000 }, { "chpos": 1328, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 9600 }, { "chpos": 1343, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 11200 }, { "chpos": 1358, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 12800 }, { "chpos": 1373, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 14400 }, { "chpos": 1388, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 16000 }, { "chpos": 1403, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 17600 }, { "chpos": 1418, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 19200 }, { "chpos": 1433, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 20800 }, { "chpos": 1448, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 22400 }, { "chpos": 1463, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 24000 }, { "chpos": 1478, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 25600 }, { "chpos": 1493, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 27200 }, { "chpos": 1508, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 28800 }, { "chpos": 1523, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 30400 }, { "chpos": 1538, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 32000 }, { "chpos": 1553, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 33600 }, { "chpos": 1568, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 35200 }, { "chpos": 1583, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 36800 }, { "chpos": 1598, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 38400 }, { "chpos": 1613, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 40000 }, { "chpos": 1628, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 41600 }, { "chpos": 1643, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 43200 }, { "chpos": 1658, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 44800 }, { "chpos": 1673, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 46400 }, { "chpos": 1688, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 48000 }, { "chpos": 1703, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 49600 }, { "chpos": 1718, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 51200 }, { "chpos": 1733, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 52800 }, { "chpos": 1748, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 54400 }, { "chpos": 1763, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 56000 }, { "chpos": 1778, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 57600 }, { "chpos": 1793, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 59200 }, { "chpos": 1808, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 60800 }, { "chpos": 1823, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 62400 }, { "chpos": 1838, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 13416, "x": 0, "y": 64000 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 17 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 26 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 35 00 00 00", "c0 12 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "44 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 53 00 00 00 40 1f 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 62 00 00 00 80 25 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 71 00 00 00", "c0 2b 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "80 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 8f 00 00 00 40 38 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 9e 00 00 00 80 3e 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 ad 00 00 00", "c0 44 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "bc 00 00 00 00 4b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 cb 00 00 00 40 51 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 da 00 00 00 80 57 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 e9 00 00 00", "c0 5d 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "f8 00 00 00 00 64 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 07 01 00 00 40 6a 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 16 01 00 00 80 70 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 25 01 00 00", "c0 76 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "34 01 00 00 00 7d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 43 01 00 00 40 83 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 52 01 00 00 80 89 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 61 01 00 00", "c0 8f 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "70 01 00 00 00 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 7f 01 00 00 40 9c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 8e 01 00 00 80 a2 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 9d 01 00 00", "c0 a8 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "ac 01 00 00 00 af 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 bb 01 00 00 40 b5 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 ca 01 00 00 80 bb 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 d9 01 00 00", "c0 c1 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "e8 01 00 00 00 c8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 f7 01 00 00 40 ce 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 06 02 00 00 80 d4 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 15 02 00 00", "c0 da 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "24 02 00 00 00 e1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 33 02 00 00 40 e7 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 42 02 00 00 80 ed 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 51 02 00 00", "c0 f3 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "60 02 00 00 00 fa 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 6f 02 00 00 00 00 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 7e 02 00 00 40 06 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 8d 02 00 00", "80 0c 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "9c 02 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 ab 02 00 00 00 19 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 ba 02 00 00 40 1f 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 c9 02 00 00", "80 25 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "d8 02 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 e7 02 00 00 00 32 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 f6 02 00 00 40 38 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 05 03 00 00", "80 3e 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "14 03 00 00 c0 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 23 03 00 00 00 4b 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 32 03 00 00 40 51 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 41 03 00 00", "80 57 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "50 03 00 00 c0 5d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 5f 03 00 00 00 64 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 6e 03 00 00 40 6a 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 7d 03 00 00", "80 70 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "8c 03 00 00 c0 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 9b 03 00 00 00 7d 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 aa 03 00 00 40 83 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 b9 03 00 00", "80 89 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "c8 03 00 00 c0 8f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 d7 03 00 00 00 96 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 e6 03 00 00 40 9c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 f5 03 00 00", "80 a2 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "04 04 00 00 c0 a8 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 13 04 00 00 00 af 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 22 04 00 00 40 b5 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 31 04 00 00", "80 bb 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "40 04 00 00 c0 c1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 4f 04 00 00 00 c8 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 5e 04 00 00 40 ce 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 6d 04 00 00", "80 d4 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "7c 04 00 00 c0 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 8b 04 00 00 00 e1 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 9a 04 00 00 40 e7 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 a9 04 00 00", "80 ed 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "b8 04 00 00 c0 f3 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 c7 04 00 00 00 fa 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 d6 04 00 00 00 00 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 e5 04 00 00", "40 06 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "f4 04 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 03 05 00 00 c0 12 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 12 05 00 00 00 19 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 21 05 00 00", "40 1f 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "30 05 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 3f 05 00 00 c0 2b 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 4e 05 00 00 00 32 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 5d 05 00 00", "40 38 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "6c 05 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 7b 05 00 00 c0 44 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 8a 05 00 00 00 4b 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 99 05 00 00", "40 51 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "a8 05 00 00 80 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 b7 05 00 00 c0 5d 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 c6 05 00 00 00 64 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 d5 05 00 00", "40 6a 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "e4 05 00 00 80 70 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 f3 05 00 00 c0 76 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 02 06 00 00 00 7d 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 11 06 00 00", "40 83 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "20 06 00 00 80 89 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 2f 06 00 00 c0 8f 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 3e 06 00 00 00 96 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 4d 06 00 00", "40 9c 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "5c 06 00 00 80 a2 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 6b 06 00 00 c0 a8 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 7a 06 00 00 00 af 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 89 06 00 00", "40 b5 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "98 06 00 00 80 bb 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 a7 06 00 00 c0 c1 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 b6 06 00 00 00 c8 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 c5 06 00 00", "40 ce 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "d4 06 00 00 80 d4 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 e3 06 00 00 c0 da 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 f2 06 00 00 00 e1 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00 01 07 00 00", "40 e7 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 68 34 00 00 00 00 06 00", "10 07 00 00 80 ed 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 68 34 00 00", "00 00 06 00 1f 07 00 00 c0 f3 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "68 34 00 00 00 00 06 00 2e 07 00 00 00 fa 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 68 34 00 00 00 00 06 00" ], "seqno": 20, "size": 4428, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4108, "spacing": 1134, "splitter": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "64 6c 6f 63 0c 10 6e 04 00 00 01 01 00 00 00 00" ], "seqno": 21, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 16, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 10 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/multicolumns.hwp.formatted.xml ================================================

Section 1: A4 portrait

Section 2: A4 landscape

================================================ FILE: tests/hwp5_tests/fixtures/pagedefs.html.d/index.xhtml ================================================ pagedefs

Section 1: A4 portrait

Section 2: A4 landscape

================================================ FILE: tests/hwp5_tests/fixtures/pagedefs.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/pagedefs.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483687 }, "level": 0, "payload": [ "27 00 00 80 04 00 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 38 ], "Section 1: A4 portrait" ], [ [ 38, 39 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "53 00 65 00 63 00 74 00 69 00 6f 00 6e 00 20 00", "31 00 3a 00 20 00 41 00 34 00 20 00 70 00 6f 00", "72 00 74 00 72 00 61 00 69 00 74 00 0d 00" ], "seqno": 1, "size": 78, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/pagedefs.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 16, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 1, "picture_startnum": 1, "section_count": 2, "table_startnum": 1 }, "level": 0, "payload": [ "02 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 01 00 00 00 10 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 2, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 02 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 39, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 40, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 48, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 50, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/pagedefs.hwp.formatted.xml ================================================

가나다

라마바

new page

================================================ FILE: tests/hwp5_tests/fixtures/paragraph-split-page.html.d/index.xhtml ================================================ 가나다

가나다

라마바

new page

================================================ FILE: tests/hwp5_tests/fixtures/paragraph-split-page.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/paragraph-split-page.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 3, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 04 00 00 00 02 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 19 ], "\uac00\ub098\ub2e4" ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ac 98 b0 e4 b2 0d 00" ], "seqno": 1, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\ub77c\ub9c8\ubc14" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "7c b7 c8 b9 14 bc 0d 00" ], "seqno": 13, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 4, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 00 00 00 02 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], "new page" ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "6e 00 65 00 77 00 20 00 70 00 61 00 67 00 65 00", "0d 00" ], "seqno": 17, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/paragraph-split-page.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 19, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 13 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/paragraph-split-page.hwp.formatted.xml ================================================

문단1

문단2

문단3 - 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 여쓰기 10pt 들여쓰기 10pt

문단4 - 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt

문단 5

문단 6

문단 7

문단 8

문단 9

================================================ FILE: tests/hwp5_tests/fixtures/parashape.html.d/index.xhtml ================================================ 문단1

문단1

문단2

문단3 - 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 들여쓰기 10pt 여쓰기 10pt 들여쓰기 10pt

문단4 - 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt 내어쓰기 10pt

문단 5

문단 6

문단 7

문단 8

문단 9

================================================ FILE: tests/hwp5_tests/fixtures/parashape.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 10pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } p.parashape-13 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 13pt 12pt 14pt 11pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-14 > span { line-height: 1.6; } p.parashape-15 { margin: 0pt 0pt 0pt 0pt; text-align: left; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-15 > span { line-height: 1.6; } p.parashape-16 { margin: 0pt 0pt 0pt 0pt; text-align: right; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-16 > span { line-height: 1.6; } p.parashape-17 { margin: 0pt 0pt 0pt 0pt; text-align: center; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-17 > span { line-height: 1.6; } p.parashape-18 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-18 > span { line-height: 1.6; } p.parashape-19 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -10pt; padding-left: 10pt; min-height: 1.6em; } p.parashape-19 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/parashape.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 3, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 04 00 00 00 0e 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 19 ], "\ubb38\ub2e81" ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "38 bb e8 b2 31 00 0d 00" ], "seqno": 1, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40220, "x": 1100, "y": 1300 } ] }, "level": 1, "payload": [ "00 00 00 00 14 05 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 4c 04 00 00 1c 9d 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 0, "payload": [ "04 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\ubb38\ub2e82" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 32 00 0d 00" ], "seqno": 13, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4300 } ] }, "level": 1, "payload": [ "00 00 00 00 cc 10 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 2, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 76 }, "level": 0, "payload": [ "4c 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 75 ], "\ubb38\ub2e83 - \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt \ub4e4\uc5ec\uc4f0\uae30 10pt" ], [ [ 75, 76 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 33 00 20 00 2d 00 20 00 e4 b4 ec c5", "f0 c4 30 ae 20 00 31 00 30 00 70 00 74 00 20 00", "e4 b4 ec c5 f0 c4 30 ae 20 00 31 00 30 00 70 00", "74 00 20 00 e4 b4 ec c5 f0 c4 30 ae 20 00 31 00", "30 00 70 00 74 00 20 00 e4 b4 ec c5 f0 c4 30 ae", "20 00 31 00 30 00 70 00 74 00 20 00 e4 b4 ec c5", "f0 c4 30 ae 20 00 31 00 30 00 70 00 74 00 20 00", "e4 b4 ec c5 f0 c4 30 ae 20 00 31 00 30 00 70 00", "74 00 20 00 e4 b4 ec c5 f0 c4 30 ae 20 00 31 00", "30 00 70 00 74 00 0d 00" ], "seqno": 17, "size": 152, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 1441792, "space_below": 600, "width": 42520, "x": 0, "y": 5900 }, { "chpos": 57, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 7500 } ] }, "level": 1, "payload": [ "00 00 00 00 0c 17 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 16 00 39 00 00 00 4c 1d 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00" ], "seqno": 19, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 2, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 76 }, "level": 0, "payload": [ "4c 00 00 00 00 00 00 00 0d 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 75 ], "\ubb38\ub2e84 - \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt \ub0b4\uc5b4\uc4f0\uae30 10pt" ], [ [ 75, 76 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 34 00 20 00 2d 00 20 00 b4 b0 b4 c5", "f0 c4 30 ae 20 00 31 00 30 00 70 00 74 00 20 00", "b4 b0 b4 c5 f0 c4 30 ae 20 00 31 00 30 00 70 00", "74 00 20 00 b4 b0 b4 c5 f0 c4 30 ae 20 00 31 00", "30 00 70 00 74 00 20 00 b4 b0 b4 c5 f0 c4 30 ae", "20 00 31 00 30 00 70 00 74 00 20 00 b4 b0 b4 c5", "f0 c4 30 ae 20 00 31 00 30 00 70 00 74 00 20 00", "b4 b0 b4 c5 f0 c4 30 ae 20 00 31 00 30 00 70 00", "74 00 20 00 b4 b0 b4 c5 f0 c4 30 ae 20 00 31 00", "30 00 70 00 74 00 0d 00" ], "seqno": 21, "size": 152, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9100 }, { "chpos": 58, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 1441792, "space_below": 600, "width": 42520, "x": 0, "y": 10700 } ] }, "level": 1, "payload": [ "00 00 00 00 8c 23 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00 3a 00 00 00 cc 29 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "18 a6 00 00 00 00 16 00" ], "seqno": 23, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8 5" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 20 00 35 00 0d 00" ], "seqno": 25, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 12300 } ] }, "level": 1, "payload": [ "00 00 00 00 0c 30 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8 6" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 20 00 36 00 0d 00" ], "seqno": 29, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 13900 } ] }, "level": 1, "payload": [ "00 00 00 00 4c 36 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8 7" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 20 00 37 00 0d 00" ], "seqno": 33, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 15500 } ] }, "level": 1, "payload": [ "00 00 00 00 8c 3c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8 8" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 20 00 38 00 0d 00" ], "seqno": 37, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 17100 } ] }, "level": 1, "payload": [ "00 00 00 00 cc 42 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 19, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483653 }, "level": 0, "payload": [ "05 00 00 80 00 00 00 00 13 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ubb38\ub2e8 9" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 bb e8 b2 20 00 39 00 0d 00" ], "seqno": 41, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 18700 } ] }, "level": 1, "payload": [ "00 00 00 00 0c 49 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/parashape.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 5, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 05 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 20, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 14 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 d0 07 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 2800, "doubled_margin_left": 2200, "doubled_margin_right": 2400, "doubled_margin_top": 2600, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 98 08 00 00 60 09 00 00 00 00 00 00", "28 0a 00 00 f0 0a 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 260, "tabdef_id": 0 }, "level": 1, "payload": [ "04 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 264, "tabdef_id": 0 }, "level": 1, "payload": [ "08 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 268, "tabdef_id": 0 }, "level": 1, "payload": [ "0c 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 400, "tabdef_id": 0 }, "level": 1, "payload": [ "90 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2000, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 404, "tabdef_id": 0 }, "level": 1, "payload": [ "94 01 00 00 00 00 00 00 00 00 00 00 30 f8 ff ff", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 46, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 47, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 49, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 50, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 51, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 52, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 53, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 55, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 56, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 57, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 58, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 59, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/parashape.hwp.formatted.xml ================================================

글자취급

어울림 (양쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

어울림 (왼쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

어울림 (오른쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

자리차지 (왼쪽정렬)

자리차지 (오른쪽정렬)

자리차지 (가운데정렬)

자리차지 (안쪽정렬)

자리차지 (바깥쪽정렬)

글뒤로

글 앞으로

================================================ FILE: tests/hwp5_tests/fixtures/sample-5017-pics.html.d/index.xhtml ================================================

글자취급

어울림 (양쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

어울림 (왼쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

어울림 (오른쪽 본문)

어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림 어울림

자리차지 (왼쪽정렬)

자리차지 (오른쪽정렬)

자리차지 (가운데정렬)

자리차지 (안쪽정렬)

자리차지 (바깥쪽정렬)

글뒤로

글 앞으로

================================================ FILE: tests/hwp5_tests/fixtures/sample-5017-pics.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 4*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 4*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 4*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 2*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 3*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 0*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 0*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 1*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-1 > span { line-height: 1.3; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-0.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-1.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017-pics.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 3, "style_id": 0, "text": 29 }, "level": 0, "payload": [ "1d 00 00 00 04 08 00 00 00 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 20 ], "\uae00\uc790\ucde8\uae09" ], [ [ 20, 28 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 28, 29 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "00 ae 90 c7 e8 cd 09 ae 0b 00 20 6f 73 67 00 00", "00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 1, "size": 58, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 7560, "height_baseline": 6426, "height_text": 7560, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 88 1d 00 00 88 1d 00 00", "1a 19 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 69886737, "height": 7560, "instance_id": 1465824588, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 12600, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 11 63 2a 04 00 00 00 00 00 00 00 00", "38 31 00 00 88 1d 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 4c b5 5e 57 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 7560, "initial_height": 7560, "initial_width": 12600, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 6300, "y": 3780 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 12600, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 38 31 00 00 88 1d 00 00 38 31 00 00", "88 1d 00 00 00 00 00 24 00 00 9c 18 00 00 c4 0e", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 13, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 3221225472, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 12600, "y": 0 }, "p2": { "x": 12600, "y": 7560 }, "p3": { "x": 0, "y": 7560 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00", "00 00 00 00 38 31 00 00 00 00 00 00 38 31 00 00", "88 1d 00 00 00 00 00 00 88 1d 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 14, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 2, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 19 ], "\uc5b4\uc6b8\ub9bc (\uc591\ucabd \ubcf8\ubb38)" ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "b4 c5 b8 c6 bc b9 20 00 28 00 91 c5 bd ca 20 00", "f8 bc 38 bb 29 00 0d 00" ], "seqno": 16, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 17, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 0 }, { "chpos": 20, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 327680, "space_below": 600, "width": 7677, "x": 34843, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 47 4a 00 00", "00 00 02 00 14 00 00 00 00 00 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 1b 88 00 00", "fd 1d 00 00 00 00 05 00" ], "seqno": 18, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 67790352, "height": 9497, "instance_id": 1468402558, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 15828, "x": 5669, "y": 0, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 10 66 0a 04 00 00 00 00 25 16 00 00", "d4 3d 00 00 19 25 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 7e 0b 86 57 00 00 00 00" ], "seqno": 19, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9497, "initial_height": 9497, "initial_width": 15828, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 7914, "y": 4748 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 15828, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 d4 3d 00 00 19 25 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 24 00 00 ea 1e 00 00 8c 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 20, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 15828, "y": 0 }, "p2": { "x": 15828, "y": 9497 }, "p3": { "x": 0, "y": 9497 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 d4 3d 00 00 00 00 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 00 19 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 21, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 12, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 216 }, "level": 0, "payload": [ "d8 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00", "0c 00 00 00 00 00" ], "seqno": 22, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 215 ], "\uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc" ], [ [ 215, 216 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 0d 00" ], "seqno": 23, "size": 432, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ], [ 215, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00 d7 00 00 00 04 00 00 00" ], "seqno": 24, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 1600 }, { "chpos": 21, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 262144, "space_below": 600, "width": 7677, "x": 34843, "y": 1600 }, { "chpos": 29, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 3200 }, { "chpos": 50, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 262144, "space_below": 600, "width": 7677, "x": 34843, "y": 3200 }, { "chpos": 58, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 4800 }, { "chpos": 80, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 262144, "space_below": 600, "width": 7677, "x": 34843, "y": 4800 }, { "chpos": 88, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 6400 }, { "chpos": 109, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 262144, "space_below": 600, "width": 7677, "x": 34843, "y": 6400 }, { "chpos": 117, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 131072, "space_below": 600, "width": 19015, "x": 0, "y": 8000 }, { "chpos": 138, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 262144, "space_below": 600, "width": 7677, "x": 34843, "y": 8000 }, { "chpos": 146, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 }, { "chpos": 194, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 47 4a 00 00", "00 00 02 00 15 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 1b 88 00 00", "fd 1d 00 00 00 00 04 00 1d 00 00 00 80 0c 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 47 4a 00 00 00 00 02 00 32 00 00 00", "80 0c 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 1b 88 00 00 fd 1d 00 00 00 00 04 00", "3a 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 47 4a 00 00", "00 00 02 00 50 00 00 00 c0 12 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 1b 88 00 00", "fd 1d 00 00 00 00 04 00 58 00 00 00 00 19 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 47 4a 00 00 00 00 02 00 6d 00 00 00", "00 19 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 1b 88 00 00 fd 1d 00 00 00 00 04 00", "75 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 47 4a 00 00", "00 00 02 00 8a 00 00 00 40 1f 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 1b 88 00 00", "fd 1d 00 00 00 00 04 00 92 00 00 00 80 25 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 18 a6 00 00 00 00 06 00 c2 00 00 00", "c0 2b 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 18 a6 00 00 00 00 06 00" ], "seqno": 25, "size": 432, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 19 ], "\uc5b4\uc6b8\ub9bc (\uc67c\ucabd \ubcf8\ubb38)" ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "b4 c5 b8 c6 bc b9 20 00 28 00 7c c6 bd ca 20 00", "f8 bc 38 bb 29 00 0d 00" ], "seqno": 27, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 31 5d 00 00", "00 00 06 00" ], "seqno": 29, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 84568848, "height": 9497, "instance_id": 1465824589, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 15828, "x": 2835, "y": 0, "z_order": 2 }, "level": 1, "payload": [ "20 6f 73 67 10 6b 0a 05 00 00 00 00 13 0b 00 00", "d4 3d 00 00 19 25 00 00 02 00 00 00 00 00 00 00", "00 00 00 00 4d b5 5e 57 00 00 00 00" ], "seqno": 30, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9497, "initial_height": 9497, "initial_width": 15828, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 7914, "y": 4748 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 15828, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 d4 3d 00 00 19 25 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 24 00 00 ea 1e 00 00 8c 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 31, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 15828, "y": 0 }, "p2": { "x": 15828, "y": 9497 }, "p3": { "x": 0, "y": 9497 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 d4 3d 00 00 00 00 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 00 19 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 32, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 7, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 216 }, "level": 0, "payload": [ "d8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "07 00 00 00 00 00" ], "seqno": 33, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 215 ], "\uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc" ], [ [ 215, 216 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 0d 00" ], "seqno": 34, "size": 432, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 35, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 1600 }, { "chpos": 26, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 3200 }, { "chpos": 53, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 4800 }, { "chpos": 80, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 6400 }, { "chpos": 106, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 0, "y": 8000 }, { "chpos": 133, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 }, { "chpos": 181, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 31 5d 00 00", "00 00 06 00 1a 00 00 00 80 0c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "31 5d 00 00 00 00 06 00 35 00 00 00 c0 12 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 31 5d 00 00 00 00 06 00 50 00 00 00", "00 19 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 00 00 00 00 31 5d 00 00 00 00 06 00", "6a 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 31 5d 00 00", "00 00 06 00 85 00 00 00 80 25 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00 b5 00 00 00 c0 2b 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 18 a6 00 00 00 00 06 00" ], "seqno": 36, "size": 252, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 37, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 20 ], "\uc5b4\uc6b8\ub9bc (\uc624\ub978\ucabd \ubcf8\ubb38)" ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "b4 c5 b8 c6 bc b9 20 00 28 00 24 c6 78 b9 bd ca", "20 00 f8 bc 38 bb 29 00 0d 00" ], "seqno": 38, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 39, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e7 48 00 00 31 5d 00 00", "00 00 06 00" ], "seqno": 40, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 101344016, "height": 9497, "instance_id": 1468402559, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 15828, "x": 2835, "y": 0, "z_order": 5 }, "level": 1, "payload": [ "20 6f 73 67 10 63 0a 06 00 00 00 00 13 0b 00 00", "d4 3d 00 00 19 25 00 00 05 00 00 00 00 00 00 00", "00 00 00 00 7f 0b 86 57 00 00 00 00" ], "seqno": 41, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9497, "initial_height": 9497, "initial_width": 15828, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 7914, "y": 4748 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 15828, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 d4 3d 00 00 19 25 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 24 00 00 ea 1e 00 00 8c 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 42, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 15828, "y": 0 }, "p2": { "x": 15828, "y": 9497 }, "p3": { "x": 0, "y": 9497 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 d4 3d 00 00 00 00 00 00 d4 3d 00 00", "19 25 00 00 00 00 00 00 19 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 43, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 7, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 216 }, "level": 0, "payload": [ "d8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "07 00 00 00 00 80" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 215 ], "\uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc \uc5b4\uc6b8\ub9bc" ], [ [ 215, 216 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 20 00", "b4 c5 b8 c6 bc b9 20 00 b4 c5 b8 c6 bc b9 0d 00" ], "seqno": 45, "size": 432, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 46, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 1600 }, { "chpos": 26, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 3200 }, { "chpos": 53, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 4800 }, { "chpos": 80, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 6400 }, { "chpos": 106, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 23857, "x": 18663, "y": 8000 }, { "chpos": 133, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 }, { "chpos": 181, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e7 48 00 00 31 5d 00 00", "00 00 06 00 1a 00 00 00 80 0c 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e7 48 00 00", "31 5d 00 00 00 00 06 00 35 00 00 00 c0 12 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "e7 48 00 00 31 5d 00 00 00 00 06 00 50 00 00 00", "00 19 00 00 e8 03 00 00 e8 03 00 00 52 03 00 00", "58 02 00 00 e7 48 00 00 31 5d 00 00 00 00 06 00", "6a 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e7 48 00 00 31 5d 00 00", "00 00 06 00 85 00 00 00 80 25 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 00 00 00 00", "18 a6 00 00 00 00 06 00 b5 00 00 00 c0 2b 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "00 00 00 00 18 a6 00 00 00 00 06 00" ], "seqno": 47, "size": 252, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "\uc790\ub9ac\ucc28\uc9c0 (\uc67c\ucabd\uc815\ub82c)" ], [ [ 11, 19 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 ac b9 28 cc c0 c9 20 00 28 00 7c c6 bd ca", "15 c8 2c b8 29 00 0b 00 20 6f 73 67 00 00 00 00", "00 00 00 00 0b 00 0d 00" ], "seqno": 49, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9682 } ] }, "level": 1, "payload": [ "00 00 00 00 d2 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69886480, "height": 9682, "instance_id": 1465824590, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16138, "x": 2835, "y": 0, "z_order": 3 }, "level": 1, "payload": [ "20 6f 73 67 10 62 2a 04 00 00 00 00 13 0b 00 00", "0a 3f 00 00 d2 25 00 00 03 00 00 00 00 00 00 00", "00 00 00 00 4e b5 5e 57 00 00 00 00" ], "seqno": 52, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9682, "initial_height": 9682, "initial_width": 16138, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8069, "y": 4841 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16138, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 0a 3f 00 00 d2 25 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 24 00 00 85 1f 00 00 e9 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 53, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16138, "y": 0 }, "p2": { "x": 16138, "y": 9682 }, "p3": { "x": 0, "y": 9682 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 0a 3f 00 00 00 00 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 00 d2 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 54, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 55, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uc790\ub9ac\ucc28\uc9c0 (\uc624\ub978\ucabd\uc815\ub82c)" ], [ [ 12, 20 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 ac b9 28 cc c0 c9 20 00 28 00 24 c6 78 b9", "bd ca 15 c8 2c b8 29 00 0b 00 20 6f 73 67 00 00", "00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 56, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 57, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9682 } ] }, "level": 1, "payload": [ "00 00 00 00 d2 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 58, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69888528, "height": 9682, "instance_id": 1468402560, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16138, "x": 2835, "y": 0, "z_order": 6 }, "level": 1, "payload": [ "20 6f 73 67 10 6a 2a 04 00 00 00 00 13 0b 00 00", "0a 3f 00 00 d2 25 00 00 06 00 00 00 00 00 00 00", "00 00 00 00 80 0b 86 57 00 00 00 00" ], "seqno": 59, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9682, "initial_height": 9682, "initial_width": 16138, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8069, "y": 4841 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16138, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 0a 3f 00 00 d2 25 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 24 00 00 85 1f 00 00 e9 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 60, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16138, "y": 0 }, "p2": { "x": 16138, "y": 9682 }, "p3": { "x": 0, "y": 9682 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 0a 3f 00 00 00 00 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 00 d2 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 61, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 62, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uc790\ub9ac\ucc28\uc9c0 (\uac00\uc6b4\ub370\uc815\ub82c)" ], [ [ 12, 20 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 ac b9 28 cc c0 c9 20 00 28 00 00 ac b4 c6", "70 b3 15 c8 2c b8 29 00 0b 00 20 6f 73 67 00 00", "00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 63, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 64, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9682 } ] }, "level": 1, "payload": [ "00 00 00 00 d2 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 65, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69887504, "height": 9682, "instance_id": 1468402561, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16138, "x": -2835, "y": 0, "z_order": 7 }, "level": 1, "payload": [ "20 6f 73 67 10 66 2a 04 00 00 00 00 ed f4 ff ff", "0a 3f 00 00 d2 25 00 00 07 00 00 00 00 00 00 00", "00 00 00 00 81 0b 86 57 00 00 00 00" ], "seqno": 66, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9682, "initial_height": 9682, "initial_width": 16138, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8069, "y": 4841 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16138, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 0a 3f 00 00 d2 25 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 24 00 00 85 1f 00 00 e9 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 67, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16138, "y": 0 }, "p2": { "x": 16138, "y": 9682 }, "p3": { "x": 0, "y": 9682 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 0a 3f 00 00 00 00 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 00 d2 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 68, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 69, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 11 ], "\uc790\ub9ac\ucc28\uc9c0 (\uc548\ucabd\uc815\ub82c)" ], [ [ 11, 19 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 ac b9 28 cc c0 c9 20 00 28 00 48 c5 bd ca", "15 c8 2c b8 29 00 0b 00 20 6f 73 67 00 00 00 00", "00 00 00 00 0b 00 0d 00" ], "seqno": 70, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 71, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9682 } ] }, "level": 1, "payload": [ "00 00 00 00 d2 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 72, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69889552, "height": 9682, "instance_id": 1468402562, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16138, "x": 2835, "y": 0, "z_order": 8 }, "level": 1, "payload": [ "20 6f 73 67 10 6e 2a 04 00 00 00 00 13 0b 00 00", "0a 3f 00 00 d2 25 00 00 08 00 00 00 00 00 00 00", "00 00 00 00 82 0b 86 57 00 00 00 00" ], "seqno": 73, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9682, "initial_height": 9682, "initial_width": 16138, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8069, "y": 4841 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16138, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 0a 3f 00 00 d2 25 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 24 00 00 85 1f 00 00 e9 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 74, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16138, "y": 0 }, "p2": { "x": 16138, "y": 9682 }, "p3": { "x": 0, "y": 9682 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 0a 3f 00 00 00 00 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 00 d2 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 75, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 76, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 12 ], "\uc790\ub9ac\ucc28\uc9c0 (\ubc14\uae65\ucabd\uc815\ub82c)" ], [ [ 12, 20 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "90 c7 ac b9 28 cc c0 c9 20 00 28 00 14 bc 65 ae", "bd ca 15 c8 2c b8 29 00 0b 00 20 6f 73 67 00 00", "00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 77, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 78, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9682 } ] }, "level": 1, "payload": [ "00 00 00 00 d2 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 79, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69890576, "height": 9682, "instance_id": 1468402563, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16138, "x": 2835, "y": 0, "z_order": 9 }, "level": 1, "payload": [ "20 6f 73 67 10 72 2a 04 00 00 00 00 13 0b 00 00", "0a 3f 00 00 d2 25 00 00 09 00 00 00 00 00 00 00", "00 00 00 00 83 0b 86 57 00 00 00 00" ], "seqno": 80, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9682, "initial_height": 9682, "initial_width": 16138, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8069, "y": 4841 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16138, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 0a 3f 00 00 d2 25 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 24 00 00 85 1f 00 00 e9 12", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 81, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16138, "y": 0 }, "p2": { "x": 16138, "y": 9682 }, "p3": { "x": 0, "y": 9682 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 0a 3f 00 00 00 00 00 00 0a 3f 00 00", "d2 25 00 00 00 00 00 00 d2 25 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 82, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 12 }, "level": 0, "payload": [ "0c 00 00 00 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 83, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\uae00\ub4a4\ub85c" ], [ [ 3, 11 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 11, 12 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae a4 b4 5c b8 0b 00 20 6f 73 67 00 00 00 00", "00 00 00 00 0b 00 0d 00" ], "seqno": 84, "size": 24, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 85, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 86, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 71983632, "height": 9981, "instance_id": 1465824591, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16635, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 10 62 4a 04 00 00 00 00 00 00 00 00", "fb 40 00 00 fd 26 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 4f b5 5e 57 00 00 00 00" ], "seqno": 87, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9981, "initial_height": 9981, "initial_width": 16635, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8317, "y": 4990 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16635, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 fb 40 00 00 fd 26 00 00 fb 40 00 00", "fd 26 00 00 00 00 00 24 00 00 7d 20 00 00 7e 13", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 88, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16635, "y": 0 }, "p2": { "x": 16635, "y": 9981 }, "p3": { "x": 0, "y": 9981 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 fb 40 00 00 00 00 00 00 fb 40 00 00", "fd 26 00 00 00 00 00 00 fd 26 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 89, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 2147483662 }, "level": 0, "payload": [ "0e 00 00 80 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 90, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uae00 \uc55e\uc73c\ub85c" ], [ [ 5, 13 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 13, 14 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 ae 20 00 5e c5 3c c7 5c b8 0b 00 20 6f 73 67", "00 00 00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 91, "size": 28, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 4 ] ] }, "level": 1, "payload": [ "00 00 00 00 04 00 00 00" ], "seqno": 92, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 93, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74080784, "height": 8193, "instance_id": 1465824592, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 13654, "x": 7449, "y": 62, "z_order": 10 }, "level": 1, "payload": [ "20 6f 73 67 10 62 6a 04 3e 00 00 00 19 1d 00 00", "56 35 00 00 01 20 00 00 0a 00 00 00 00 00 00 00", "00 00 00 00 50 b5 5e 57 00 00 00 00" ], "seqno": 94, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 8193, "initial_height": 8193, "initial_width": 13654, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 6827, "y": 4096 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 13654, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 56 35 00 00 01 20 00 00 56 35 00 00", "01 20 00 00 00 00 00 24 00 00 ab 1a 00 00 00 10", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 95, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 13654, "y": 0 }, "p2": { "x": 13654, "y": 8193 }, "p3": { "x": 0, "y": 8193 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 56 35 00 00 00 00 00 00 56 35 00 00", "01 20 00 00 00 00 00 00 01 20 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 96, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" } ] ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017-pics.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 9, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 11, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 0b 00 00 00 09 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 2, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 12 }, "flags": 1 }, "level": 1, "payload": [ "01 00 0c 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 11 }, "flags": 1 }, "level": 1, "payload": [ "01 00 0b 00 03 00 6a 00 70 00 67 00" ], "seqno": 3, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 16, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 17, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 18, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 26, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 27, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 04 00 00 00" ], "seqno": 40, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 04 00 00 00" ], "seqno": 41, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 04 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 04 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 04 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 04 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 04 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 04 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 04 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 02 00 00 00" ], "seqno": 49, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 01 00 00 00", "00 00" ], "seqno": 51, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 01 00 00 00 00 00" ], "seqno": 52, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 01 00 00 00" ], "seqno": 53, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017-pics.hwp.formatted.xml ================================================

한글 2005 예제 파일입니다.

머리말입니다

본문 내용입니다. 본 문서는 ᄒᆞᆫ글 워드 프로세서의 파일 저장 형식 중, ᄒᆞᆫ글 2002 이후 제품에서 사용되는 ᄒᆞᆫ글 문서 파일 형식 5.0 및 ᄒᆞᆫ글 97 문서 파일 형식, HWPML에 관하여 설명한다.

A0

B0

A1

B10

B11

table2

3 2x2짜리표

가나다

다음 문단

문서는 먼저 ᄒᆞᆫ글 문서 파일 형식 5.0에 관하여 설명한 후, ᄒᆞᆫ글 97 문서 파일 형식, HWPML에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다.

미주입니다.

이건 각주이지요.

다음 페이지

================================================ FILE: tests/hwp5_tests/fixtures/sample-5017.html.d/index.xhtml ================================================ 제목입니다.

한글 2005 예제 파일입니다.

머리말입니다

본문 내용입니다. 본 문서는 ᄒᆞᆫ글 워드 프로세서의 파일 저장 형식 중, ᄒᆞᆫ글 2002 이후 제품에서 사용되는 ᄒᆞᆫ글 문서 파일 형식 5.0 및 ᄒᆞᆫ글 97 문서 파일 형식, HWPML에 관하여 설명한다.

A0

B0

A1

B10

B11

table2

3 2x2짜리표

가나다

다음 문단

문서는 먼저 ᄒᆞᆫ글 문서 파일 형식 5.0에 관하여 설명한 후, ᄒᆞᆫ글 97 문서 파일 형식, HWPML에 관하여 설명한다. 각 형식에 대한 설명은 문서 파일 형식 내의 주요한 자료 형식 및 파일 구조, 레코드 구조에 대해서 설명한다.

미주입니다.

이건 각주이지요.

다음 페이지

================================================ FILE: tests/hwp5_tests/fixtures/sample-5017.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 13*/ margin: 0pt 0pt 10pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-1 > span { line-height: 1.3; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-10 > span { line-height: 1.5; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-12 > span { line-height: 1.3; } p.parashape-13 { margin: 0pt 0pt 10pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 10pt; min-height: 1.3em; } p.parashape-14 > span { line-height: 1.3; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; font-weight: bold; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8 { color: #000000; font-weight: bold; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9 { color: #000000; font-style: italic; } span.charshape-9.lang-ko { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-en { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-cn { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-jp { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-other { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-symbol { font-family: "바탕", serif; font-size: 20pt; } span.charshape-9.lang-user { font-family: "바탕", serif; font-size: 20pt; } .borderfill-1 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-3 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 2px solid #000000; border-left: 1px solid #000000; } .borderfill-4 { border-top: 1px dashed #0000ff; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-5 { border-top: 2px solid #000000; border-right: 2px solid #000000; border-bottom: 2px solid #000000; border-left: 2px solid #000000; background-color: #99ccff; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAQAAABuBnYAAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAVSURBVAjXY2CAgP9QmoGJAQ3QRwAAg8ABDm14IFwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTEtMDVUMTU6Mzc6MzcrMDk6MDAjOvM9AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTExLTA1VDE1OjM3OjM3KzA5OjAwUmdLgQAAAABJRU5ErkJggg==); } .borderfill-6 { border-top: 1px solid #000000; border-right: 2px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; background-image: linear-gradient(0deg,#3f3f3f,#7f7f7f); background-image: -webkit-linear-gradient(0deg,#3f3f3f,#7f7f7f); background-image: -moz-linear-gradient(0deg,#3f3f3f,#7f7f7f); } ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 5, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 3, "style_id": 0, "text": 34 }, "level": 0, "payload": [ "22 00 00 00 04 00 00 00 00 00 00 03 05 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 33 ], "\ud55c\uae00 2005 \uc608\uc81c \ud30c\uc77c\uc785\ub2c8\ub2e4." ], [ [ 33, 34 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "5c d5 00 ae 20 00 32 00 30 00 30 00 35 00 20 00", "08 c6 1c c8 20 00 0c d3 7c c7 85 c7 c8 b2 e4 b2", "2e 00 0d 00" ], "seqno": 1, "size": 68, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 7 ], [ 19, 8 ], [ 23, 7 ], [ 24, 9 ], [ 26, 7 ] ] }, "level": 1, "payload": [ "00 00 00 00 07 00 00 00 13 00 00 00 08 00 00 00", "17 00 00 00 07 00 00 00 18 00 00 00 09 00 00 00", "1a 00 00 00 07 00 00 00" ], "seqno": 2, "size": 40, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 2000, "height_baseline": 1700, "height_text": 2000, "lineseg_flags": 393216, "space_below": 1200, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 d0 07 00 00 d0 07 00 00", "a4 06 00 00 b0 04 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 13, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 14, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 10, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 0a 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uba38\ub9ac\ub9d0\uc785\ub2c8\ub2e4" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "38 ba ac b9 d0 b9 85 c7 c8 b2 e4 b2 0d 00" ], "seqno": 16, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 2 ] ] }, "level": 1, "payload": [ "00 00 00 00 02 00 00 00" ], "seqno": 17, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 452, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 c4 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 18, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 19, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6152 } ] }, "level": 1, "payload": [ "00 00 00 00 08 18 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 3, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 112 }, "level": 0, "payload": [ "70 00 00 00 00 00 00 00 0d 00 01 00 03 00 00 00", "03 00 00 00 00 00" ], "seqno": 22, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 111 ], "\ubcf8\ubb38 \ub0b4\uc6a9\uc785\ub2c8\ub2e4. \ubcf8 \ubb38\uc11c\ub294 \u1112\u119e\u11ab\uae00 \uc6cc\ub4dc \ud504\ub85c\uc138\uc11c\uc758 \ud30c\uc77c \uc800\uc7a5 \ud615\uc2dd \uc911, \u1112\u119e\u11ab\uae00 2002 \uc774\ud6c4 \uc81c\ud488\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \u1112\u119e\u11ab\uae00 \ubb38\uc11c \ud30c\uc77c \ud615\uc2dd 5.0 \ubc0f \u1112\u119e\u11ab\uae00 97 \ubb38\uc11c \ud30c\uc77c \ud615\uc2dd, HWPML\uc5d0 \uad00\ud558\uc5ec \uc124\uba85\ud55c\ub2e4." ], [ [ 111, 112 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 38 bb 20 00 b4 b0 a9 c6 85 c7 c8 b2 e4 b2", "2e 00 20 00 f8 bc 20 00 38 bb 1c c1 94 b2 20 00", "3a f5 00 ae 20 00 cc c6 dc b4 20 00 04 d5 5c b8", "38 c1 1c c1 58 c7 20 00 0c d3 7c c7 20 00 00 c8", "a5 c7 20 00 15 d6 dd c2 20 00 11 c9 2c 00 20 00", "3a f5 00 ae 20 00 32 00 30 00 30 00 32 00 20 00", "74 c7 c4 d6 20 00 1c c8 88 d4 d0 c5 1c c1 20 00", "ac c0 a9 c6 18 b4 94 b2 20 00 3a f5 00 ae 20 00", "38 bb 1c c1 20 00 0c d3 7c c7 20 00 15 d6 dd c2", "20 00 35 00 2e 00 30 00 20 00 0f bc 20 00 3a f5", "00 ae 20 00 39 00 37 00 20 00 38 bb 1c c1 20 00", "0c d3 7c c7 20 00 15 d6 dd c2 2c 00 20 00 48 00", "57 00 50 00 4d 00 4c 00 d0 c5 20 00 00 ad 58 d5", "ec c5 20 00 24 c1 85 ba 5c d5 e4 b2 2e 00 0d 00" ], "seqno": 23, "size": 224, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 3, 5 ], [ 5, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 03 00 00 00 05 00 00 00", "05 00 00 00 01 00 00 00" ], "seqno": 24, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 7752 }, { "chpos": 51, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 9352 }, { "chpos": 103, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 10952 } ] }, "level": 1, "payload": [ "00 00 00 00 48 1e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 3c a0 00 00", "00 00 06 00 33 00 00 00 88 24 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 dc 05 00 00", "3c a0 00 00 00 00 06 00 67 00 00 00 c8 2a 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "dc 05 00 00 3c a0 00 00 00 00 06 00" ], "seqno": 25, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 2, "controlmask": 2048, "instance_id": 0, "linesegs": 4, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 20 }, "level": 0, "payload": [ "14 00 00 00 00 08 00 00 0d 00 01 00 02 00 00 00", "04 00 00 00 00 00" ], "seqno": 26, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "\ud45c" ], [ [ 1, 9 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 9, 11 ], "\ud45c\ub05d" ], [ [ 11, 19 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 19, 20 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "5c d4 0b 00 20 6c 62 74 00 00 00 00 00 00 00 00", "0b 00 5c d4 5d b0 0b 00 20 6c 62 74 00 00 00 00", "00 00 00 00 0b 00 0d 00" ], "seqno": 27, "size": 40, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 10, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 0a 00 00 00 05 00 00 00" ], "seqno": 28, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 4730, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 13552 }, { "chpos": 1, "height": 4730, "height_baseline": 4021, "height_text": 4730, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 15152 }, { "chpos": 9, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 20482 }, { "chpos": 11, "height": 4678, "height_baseline": 3976, "height_text": 4678, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 22082 } ] }, "level": 1, "payload": [ "00 00 00 00 f0 34 00 00 7a 12 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 3c a0 00 00", "00 00 06 00 01 00 00 00 30 3b 00 00 7a 12 00 00", "7a 12 00 00 b5 0f 00 00 58 02 00 00 dc 05 00 00", "3c a0 00 00 00 00 06 00 09 00 00 00 02 50 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "dc 05 00 00 3c a0 00 00 00 00 06 00 0b 00 00 00", "42 56 00 00 46 12 00 00 46 12 00 00 88 0f 00 00", "58 02 00 00 dc 05 00 00 3c a0 00 00 00 00 06 00" ], "seqno": 29, "size": 144, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 136979217, "height": 4164, "instance_id": 1453501933, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 40454, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 11 23 2a 08 00 00 00 00 00 00 00 00", "06 9e 00 00 44 10 00 00 00 00 00 00 1b 01 1b 01", "1b 01 1b 01 ed ad a2 56 00 00 00 00" ], "seqno": 30, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 4, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 04 00 00 00" ], "seqno": 31, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 03 4f 00 00" ], "seqno": 32, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483651 }, "level": 2, "payload": [ "03 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 33, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "A0" ], [ [ 2, 3 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "41 00 30 00 0d 00" ], "seqno": 34, "size": 6, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 35, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 36, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 3, "col": 1, "colspan": 1, "height": 282, "listflags": 40, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 28 00 00 00 01 00 00 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "03 00 03 4f 00 00" ], "seqno": 37, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483651 }, "level": 2, "payload": [ "03 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 38, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "B0" ], [ [ 2, 3 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "42 00 30 00 0d 00" ], "seqno": 39, "size": 6, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 40, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 41, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 6, "col": 0, "colspan": 1, "height": 282, "listflags": 83886144, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 40 00 00 05 00 00 01 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "06 00 03 4f 00 00" ], "seqno": 42, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483651 }, "level": 2, "payload": [ "03 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 43, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "A1" ], [ [ 2, 3 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "41 00 31 00 0d 00" ], "seqno": 44, "size": 6, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 45, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 46, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 5, "col": 1, "colspan": 1, "height": 282, "listflags": 0, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 2, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "02 00 00 00 00 00 00 00 01 00 01 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "05 00 03 4f 00 00" ], "seqno": 47, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 4 }, "level": 2, "payload": [ "04 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "B10" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "42 00 31 00 30 00 0d 00" ], "seqno": 49, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483652 }, "level": 2, "payload": [ "04 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 52, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "B11" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "42 00 31 00 31 00 0d 00" ], "seqno": 53, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 54, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 136979217, "height": 4112, "instance_id": 1455447557, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 40539, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6c 62 74 11 23 2a 08 00 00 00 00 00 00 00 00", "5b 9e 00 00 10 10 00 00 01 00 00 00 1b 01 1b 01", "1b 01 1b 01 05 5e c0 56 00 00 00 00" ], "seqno": 56, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 57, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 4112, "listflags": 16777249, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 40539, "width": 40539 }, "level": 2, "payload": [ "01 00 00 00 21 00 00 01 00 00 00 00 01 00 01 00", "5b 9e 00 00 10 10 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 5b 9e 00 00" ], "seqno": 58, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483655 }, "level": 2, "payload": [ "07 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 59, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "table2" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "74 00 61 00 62 00 6c 00 65 00 32 00 0d 00" ], "seqno": 60, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 61, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 500, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 3828, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "f4 01 00 00 58 02 00 00 00 00 00 00 f4 0e 00 00", "00 00 06 00" ], "seqno": 62, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 0d 00 01 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 63, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 64, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 65, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1500, "y": 28360 } ] }, "level": 1, "payload": [ "00 00 00 00 c8 6e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 66, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850128, "height": 2564, "instance_id": 1455447562, "margin": { "bottom": 1134, "left": 283, "right": 850, "top": 567 }, "unknown1": 0, "unknown2": 0, "width": 40454, "x": 0, "y": 0, "z_order": 3 }, "level": 1, "payload": [ "20 6c 62 74 10 23 2a 28 00 00 00 00 00 00 00 00", "06 9e 00 00 04 0a 00 00 03 00 00 00 1b 01 52 03", "37 02 6e 04 0a 5e c0 56 00 00 00 00" ], "seqno": 67, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 40454, "paragraphs": 2, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "02 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 06 9e 00 00" ], "seqno": 68, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 18 }, "level": 2, "payload": [ "12 00 00 00 00 00 04 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 69, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 17 ], " 2x2\uc9dc\ub9ac\ud45c" ], [ [ 17, 18 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 32 00 78 00 32 00 dc c9 ac b9", "5c d4 0d 00" ], "seqno": 70, "size": 36, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 71, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40452, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 04 9e 00 00", "00 00 06 00" ], "seqno": 72, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 3, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 03 00 00 00 00 00 00 00" ], "seqno": 73, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483652 }, "level": 2, "payload": [ "04 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 74, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\uac00\ub098\ub2e4" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "00 ac 98 b0 e4 b2 0d 00" ], "seqno": 75, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 76, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40452, "x": 0, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 04 9e 00 00", "00 00 06 00" ], "seqno": 77, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 78, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 03 4f 00 00" ], "seqno": 79, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 80, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 81, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 82, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 67108896, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 04 01 00 00 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 03 4f 00 00" ], "seqno": 83, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 84, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 85, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 86, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 16777248, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 01 00 00 01 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 03 4f 00 00" ], "seqno": 87, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 88, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 89, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 90, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 67108896, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20227, "width": 20227 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 04 01 00 01 00 01 00 01 00", "03 4f 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 03 4f 00 00" ], "seqno": 91, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 92, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 93, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19944, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 e8 4d 00 00", "00 00 06 00" ], "seqno": 94, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 0d 00 01 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 95, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\ub2e4\uc74c \ubb38\ub2e8" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "e4 b2 4c c7 20 00 38 bb e8 b2 0d 00" ], "seqno": 96, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 97, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 36075 } ] }, "level": 1, "payload": [ "00 00 00 00 eb 8c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 3c a0 00 00", "00 00 06 00" ], "seqno": 98, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 1 }, "level": 0, "payload": [ "01 00 00 00 00 00 00 00 0d 00 01 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 99, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 100, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 38675 } ] }, "level": 1, "payload": [ "00 00 00 00 13 97 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 3c a0 00 00", "00 00 06 00" ], "seqno": 101, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 3, "controlmask": 0, "instance_id": 0, "linesegs": 3, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 1, "text": 132 }, "level": 0, "payload": [ "84 00 00 00 00 00 00 00 0d 00 01 00 03 00 00 00", "03 00 00 00 00 00" ], "seqno": 102, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 131 ], "\ubcf8 \ubb38\uc11c\ub294 \uba3c\uc800 \u1112\u119e\u11ab\uae00 \ubb38\uc11c \ud30c\uc77c \ud615\uc2dd 5.0\uc5d0 \uad00\ud558\uc5ec \uc124\uba85\ud55c \ud6c4, \u1112\u119e\u11ab\uae00 97 \ubb38\uc11c \ud30c\uc77c \ud615\uc2dd, HWPML\uc5d0 \uad00\ud558\uc5ec \uc124\uba85\ud55c\ub2e4. \uac01 \ud615\uc2dd\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \ubb38\uc11c \ud30c\uc77c \ud615\uc2dd \ub0b4\uc758 \uc8fc\uc694\ud55c \uc790\ub8cc \ud615\uc2dd \ubc0f \ud30c\uc77c \uad6c\uc870, \ub808\ucf54\ub4dc \uad6c\uc870\uc5d0 \ub300\ud574\uc11c \uc124\uba85\ud55c\ub2e4." ], [ [ 131, 132 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bc 20 00 38 bb 1c c1 94 b2 20 00 3c ba 00 c8", "20 00 3a f5 00 ae 20 00 38 bb 1c c1 20 00 0c d3", "7c c7 20 00 15 d6 dd c2 20 00 35 00 2e 00 30 00", "d0 c5 20 00 00 ad 58 d5 ec c5 20 00 24 c1 85 ba", "5c d5 20 00 c4 d6 2c 00 20 00 3a f5 00 ae 20 00", "39 00 37 00 20 00 38 bb 1c c1 20 00 0c d3 7c c7", "20 00 15 d6 dd c2 2c 00 20 00 48 00 57 00 50 00", "4d 00 4c 00 d0 c5 20 00 00 ad 58 d5 ec c5 20 00", "24 c1 85 ba 5c d5 e4 b2 2e 00 20 00 01 ac 20 00", "15 d6 dd c2 d0 c5 20 00 00 b3 5c d5 20 00 24 c1", "85 ba 40 c7 20 00 38 bb 1c c1 20 00 0c d3 7c c7", "20 00 15 d6 dd c2 20 00 b4 b0 58 c7 20 00 fc c8", "94 c6 5c d5 20 00 90 c7 cc b8 20 00 15 d6 dd c2", "20 00 0f bc 20 00 0c d3 7c c7 20 00 6c ad 70 c8", "2c 00 20 00 08 b8 54 cf dc b4 20 00 6c ad 70 c8", "d0 c5 20 00 00 b3 74 d5 1c c1 20 00 24 c1 85 ba", "5c d5 e4 b2 2e 00 0d 00" ], "seqno": 103, "size": 264, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 2, 6 ], [ 4, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00 02 00 00 00 06 00 00 00", "04 00 00 00 01 00 00 00" ], "seqno": 104, "size": 24, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 41275 }, { "chpos": 47, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 42875 }, { "chpos": 97, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 41020, "x": 1500, "y": 44475 } ] }, "level": 1, "payload": [ "00 00 00 00 3b a1 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 dc 05 00 00 3c a0 00 00", "00 00 06 00 2f 00 00 00 7b a7 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 dc 05 00 00", "3c a0 00 00 00 00 06 00 61 00 00 00 bb ad 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "dc 05 00 00 3c a0 00 00 00 00 06 00" ], "seqno": 105, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 106, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 107, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 108, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 57375 } ] }, "level": 1, "payload": [ "00 00 00 00 1f e0 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 109, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69886480, "height": 9810, "instance_id": 1458668992, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 16350, "x": 11173, "y": 490, "z_order": 2 }, "level": 1, "payload": [ "20 6f 73 67 10 62 2a 04 ea 01 00 00 a5 2b 00 00", "de 3f 00 00 52 26 00 00 02 00 00 00 00 00 00 00", "00 00 00 00 c0 85 f1 56 00 00 00 00" ], "seqno": 110, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 9810, "initial_height": 9810, "initial_width": 16350, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 8175, "y": 4905 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 16350, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 de 3f 00 00 52 26 00 00 de 3f 00 00", "52 26 00 00 00 00 00 24 00 00 ef 1f 00 00 29 13", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 111, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 16350, "y": 0 }, "p2": { "x": 16350, "y": 9810 }, "p3": { "x": 0, "y": 9810 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 de 3f 00 00 00 00 00 00 de 3f 00 00", "52 26 00 00 00 00 00 00 52 26 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 112, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 12, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0c 00 0c 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 113, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\ubbf8\uc8fc\uc785\ub2c8\ub2e4." ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "f8 bb fc c8 85 c7 c8 b2 e4 b2 2e 00 0d 00" ], "seqno": 114, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 3 ] ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00" ], "seqno": 115, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 393216, "space_below": 272, "width": 42520, "x": 0, "y": 58975 } ] }, "level": 1, "payload": [ "00 00 00 00 5f e6 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 10 01 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 116, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 11, "text": 10 }, "level": 0, "payload": [ "0a 00 00 00 00 00 00 00 0e 00 0b 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 117, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 9 ], "\uc774\uac74 \uac01\uc8fc\uc774\uc9c0\uc694." ], [ [ 9, 10 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "74 c7 74 ac 20 00 01 ac fc c8 74 c7 c0 c9 94 c6", "2e 00 0d 00" ], "seqno": 118, "size": 20, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 3 ] ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00" ], "seqno": 119, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 900, "height_baseline": 765, "height_text": 900, "lineseg_flags": 1441792, "space_below": 272, "width": 42520, "x": 0, "y": 60147 } ] }, "level": 1, "payload": [ "00 00 00 00 f3 ea 00 00 84 03 00 00 84 03 00 00", "fd 02 00 00 10 01 00 00 00 00 00 00 18 a6 00 00", "00 00 16 00" ], "seqno": 120, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 4, "style_id": 0, "text": 2147483663 }, "level": 0, "payload": [ "0f 00 00 80 00 08 00 00 00 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 121, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\ub2e4\uc74c \ud398\uc774\uc9c0" ], [ [ 6, 14 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "e4 b2 4c c7 20 00 98 d3 74 c7 c0 c9 0b 00 20 6f", "73 67 00 00 00 00 00 00 00 00 0b 00 0d 00" ], "seqno": 122, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 123, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1200, "height_baseline": 1020, "height_text": 1200, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 b0 04 00 00 b0 04 00 00", "fc 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 124, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69886737, "height": 1200, "instance_id": 1571560625, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 1200, "x": 0, "y": 0, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 11 63 2a 04 00 00 00 00 00 00 00 00", "b0 04 00 00 b0 04 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 b1 1c ac 5d 00 00 00 00" ], "seqno": 125, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 536870912, "height": 1200, "initial_height": 1614, "initial_width": 1614, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 600, "y": 600 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.7434944237918215, "b": 0.0, "c": 0.0, "d": 0.7434944237918215, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 1200, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 4e 06 00 00 4e 06 00 00 b0 04 00 00", "b0 04 00 00 00 00 00 20 00 00 58 02 00 00 58 02", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 32 37 5e d1 b4 ca e7 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 32 37 5e d1 b4 ca e7 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 126, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 3221225472, "width": 0 }, "clip": { "bottom": 1200, "left": 0, "right": 1200, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 2, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 1614, "y": 0 }, "p2": { "x": 1614, "y": 1614 }, "p3": { "x": 0, "y": 1614 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00", "00 00 00 00 4e 06 00 00 00 00 00 00 4e 06 00 00", "4e 06 00 00 00 00 00 00 4e 06 00 00 00 00 00 00", "00 00 00 00 b0 04 00 00 b0 04 00 00 00 00 00 00", "00 00 00 00 00 00 00 02 00" ], "seqno": 127, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" } ] ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 5, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 7, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 07 00 00 00 05 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 2, "borderfills": 6, "bullets": 0, "charshapes": 10, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 15, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "06 00 00 00 0a 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0f 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 2 }, "flags": 1 }, "level": 1, "payload": [ "01 00 02 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "bindata": { "ext": "png", "storage_id": 3 }, "flags": 1 }, "level": 1, "payload": [ "01 00 03 00 03 00 70 00 6e 00 67 00" ], "seqno": 3, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 16, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 17, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 18, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 19, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 6 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 06 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 20, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 16711680, "stroke_flags": 2, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 02 01", "00 00 ff 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 21, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 6 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": 16764057, "pattern_color": 16750848, "pattern_type_flags": 1 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 1, "width_flags": 6 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 6 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 6 } }, "level": 1, "payload": [ "00 00 01 06 00 00 00 00 01 06 00 00 00 00 01 06", "00 00 00 00 01 06 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 99 cc ff 00 00 99 ff 00 01 00 00 00", "00 00 00 00" ], "seqno": 22, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "blur_center": 50, "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_gradation": { "blur": 50, "center": { "x": 100, "y": 0 }, "colors": [ 4144959, 8355711 ], "shear": 0, "type": 2 }, "fillflags": 4, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 6 }, "shape": 1, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 06 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "04 00 00 00 02 00 00 00 00 64 00 00 00 00 00 00", "00 32 00 00 00 02 00 00 00 3f 3f 3f 00 7f 7f 7f", "00 01 00 00 00 32" ], "seqno": 23, "size": 70, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 25, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 27, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 2, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 02 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 50, "en": 50, "jp": 50, "ko": 50, "other": 50, "symbol": 50, "user": 50 }, "letter_width_expansion": { "cn": 200, "en": 200, "jp": 200, "ko": 200, "other": 200, "symbol": 200, "user": 200 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 c8 c8", "c8 c8 c8 c8 c8 32 32 32 32 32 32 32 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 30, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 2000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 d0 07 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 31, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 2000, "charshapeflags": 2, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 d0 07 00 00 02 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 32, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 2000, "charshapeflags": 1, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 d0 07 00 00 01 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 33, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 35, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 36, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 37, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 256, "tabdef_id": 2 }, "level": 1, "payload": [ "00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 1 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 2000, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 d0 07 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 2000, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 1 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 d0 07 00 00", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 52, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 53, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 13, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 0d 00 01 00 00 00" ], "seqno": 54, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 03 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 04 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 05 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 06 00 01 00 00 00" ], "seqno": 58, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 07 00 01 00 00 00" ], "seqno": 59, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 08 00 01 00 00 00" ], "seqno": 60, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 09 00 01 00 00 00" ], "seqno": 61, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 62, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0a 00 02 00 00 00" ], "seqno": 63, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 01 00 03 00", "00 00" ], "seqno": 64, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 01 00 03 00 00 00" ], "seqno": 65, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 00 00 04 00 00 00" ], "seqno": 66, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/sample-5017.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapecomponent-rect-fill.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapecomponent-rect-fill.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/shapecomponent-rect-fill.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489276, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 0, "y": 94, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 5e 00 00 00 00 00 00 00", "a4 0b 00 00 27 0b 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 7c 0a 4e 7c 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 13, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 14, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 16, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 17, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 18, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489277, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 1417, "y": 1511, "z_order": 2 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 e7 05 00 00 89 05 00 00", "a4 0b 00 00 27 0b 00 00 02 00 00 00 00 00 00 00", "00 00 00 00 7d 0a 4e 7c 00 00 00 00" ], "seqno": 19, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_colorpattern": { "background_color": 16744255, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fill_flags": 256, "fill_shape": 0, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 01 00 00 00 3f 7f ff 00 00 00 00 00 ff ff ff", "ff 00 00 00 00" ], "seqno": 20, "size": 229, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 21, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 22, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 23, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 24, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 25, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489278, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 2834, "y": 2928, "z_order": 3 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 70 0b 00 00 12 0b 00 00", "a4 0b 00 00 27 0b 00 00 03 00 00 00 00 00 00 00", "00 00 00 00 7e 0a 4e 7c 00 00 00 00" ], "seqno": 26, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_blur_center": 50, "fill_flags": 1024, "fill_gradation": { "blur": 50, "center": { "x": 0, "y": 0 }, "colors": [ 16744255, 0 ], "shear": 90, "type": 1 }, "fill_shape": 1, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 04 00 00 00 01 5a 00 00 00 00 00 00 00 00 00", "00 00 32 00 00 00 02 00 00 00 3f 7f ff 00 00 00", "00 00 01 00 00 00 32" ], "seqno": 27, "size": 247, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 28, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 29, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 30, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 31, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 32, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489279, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 4251, "y": 4345, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 f9 10 00 00 9b 10 00 00", "a4 0b 00 00 27 0b 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 7f 0a 4e 7c 00 00 00 00" ], "seqno": 33, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 512, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fill_shape": 0, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 02 00 00 00 05 00 00 00 01 00 00 00 00 00" ], "seqno": 34, "size": 223, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 35, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 37, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489280, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 5668, "y": 5762, "z_order": 5 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 82 16 00 00 24 16 00 00", "a4 0b 00 00 27 0b 00 00 05 00 00 00 00 00 00 00", "00 00 00 00 80 0a 4e 7c 00 00 00 00" ], "seqno": 40, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_colorpattern": { "background_color": 16744255, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fill_flags": 768, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fill_shape": 0, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 03 00 00 00 3f 7f ff 00 00 00 00 00 ff ff ff", "ff 05 00 00 00 01 00 00 00 00 00" ], "seqno": 41, "size": 235, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 42, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 43, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 44, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 45, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 46, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 74072328, "height": 2855, "instance_id": 2085489275, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2980, "x": 7085, "y": 7179, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 08 41 6a 04 0b 1c 00 00 ad 1b 00 00", "a4 0b 00 00 27 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 7b 0a 4e 7c 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_blur_center": 50, "fill_flags": 1536, "fill_gradation": { "blur": 50, "center": { "x": 0, "y": 0 }, "colors": [ 16744255, 0 ], "shear": 90, "type": 1 }, "fill_image": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0, "flags": 5 }, "fill_shape": 1, "flags": 0, "height": 2855, "initial_height": 2855, "initial_width": 2980, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 1490, "y": 1427 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 2980, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 a4 0b 00 00 27 0b 00 00 a4 0b 00 00", "27 0b 00 00 00 00 00 00 00 00 d2 05 00 00 93 05", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 06 00 00 00 01 5a 00 00 00 00 00 00 00 00 00", "00 00 32 00 00 00 02 00 00 00 3f 7f ff 00 00 00", "00 00 05 00 00 00 01 00 01 00 00 00 32" ], "seqno": 48, "size": 253, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 2980, "y": 0 }, "p2": { "x": 2980, "y": 2855 }, "p3": { "x": 0, "y": 2855 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 a4 0b 00 00 00 00 00", "00 a4 0b 00 00 27 0b 00 00 00 00 00 00 27 0b 00", "00" ], "seqno": 49, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapecomponent-rect-fill.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 8, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 5, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 05 00 00 00 08 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 1, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 1 }, "flags": 1 }, "level": 1, "payload": [ "01 00 01 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 3, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 5, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 6, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 7, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 8, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 9, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 10, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 11, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 12, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 13, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 14, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 15, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 16, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 39, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 40, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 48, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 50, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapecomponent-rect-fill.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapecontainer-2.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapecontainer-2.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: center; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-5 { color: #000000; } span.charshape-5.lang-ko { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-en { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-cn { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-jp { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-other { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-symbol { font-family: "-파랑새M", serif; font-size: 20pt; } span.charshape-5.lang-user { font-family: "-파랑새M", serif; font-size: 20pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/shapecontainer-2.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483673 }, "level": 0, "payload": [ "19 00 00 80 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 74073352, "height": 58392, "instance_id": 2052024596, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 59528, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 08 45 6a 04 00 00 00 00 00 00 00 00", "88 e8 00 00 18 e4 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 14 69 4f 7a 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$con", "chid0": "$con", "controls": [ "$rec", "$pic", "$con" ], "flags": 524288, "height": 58392, "initial_height": 58392, "initial_width": 59528, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 29764, "y": 29196 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 59528, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "6e 6f 63 24 6e 6f 63 24 00 00 00 00 00 00 00 00", "00 00 01 00 88 e8 00 00 18 e4 00 00 88 e8 00 00", "18 e4 00 00 00 00 08 00 00 00 44 74 00 00 0c 72", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 03 00 63 65 72 24 63 69 70 24 6e 6f", "63 24" ], "seqno": 13, "size": 210, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438208, "width": 34 }, "chid": "$rec", "fill_colorpattern": { "background_color": 7895160, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fill_flags": 256, "fill_shape": 0, "flags": 524288, "height": 57785, "initial_height": 8504, "initial_width": 8504, "level_in_group": 1, "local_version": 1, "rotation_center": { "x": 210, "y": 28892 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.04950611476952023, "b": 0.0, "c": 0.0, "d": 6.795037629350895, "e": 0.0, "f": 550.0 } } ], "scalerotations_count": 2, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 12331.0, "f": 57.0 }, "unknown": 0, "unknown1": 0, "width": 421, "x_in_group": 12331, "y_in_group": 57 }, "level": 3, "payload": [ "63 65 72 24 2b 30 00 00 39 00 00 00 01 00 01 00", "38 21 00 00 38 21 00 00 a5 01 00 00 b9 e1 00 00", "00 00 08 00 00 00 d2 00 00 00 dc 70 00 00 02 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 80 15 c8 40 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 80 4c 40", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "8a 33 c6 8f dd 58 a9 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "19 9b 24 58 1e 2e 1b 40 00 00 00 00 00 30 81 40", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 22 00 00 00 40 00 00 d1 00 01 00 00", "00 78 78 78 00 00 00 00 00 ff ff ff ff 00 00 00", "00" ], "seqno": 14, "size": 321, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 15, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "angle": 0, "chid": "$pic", "flags": 604504064, "height": 3684, "initial_height": 6300, "initial_width": 45899, "level_in_group": 1, "local_version": 1, "rotation_center": { "x": 29764, "y": 1842 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.2969345737379898, "b": 0.0, "c": 0.0, "d": 0.5849206349206348, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 2, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 312.0 }, "width": 59527, "x_in_group": 0, "y_in_group": 312 }, "level": 3, "payload": [ "63 69 70 24 00 00 00 00 38 01 00 00 01 00 01 00", "4b b3 00 00 9c 18 00 00 87 e8 00 00 64 0e 00 00", "00 00 08 24 00 00 44 74 00 00 32 07 00 00 02 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 80 73 40", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "14 1a b4 77 3e c0 f4 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "7a ab b7 7a ab b7 e2 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 288, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 6300, "left": 0, "right": 93000, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 45899, "y": 0 }, "p2": { "x": 45899, "y": 6300 }, "p3": { "x": 0, "y": 6300 } } }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 4b b3 00 00 00 00 00 00 4b b3 00 00", "9c 18 00 00 00 00 00 00 9c 18 00 00 00 00 00 00", "00 00 00 00 48 6b 01 00 9c 18 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 17, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "angle": 0, "chid": "$con", "controls": [ "$rec", "$rec" ], "flags": 589824, "height": 3869, "initial_height": 3869, "initial_width": 5010, "level_in_group": 1, "local_version": 1, "rotation_center": { "x": 2505, "y": 1934 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 2, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 9071.0, "f": 0.0 }, "width": 5010, "x_in_group": 9071, "y_in_group": 0 }, "level": 3, "payload": [ "6e 6f 63 24 6f 23 00 00 00 00 00 00 01 00 01 00", "92 13 00 00 1d 0f 00 00 92 13 00 00 1d 0f 00 00", "00 00 09 00 00 00 c9 09 00 00 8e 07 00 00 02 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 80 b7 c1 40 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "02 00 63 65 72 24 63 65 72 24" ], "seqno": 18, "size": 298, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438208, "width": 34 }, "chid": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 17301504, "height": 8504, "initial_height": 8504, "initial_width": 8504, "level_in_group": 2, "local_version": 1, "rotation_center": { "x": 1401, "y": 1269 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.3294920037629351, "b": 0.0, "c": 0.0, "d": 0.298447789275635, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 3, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 9071.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 9071, "y_in_group": 0 }, "level": 4, "payload": [ "63 65 72 24 6f 23 00 00 00 00 00 00 02 00 01 00", "38 21 00 00 38 21 00 00 38 21 00 00 38 21 00 00", "00 00 08 01 00 00 79 05 00 00 f5 04 00 00 03 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 80 b7 c1 40 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "e2 23 1d a1 65 16 d5 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "88 26 a0 c1 c4 19 d3 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 22 00 00 00 40 00 00 d1 00 00 00 00", "00 00 00 00 00" ], "seqno": 19, "size": 405, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 2802, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "paragraphs": 1, "unknown1": 0 }, "level": 5, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00", "f2 0a 00 00" ], "seqno": 20, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483650 }, "level": 5, "payload": [ "02 00 00 80 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "\ubaa9" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 6, "payload": [ "a9 ba 0d 00" ], "seqno": 22, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 6, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 2000, "height_baseline": 1700, "height_text": 2000, "lineseg_flags": 393216, "space_below": 1200, "width": 2800, "x": 0, "y": 0 } ] }, "level": 6, "payload": [ "00 00 00 00 00 00 00 00 d0 07 00 00 d0 07 00 00", "a4 06 00 00 b0 04 00 00 00 00 00 00 f0 0a 00 00", "00 00 06 00" ], "seqno": 24, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 5, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 25, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438208, "width": 34 }, "chid": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 17301504, "height": 8504, "initial_height": 8504, "initial_width": 8504, "level_in_group": 2, "local_version": 1, "rotation_center": { "x": 1401, "y": 1269 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } }, { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 0.32949200376293514, "b": 0.0, "c": 0.0, "d": 0.298447789275635, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 3, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 11279.0, "f": 1331.0 }, "unknown": 0, "unknown1": 0, "width": 8504, "x_in_group": 11279, "y_in_group": 1331 }, "level": 4, "payload": [ "63 65 72 24 0f 2c 00 00 33 05 00 00 02 00 01 00", "38 21 00 00 38 21 00 00 38 21 00 00 38 21 00 00", "00 00 08 01 00 00 79 05 00 00 f5 04 00 00 03 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 80 07 c6 40 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 cc 94 40", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "e3 23 1d a1 65 16 d5 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "88 26 a0 c1 c4 19 d3 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00", "00 00 00 00 22 00 00 00 40 00 00 d1 00 00 00 00", "00 00 00 00 00" ], "seqno": 26, "size": 405, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 2802, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "paragraphs": 1, "unknown1": 0 }, "level": 5, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00", "f2 0a 00 00" ], "seqno": 27, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483650 }, "level": 5, "payload": [ "02 00 00 80 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "\ucc28" ], [ [ 1, 2 ], { "code": 13 } ] ] }, "level": 6, "payload": [ "28 cc 0d 00" ], "seqno": 29, "size": 4, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 6, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 2000, "height_baseline": 1700, "height_text": 2000, "lineseg_flags": 393216, "space_below": 1200, "width": 2800, "x": 0, "y": 0 } ] }, "level": 6, "payload": [ "00 00 00 00 00 00 00 00 d0 07 00 00 d0 07 00 00", "a4 06 00 00 b0 04 00 00 00 00 00 00 f0 0a 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 8504, "y": 0 }, "p2": { "x": 8504, "y": 8504 }, "p3": { "x": 0, "y": 8504 }, "round": 0 }, "level": 5, "payload": [ "00 00 00 00 00 00 00 00 00 38 21 00 00 00 00 00", "00 38 21 00 00 38 21 00 00 00 00 00 00 38 21 00", "00" ], "seqno": 32, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapecontainer-2.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 16, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 10 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 1, "borderfills": 2, "bullets": 0, "charshapes": 6, "cn_fonts": 3, "en_fonts": 3, "jp_fonts": 3, "ko_fonts": 3, "memoshapes": 0, "numberings": 1, "other_fonts": 3, "parashapes": 13, "styles": 14, "symbol_fonts": 3, "tabdefs": 3, "user_fonts": 3 }, "level": 0, "payload": [ "01 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00", "03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00", "02 00 00 00 06 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0d 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 1 }, "flags": 1 }, "level": 1, "payload": [ "01 00 01 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 3, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 5, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 8, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 9, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 10, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 11, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 14, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 15, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 16, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 17, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 18, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 19, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 20, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 21, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 22, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "alternate_font": { "kind": 1, "name": "\ud55c\ucef4\ubc14\ud0d5" }, "flags": 193, "name": "-\ud30c\ub791\uc0c8M", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 4, "serif_style": 3, "stroke_variation": 1, "weight": 5, "x_height": 1 } }, "level": 1, "payload": [ "c1 05 00 2d 00 0c d3 91 b7 c8 c0 4d 00 01 04 00", "5c d5 f4 ce 14 bc d5 d0 02 03 05 04 00 01 01 01", "01 01" ], "seqno": 23, "size": 34, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 24, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 25, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 27, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 30, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 2000, "charshapeflags": 0, "font_face": { "cn": 2, "en": 2, "jp": 2, "ko": 2, "other": 2, "symbol": 2, "user": 2 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "02 00 02 00 02 00 02 00 02 00 02 00 02 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 d0 07 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 31, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 33, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 34, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 35, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 140, "tabdef_id": 0 }, "level": 1, "payload": [ "8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 51, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 52, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 53, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 58, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 59, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 60, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 61, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 62, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapecontainer-2.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapeline.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapeline.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/shapeline.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483681 }, "level": 0, "payload": [ "21 00 00 80 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 32 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 2050, "instance_id": 1807778960, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 2100, "x": 9350, "y": 10850, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 62 2a 00 00 86 24 00 00", "34 08 00 00 02 08 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 90 84 c0 6b 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$lin", "chid0": "$lin", "flags": 0, "height": 2050, "initial_height": 2050, "initial_width": 2100, "level_in_group": 0, "line": { "color": 0, "flags": 3506438209, "width": 33 }, "local_version": 1, "rotation_center": { "x": 1050, "y": 1025 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 2100, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "6e 69 6c 24 6e 69 6c 24 00 00 00 00 00 00 00 00", "00 00 01 00 34 08 00 00 02 08 00 00 34 08 00 00", "02 08 00 00 00 00 00 00 00 00 1a 04 00 00 01 04", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 13, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent", "unparsed": [ "00 00 00 00 00 00 00 00 00" ] }, { "content": { "attr": 0, "p0": { "x": 0, "y": 0 }, "p1": { "x": 2100, "y": 2050 } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 34 08 00 00 02 08 00 00", "00 00 00 00" ], "seqno": 14, "size": 20, "tagid": 78, "tagname": "HWPTAG_SHAPE_COMPONENT_LINE", "type": "ShapeLine", "unparsed": [ "00 00" ] }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 2150, "instance_id": 1807778961, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 14800, "x": 9650, "y": 14500, "z_order": 5 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 a4 38 00 00 b2 25 00 00", "d0 39 00 00 66 08 00 00 05 00 00 00 00 00 00 00", "00 00 00 00 91 84 c0 6b 00 00 00 00" ], "seqno": 15, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$lin", "chid0": "$lin", "flags": 0, "height": 2150, "initial_height": 2350, "initial_width": 2400, "level_in_group": 0, "line": { "color": 16750848, "flags": 3506438209, "width": 850 }, "local_version": 1, "rotation_center": { "x": 7400, "y": 1075 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 6.166666666666667, "b": 0.0, "c": 0.0, "d": 0.9148936170212766, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 14800, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "6e 69 6c 24 6e 69 6c 24 00 00 00 00 00 00 00 00", "00 00 01 00 60 09 00 00 2e 09 00 00 d0 39 00 00", "66 08 00 00 00 00 00 00 00 00 e8 1c 00 00 33 04", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 ab aa aa aa aa aa 18 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 f5 9d 8d fa ce 46 ed 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 99 ff 00 52 03 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent", "unparsed": [ "00 00 00 00 00 00 00 00 00" ] }, { "content": { "attr": 0, "p0": { "x": 0, "y": 0 }, "p1": { "x": 2400, "y": 2350 } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 60 09 00 00 2e 09 00 00", "00 00 00 00" ], "seqno": 17, "size": 20, "tagid": 78, "tagname": "HWPTAG_SHAPE_COMPONENT_LINE", "type": "ShapeLine", "unparsed": [ "00 00" ] } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapeline.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 24, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 18 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapeline.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapepict-scaled.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/shapepict-scaled.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/shapepict-scaled.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 22500 } ] }, "level": 1, "payload": [ "00 00 00 00 e4 57 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 69886480, "height": 22500, "instance_id": 2052024670, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 37500, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6f 73 67 10 62 2a 04 00 00 00 00 00 00 00 00", "7c 92 00 00 e4 57 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 5e 69 4f 7a 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 22500, "initial_height": 3413, "initial_width": 5689, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 18750, "y": 11250 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 6.591668131481807, "b": 0.0, "c": 0.0, "d": 6.592440668033988, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 37500, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 39 16 00 00 55 0d 00 00 7c 92 00 00", "e4 57 00 00 00 00 00 24 00 00 3e 49 00 00 f2 2b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 fc 32 2b 40 de 5d 1a 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 01 1b 38 c4 a8 5e 1a 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 13, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 5689, "y": 0 }, "p2": { "x": 5689, "y": 3413 }, "p3": { "x": 0, "y": 3413 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 39 16 00 00 00 00 00 00 39 16 00 00", "55 0d 00 00 00 00 00 00 55 0d 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 14, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 4, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 08 00 00 01 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 16, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 17, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11250 } ] }, "level": 1, "payload": [ "00 00 00 00 f2 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 18, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "gso ", "description": "", "flags": 69886480, "height": 11250, "instance_id": 2052024671, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 18750, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 10 62 2a 04 00 00 00 00 00 00 00 00", "3e 49 00 00 f2 2b 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 5f 69 4f 7a 00 00 00 00" ], "seqno": 19, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "chid": "$pic", "chid0": "$pic", "flags": 603979776, "height": 11250, "initial_height": 3413, "initial_width": 5689, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 9375, "y": 5625 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 3.2958340657409035, "b": 0.0, "c": 0.0, "d": 3.296220334016994, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "width": 18750, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 69 70 24 63 69 70 24 00 00 00 00 00 00 00 00", "00 00 01 00 39 16 00 00 55 0d 00 00 3e 49 00 00", "f2 2b 00 00 00 00 00 24 00 00 9f 24 00 00 f9 15", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 fc 32 2b 40 de 5d 0a 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 01 1b 38 c4 a8 5e 0a 40 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00" ], "seqno": 20, "size": 196, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "border": { "color": 0, "flags": 0, "width": 0 }, "clip": { "bottom": 22500, "left": 0, "right": 37500, "top": 0 }, "padding": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "picture": { "bindata_id": 1, "brightness": 0, "contrast": 0, "effect": 0 }, "rect": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 5689, "y": 0 }, "p2": { "x": 5689, "y": 3413 }, "p3": { "x": 0, "y": 3413 } } }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 39 16 00 00 00 00 00 00 39 16 00 00", "55 0d 00 00 00 00 00 00 55 0d 00 00 00 00 00 00", "00 00 00 00 7c 92 00 00 e4 57 00 00 00 00 00 00", "00 00 00 00 00 00 00 01 00" ], "seqno": 21, "size": 73, "tagid": 85, "tagname": "HWPTAG_SHAPE_COMPONENT_PICTURE", "type": "ShapePicture" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapepict-scaled.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 1, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 01 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 1, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "bindata": { "ext": "jpg", "storage_id": 2 }, "flags": 1 }, "level": 1, "payload": [ "01 00 02 00 03 00 6a 00 70 00 67 00" ], "seqno": 2, "size": 12, "tagid": 18, "tagname": "HWPTAG_BIN_DATA", "type": "BinData" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 3, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 4, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 5, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 6, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 7, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 8, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 9, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 10, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 11, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 12, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 13, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 14, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 15, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 16, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 39, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 40, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 48, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 50, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shapepict-scaled.hwp.formatted.xml ================================================

글 상자

================================================ FILE: tests/hwp5_tests/fixtures/shaperect.html.d/index.xhtml ================================================

글 상자

================================================ FILE: tests/hwp5_tests/fixtures/shaperect.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/shaperect.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483697 }, "level": 0, "payload": [ "31 00 00 80 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 32 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 32, 40 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 40, 48 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 48, 49 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 98, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 8214, "instance_id": 1732707053, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 11865, "x": 11054, "y": 11468, "z_order": 6 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 cc 2c 00 00 2e 2b 00 00", "59 2e 00 00 16 20 00 00 06 00 00 00 00 00 00 00", "00 00 00 00 ed 02 47 67 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438208, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_colorpattern": { "background_color": 16764006, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fill_flags": 256, "fill_shape": 0, "flags": 0, "height": 8214, "initial_height": 8214, "initial_width": 11865, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 5932, "y": 4107 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 11865, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 59 2e 00 00 16 20 00 00 59 2e 00 00", "16 20 00 00 00 00 00 00 00 00 2c 17 00 00 0b 10", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 40 00 00 d1", "00 01 00 00 00 66 cc ff 00 00 00 00 00 ff ff ff", "ff 00 00 00 00" ], "seqno": 13, "size": 229, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11865, "y": 0 }, "p2": { "x": 11865, "y": 8214 }, "p3": { "x": 0, "y": 8214 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 59 2e 00 00 00 00 00", "00 59 2e 00 00 16 20 00 00 00 00 00 00 16 20 00", "00" ], "seqno": 14, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 3450, "instance_id": 1807778956, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 20200, "x": 11250, "y": 20850, "z_order": 1 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 72 51 00 00 f2 2b 00 00", "e8 4e 00 00 7a 0d 00 00 01 00 00 00 00 00 00 00", "00 00 00 00 8c 84 c0 6b 00 00 00 00" ], "seqno": 15, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438210, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_blur_center": 52, "fill_flags": 1024, "fill_gradation": { "blur": 51, "center": { "x": 1, "y": 2 }, "colors": [ 16777215, 1118481 ], "shear": 90, "type": 1 }, "fill_shape": 1, "flags": 16777216, "height": 3450, "initial_height": 3450, "initial_width": 20200, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 10100, "y": 1725 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 20200, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 e8 4e 00 00 7a 0d 00 00 e8 4e 00 00", "7a 0d 00 00 00 00 00 01 00 00 74 27 00 00 bd 06", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 42 00 00 d1", "00 04 00 00 00 01 5a 00 00 00 01 00 00 00 02 00", "00 00 33 00 00 00 02 00 00 00 ff ff ff 00 11 11", "11 00 01 00 00 00 34" ], "seqno": 16, "size": 247, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 20200, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "e8 4e 00 00" ], "seqno": 17, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483653 }, "level": 3, "payload": [ "05 00 00 80 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 18, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uae00 \uc0c1\uc790" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "00 ae 20 00 c1 c0 90 c7 0d 00" ], "seqno": 19, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 19632, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 b0 4c 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 20200, "y": 0 }, "p2": { "x": 20200, "y": 3450 }, "p3": { "x": 0, "y": 3450 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 e8 4e 00 00 00 00 00", "00 e8 4e 00 00 7a 0d 00 00 00 00 00 00 7a 0d 00", "00" ], "seqno": 22, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 3750, "instance_id": 1807778962, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 9900, "x": 11700, "y": 25150, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 3e 62 00 00 b4 2d 00 00", "ac 26 00 00 a6 0e 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 92 84 c0 6b 00 00 00 00" ], "seqno": 23, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438211, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 0, "height": 3750, "initial_height": 3750, "initial_width": 9900, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 4950, "y": 1875 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 9900, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 ac 26 00 00 a6 0e 00 00 ac 26 00 00", "a6 0e 00 00 00 00 00 00 00 00 56 13 00 00 53 07", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 43 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 24, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 9900, "y": 0 }, "p2": { "x": 9900, "y": 3750 }, "p3": { "x": 0, "y": 3750 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 ac 26 00 00 00 00 00", "00 ac 26 00 00 a6 0e 00 00 00 00 00 00 a6 0e 00", "00" ], "seqno": 25, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" }, { "content": { "chid": "gso ", "description": "", "flags": 74072064, "height": 6100, "instance_id": 1807778963, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 11700, "x": 11650, "y": 30150, "z_order": 5 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 04 c6 75 00 00 82 2d 00 00", "b4 2d 00 00 d4 17 00 00 05 00 00 00 00 00 00 00", "00 00 00 00 93 84 c0 6b 00 00 00 00" ], "seqno": 26, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "angle": 0, "border": { "color": 3342591, "flags": 3506438212, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_colorpattern": { "background_color": 16777215, "pattern_color": 0, "pattern_type_flags": 5 }, "fill_flags": 256, "fill_shape": 0, "flags": 0, "height": 6100, "initial_height": 6100, "initial_width": 11700, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 5850, "y": 3050 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 11700, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 b4 2d 00 00 d4 17 00 00 b4 2d 00 00", "d4 17 00 00 00 00 00 00 00 00 da 16 00 00 ea 0b", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 ff 00 33 00 21 00 00 00 44 00 00 d1", "00 01 00 00 00 ff ff ff 00 00 00 00 00 05 00 00", "00 00 00 00 00" ], "seqno": 27, "size": 229, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11700, "y": 0 }, "p2": { "x": 11700, "y": 6100 }, "p3": { "x": 0, "y": 6100 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 b4 2d 00 00 00 00 00", "00 b4 2d 00 00 d4 17 00 00 00 00 00 00 d4 17 00", "00" ], "seqno": 28, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shaperect.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 40, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 28 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 13, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0d 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 39, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 40, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 48, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 50, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/shaperect.hwp.formatted.xml ================================================

LLL

RRR

CCC

MMM

LLL

EE

III

================================================ FILE: tests/hwp5_tests/fixtures/tabdef.html.d/index.xhtml ================================================ A

L L L

R R R

C C C

M M M

L L L

E E

I I I

================================================ FILE: tests/hwp5_tests/fixtures/tabdef.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } p.parashape-13 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } p.parashape-14 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-14 > span { line-height: 1.6; } p.parashape-15 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-15 > span { line-height: 1.6; } p.parashape-16 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-16 > span { line-height: 1.6; } p.parashape-17 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-17 > span { line-height: 1.6; } p.parashape-18 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-18 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/tabdef.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 516, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 41 }, "level": 0, "payload": [ "29 00 00 00 04 02 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 24, 32 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 32, 40 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 40, 41 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "09 00 a0 0f 00 00 00 01 00 00 00 00 00 00 09 00", "09 00 a0 0f 00 00 00 01 00 00 00 00 00 00 09 00", "09 00 a0 0f 00 00 00 01 00 00 00 00 00 00 09 00", "0d 00" ], "seqno": 1, "size": 82, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 13, "rangetags": 0, "split": 0, "style_id": 0, "text": 28 }, "level": 0, "payload": [ "1c 00 00 00 00 02 00 00 0d 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2000 } } ], [ [ 8, 9 ], "L" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 1360 } } ], [ [ 17, 18 ], "L" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 1360 } } ], [ [ 26, 27 ], "L" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 d0 07 00 00 00 01 00 00 00 00 00 00 09 00", "4c 00 09 00 50 05 00 00 00 01 00 00 00 00 00 00", "09 00 4c 00 09 00 50 05 00 00 00 01 00 00 00 00", "00 00 09 00 4c 00 0d 00" ], "seqno": 13, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 28 }, "level": 0, "payload": [ "1c 00 00 00 00 02 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 2, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2328 } } ], [ [ 8, 9 ], "R" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 2, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2328 } } ], [ [ 17, 18 ], "R" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 2, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2328 } } ], [ [ 26, 27 ], "R" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 18 09 00 00 00 02 00 00 00 00 00 00 09 00", "52 00 09 00 18 09 00 00 00 02 00 00 00 00 00 00", "09 00 52 00 09 00 18 09 00 00 00 02 00 00 00 00", "00 00 09 00 52 00 0d 00" ], "seqno": 17, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 14, "rangetags": 0, "split": 0, "style_id": 0, "text": 28 }, "level": 0, "payload": [ "1c 00 00 00 00 02 00 00 0e 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 3, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2646 } } ], [ [ 8, 9 ], "C" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 3, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2292 } } ], [ [ 17, 18 ], "C" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 3, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2292 } } ], [ [ 26, 27 ], "C" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 56 0a 00 00 00 03 00 00 00 00 00 00 09 00", "43 00 09 00 f4 08 00 00 00 03 00 00 00 00 00 00", "09 00 43 00 09 00 f4 08 00 00 00 03 00 00 00 00", "00 00 09 00 43 00 0d 00" ], "seqno": 21, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 15, "rangetags": 0, "split": 0, "style_id": 0, "text": 28 }, "level": 0, "payload": [ "1c 00 00 00 00 02 00 00 0f 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 4, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2104 } } ], [ [ 8, 9 ], "M" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 4, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2104 } } ], [ [ 17, 18 ], "M" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 4, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 2104 } } ], [ [ 26, 27 ], "M" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 38 08 00 00 00 04 00 00 00 00 00 00 09 00", "4d 00 09 00 38 08 00 00 00 04 00 00 00 00 00 00", "09 00 4d 00 09 00 38 08 00 00 00 04 00 00 00 00", "00 00 09 00 4d 00 0d 00" ], "seqno": 25, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 16, "rangetags": 0, "split": 0, "style_id": 0, "text": 28 }, "level": 0, "payload": [ "1c 00 00 00 00 02 00 00 10 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 3, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 8, 9 ], "L" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 3, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 3360 } } ], [ [ 17, 18 ], "L" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 3, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 3360 } } ], [ [ 26, 27 ], "L" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 a0 0f 00 00 03 01 00 00 00 00 00 00 09 00", "4c 00 09 00 20 0d 00 00 03 01 00 00 00 00 00 00", "09 00 4c 00 09 00 20 0d 00 00 03 01 00 00 00 00", "00 00 09 00 4c 00 0d 00" ], "seqno": 29, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 17, "rangetags": 0, "split": 0, "style_id": 0, "text": 19 }, "level": 0, "payload": [ "13 00 00 00 00 02 00 00 11 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 8, 9 ], "E" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 3328 } } ], [ [ 17, 18 ], "E" ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 a0 0f 00 00 00 01 00 00 00 00 00 00 09 00", "45 00 09 00 00 0d 00 00 00 01 00 00 00 00 00 00", "09 00 45 00 0d 00" ], "seqno": 33, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 512, "instance_id": 0, "linesegs": 1, "parashape_id": 18, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483676 }, "level": 0, "payload": [ "1c 00 00 80 00 02 00 00 12 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 4000 } } ], [ [ 8, 9 ], "I" ], [ [ 9, 17 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 1, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 3672 } } ], [ [ 17, 18 ], "I" ], [ [ 18, 26 ], { "code": 9, "param": { "unknown0": 0, "unknown1": 2, "unknown2": "\u0000\u0000\u0000\u0000\u0000\u0000", "width": 33864 } } ], [ [ 26, 27 ], "I" ], [ [ 27, 28 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "09 00 a0 0f 00 00 00 01 00 00 00 00 00 00 09 00", "49 00 09 00 58 0e 00 00 00 01 00 00 00 00 00 00", "09 00 49 00 09 00 48 84 00 00 00 02 00 00 00 00", "00 00 09 00 49 00 0d 00" ], "seqno": 37, "size": 56, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/tabdef.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 27, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 1, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 01 00 00 00 1b 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 19, "styles": 14, "symbol_fonts": 2, "tabdefs": 10, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 0a 00 00 00 01 00 00 00", "00 00 00 00 13 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 0, "tabs": [ { "flags": 1, "pos": 6000 }, { "flags": 1, "pos": 12000 }, { "flags": 1, "pos": 18000 } ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00 70 17 00 00 01 00 00 00", "e0 2e 00 00 01 00 00 00 50 46 00 00 01 00 00 00" ], "seqno": 25, "size": 32, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 0, "tabs": [ { "flags": 0, "pos": 4000 }, { "flags": 0, "pos": 8000 }, { "flags": 0, "pos": 12000 } ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00 a0 0f 00 00 00 00 00 00", "40 1f 00 00 00 00 00 00 e0 2e 00 00 00 00 00 00" ], "seqno": 26, "size": 32, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 0, "tabs": [ { "flags": 2, "pos": 6000 }, { "flags": 2, "pos": 12000 }, { "flags": 2, "pos": 18000 } ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00 70 17 00 00 02 00 00 00", "e0 2e 00 00 02 00 00 00 50 46 00 00 02 00 00 00" ], "seqno": 27, "size": 32, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 0, "tabs": [ { "flags": 3, "pos": 6000 }, { "flags": 3, "pos": 12000 }, { "flags": 3, "pos": 18000 } ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00 70 17 00 00 03 00 00 00", "e0 2e 00 00 03 00 00 00 50 46 00 00 03 00 00 00" ], "seqno": 28, "size": 32, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 0, "tabs": [ { "flags": 768, "pos": 8000 }, { "flags": 768, "pos": 16000 }, { "flags": 768, "pos": 24000 } ] }, "level": 1, "payload": [ "00 00 00 00 03 00 00 00 40 1f 00 00 00 03 00 00", "80 3e 00 00 00 03 00 00 c0 5d 00 00 00 03 00 00" ], "seqno": 29, "size": 32, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [ { "flags": 0, "pos": 8000 }, { "flags": 0, "pos": 16000 } ] }, "level": 1, "payload": [ "01 00 00 00 02 00 00 00 40 1f 00 00 00 00 00 00", "80 3e 00 00 00 00 00 00" ], "seqno": 30, "size": 24, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 3, "tabs": [ { "flags": 0, "pos": 8000 }, { "flags": 0, "pos": 16000 } ] }, "level": 1, "payload": [ "03 00 00 00 02 00 00 00 40 1f 00 00 00 00 00 00", "80 3e 00 00 00 00 00 00" ], "seqno": 31, "size": 24, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 32, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 3 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 03 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 4 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 04 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 5 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 05 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 6 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 06 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 7 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 07 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 49, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 8 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 08 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 50, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 9 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 09 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 51, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 52, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 53, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 58, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 59, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 60, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 61, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 62, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 63, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 64, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 65, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/tabdef.hwp.formatted.xml ================================================

1 위 캡션

2 아래 캡션

3 왼쪽

4 오른쪽

5 왼쪽 위

6 오른쪽 아래

7 여백까지 확대

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

8 한 줄로 입력

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

================================================ FILE: tests/hwp5_tests/fixtures/table-caption.html.d/index.xhtml ================================================

1 위 캡션

2 아래 캡션

3 왼쪽

4 오른쪽

5 왼쪽 위

6 오른쪽 아래

7 여백까지 확대

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

8 한 줄로 입력

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

================================================ FILE: tests/hwp5_tests/fixtures/table-caption.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-2 > span { line-height: 1.3; } p.parashape-3 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-10 > span { line-height: 1.5; } p.parashape-11 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: right; text-indent: 0pt; min-height: 1.6em; } p.parashape-12 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/table-caption.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212109, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 00 00 00 00 13 0b 13 0b", "13 0b 13 0b 8d 99 33 68 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 2, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 02 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 13, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483664 }, "level": 2, "payload": [ "10 00 00 80 00 00 04 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 14, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 15 ], " \uc704 \ucea1\uc158" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 04 c7 20 00 a1 ce 58 c1 0d 00" ], "seqno": 15, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20976, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f0 51 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 18, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 19, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 20, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 25, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 8802 } ] }, "level": 1, "payload": [ "00 00 00 00 62 22 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212110, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 01 00 00 00 13 0b 13 0b", "13 0b 13 0b 8e 99 33 68 00 00 00 00" ], "seqno": 28, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 29, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483665 }, "level": 2, "payload": [ "11 00 00 80 00 00 04 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 30, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 16 ], " \uc544\ub798 \ucea1\uc158" ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 44 c5 98 b7 20 00 a1 ce 58 c1", "0d 00" ], "seqno": 31, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 32, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20976, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f0 51 00 00", "00 00 06 00" ], "seqno": 33, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 2, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 02 00 00 00 00 00 00 00" ], "seqno": 34, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 35, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 36, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 37, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 41, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 17604 } ] }, "level": 1, "payload": [ "00 00 00 00 c4 44 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212111, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 2 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 02 00 00 00 13 0b 13 0b", "13 0b 13 0b 8f 99 33 68 00 00 00 00" ], "seqno": 44, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 0, "listflags": 32, "max_width": 8504, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 38 21 00 00", "52 03 38 21 00 00" ], "seqno": 45, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483662 }, "level": 2, "payload": [ "0e 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 46, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 13 ], " \uc67c\ucabd" ], [ [ 13, 14 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 7c c6 bd ca 0d 00" ], "seqno": 47, "size": 28, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 48, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8504, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 38 21 00 00", "00 00 06 00" ], "seqno": 49, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 3, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 03 00 00 00 00 00 00 00" ], "seqno": 50, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 51, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 52, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 53, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 54, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 56, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 57, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 58, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 24556 } ] }, "level": 1, "payload": [ "00 00 00 00 ec 5f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 59, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212112, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 3 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 03 00 00 00 13 0b 13 0b", "13 0b 13 0b 90 99 33 68 00 00 00 00" ], "seqno": 60, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 1, "listflags": 32, "max_width": 8504, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 38 21 00 00", "52 03 38 21 00 00" ], "seqno": 61, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483663 }, "level": 2, "payload": [ "0f 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 62, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 14 ], " \uc624\ub978\ucabd" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 24 c6 78 b9 bd ca 0d 00" ], "seqno": 63, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 64, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8504, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 38 21 00 00", "00 00 06 00" ], "seqno": 65, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 4, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 04 00 00 00 00 00 00 00" ], "seqno": 66, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 67, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 68, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 69, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 70, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 71, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 72, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 73, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 74, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 31508 } ] }, "level": 1, "payload": [ "00 00 00 00 14 7b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 75, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212113, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 4 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 04 00 00 00 13 0b 13 0b", "13 0b 13 0b 91 99 33 68 00 00 00 00" ], "seqno": 76, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 0, "listflags": 0, "max_width": 8504, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00", "52 03 38 21 00 00" ], "seqno": 77, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483664 }, "level": 2, "payload": [ "10 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 78, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 15 ], " \uc67c\ucabd \uc704" ], [ [ 15, 16 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 7c c6 bd ca 20 00 04 c7 0d 00" ], "seqno": 79, "size": 32, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 80, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8504, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 38 21 00 00", "00 00 06 00" ], "seqno": 81, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 5, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 05 00 00 00 00 00 00 00" ], "seqno": 82, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 83, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 84, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 85, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 86, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 87, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 88, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 89, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 90, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 38460 } ] }, "level": 1, "payload": [ "00 00 00 00 3c 96 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 91, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212114, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 5 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 05 00 00 00 13 0b 13 0b", "13 0b 13 0b 92 99 33 68 00 00 00 00" ], "seqno": 92, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 1, "listflags": 64, "max_width": 8504, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 40 00 00 00 01 00 00 00 38 21 00 00", "52 03 38 21 00 00" ], "seqno": 93, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483666 }, "level": 2, "payload": [ "12 00 00 80 00 00 04 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 94, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 17 ], " \uc624\ub978\ucabd \uc544\ub798" ], [ [ 17, 18 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 24 c6 78 b9 bd ca 20 00 44 c5", "98 b7 0d 00" ], "seqno": 95, "size": 36, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 96, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8504, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 38 21 00 00", "00 00 06 00" ], "seqno": 97, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 6, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 06 00 00 00 00 00 00 00" ], "seqno": 98, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 99, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 100, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 101, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 102, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 103, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483665 }, "level": 0, "payload": [ "11 00 00 80 00 08 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 104, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 105, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 106, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 55814 } ] }, "level": 1, "payload": [ "00 00 00 00 06 da 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 107, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212115, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 6 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 06 00 00 00 13 0b 13 0b", "13 0b 13 0b 93 99 33 68 00 00 00 00" ], "seqno": 108, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 7, "listflags": 0, "max_width": 26646, "paragraphs": 2, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "02 00 00 00 00 00 00 00 07 00 00 00 38 21 00 00", "52 03 16 68 00 00" ], "seqno": 109, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 19 }, "level": 2, "payload": [ "13 00 00 00 00 00 04 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 110, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 18 ], " \uc5ec\ubc31\uae4c\uc9c0 \ud655\ub300" ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 4c ae c0 c9 20 00", "55 d6 00 b3 0d 00" ], "seqno": 111, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 112, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 26644, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 14 68 00 00", "00 00 06 00" ], "seqno": 113, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 7, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 07 00 00 00 00 00 00 00" ], "seqno": 114, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483691 }, "level": 2, "payload": [ "2b 00 00 80 00 00 00 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 115, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 42 ], "------------------------------------------" ], [ [ 42, 43 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 0d 00" ], "seqno": 116, "size": 86, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 117, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 26644, "x": 0, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 14 68 00 00", "00 00 06 00" ], "seqno": 118, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 119, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 120, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 121, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 122, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 123, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 1282, "instance_id": 1748212116, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 0, "y": 0, "z_order": 7 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 00 00 00 00", "f0 51 00 00 02 05 00 00 07 00 00 00 13 0b 13 0b", "13 0b 13 0b 94 99 33 68 00 00 00 00" ], "seqno": 124, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 8, "max_width": 20976, "paragraphs": 2, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "02 00 00 00 08 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 125, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 19 }, "level": 2, "payload": [ "13 00 00 00 00 00 04 00 0c 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 126, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 18 ], " \ud55c \uc904\ub85c \uc785\ub825" ], [ [ 18, 19 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 5c d5 20 00 04 c9 5c b8 20 00", "85 c7 25 b8 0d 00" ], "seqno": 127, "size": 38, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 128, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20976, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f0 51 00 00", "00 00 06 00" ], "seqno": 129, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 8, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 08 00 00 00 00 00 00 00" ], "seqno": 130, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "charshapes": 2, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 12, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483691 }, "level": 2, "payload": [ "2b 00 00 80 00 00 00 00 0c 00 00 00 02 00 00 00", "01 00 00 00 00 00" ], "seqno": 131, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 42 ], "------------------------------------------" ], [ [ 42, 43 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00 2d 00", "2d 00 2d 00 0d 00" ], "seqno": 132, "size": 86, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ], [ 42, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00 2a 00 00 00 01 00 00 00" ], "seqno": 133, "size": 16, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20976, "x": 0, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f0 51 00 00", "00 00 06 00" ], "seqno": 134, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 1, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 1 ], "rows": 1, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 01 00 01 00 00 00 8d 00 8d 00 8d 00", "8d 00 01 00 01 00 00 00" ], "seqno": 135, "size": 24, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20976, "width": 20976 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f0 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f0 51 00 00" ], "seqno": 136, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 0, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 137, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 138, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 20692, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 d4 50 00 00", "00 00 06 00" ], "seqno": 139, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table-caption.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 1, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00", "00 00 00 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 2, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 13, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0d 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8, "tabdef_id": 0 }, "level": 1, "payload": [ "08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 40, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 09 00 01 00 00 00" ], "seqno": 41, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 0b 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 03 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 04 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 05 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 06 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 07 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 08 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 49, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0a 00 02 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 02 00 03 00", "00 00" ], "seqno": 51, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table-caption.hwp.formatted.xml ================================================

1 여백 0mm, 글자처럼 취급

2 여백 10mm, 문단 왼쪽부터 5mm

3 여백 10mm, 단 왼쪽부터 5mm

4 여백 10mm, 쪽 왼쪽부터 5mm

5 여백 10mm, 종이 왼쪽부터 35mm

6 여백 10mm, 문단 오른쪽부터 5mm

7 여백 10mm, 단 오른쪽부터 5mm

8 여백 10mm, 쪽 오른쪽부터 5mm

9 여백 10mm, 종이 오른쪽부터 35mm

10 여백 10mm, 문단 가운데로부터 5mm

11 여백 10mm, 단 가운데로부터 5mm

12 여백 10mm, 쪽 가운데로부터 5mm

13 여백 10mm, 종이 가운데로부터 5mm

================================================ FILE: tests/hwp5_tests/fixtures/table-position.html.d/index.xhtml ================================================

1 여백 0mm, 글자처럼 취급

2 여백 10mm, 문단 왼쪽부터 5mm

3 여백 10mm, 단 왼쪽부터 5mm

4 여백 10mm, 쪽 왼쪽부터 5mm

5 여백 10mm, 종이 왼쪽부터 35mm

6 여백 10mm, 문단 오른쪽부터 5mm

7 여백 10mm, 단 오른쪽부터 5mm

8 여백 10mm, 쪽 오른쪽부터 5mm

9 여백 10mm, 종이 오른쪽부터 35mm

10 여백 10mm, 문단 가운데로부터 5mm

11 여백 10mm, 단 가운데로부터 5mm

12 여백 10mm, 쪽 가운데로부터 5mm

13 여백 10mm, 종이 가운데로부터 5mm

================================================ FILE: tests/hwp5_tests/fixtures/table-position.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 3*/ margin: 0pt 10pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 13*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 12*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-2 > span { line-height: 1.3; } p.parashape-3 { margin: 0pt 10pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 10pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } p.parashape-12 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-12 > span { line-height: 1.5; } p.parashape-13 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-13 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } .borderfill-2 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/table-position.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 3, "style_id": 0, "text": 17 }, "level": 0, "payload": [ "11 00 00 00 04 00 00 00 04 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 17 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0d 00" ], "seqno": 1, "size": 34, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40520, "x": 1000, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 48 9e 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 3, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 11 }, "level": 0, "payload": [ "0b 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "03 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 1 ], "\uc804" ], [ [ 1, 9 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 9, 10 ], "\ud6c4" ], [ [ 10, 11 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "04 c8 0b 00 20 6c 62 74 00 00 00 00 00 00 00 00", "0b 00 c4 d6 0d 00" ], "seqno": 13, "size": 22, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40520, "x": 1000, "y": 1600 }, { "chpos": 1, "height": 4414, "height_baseline": 3752, "height_text": 4414, "lineseg_flags": 393216, "space_below": 600, "width": 40520, "x": 1000, "y": 3200 }, { "chpos": 9, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 40520, "x": 1000, "y": 8214 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 48 9e 00 00", "00 00 06 00 01 00 00 00 80 0c 00 00 3e 11 00 00", "3e 11 00 00 a8 0e 00 00 58 02 00 00 e8 03 00 00", "48 9e 00 00 00 00 06 00 09 00 00 00 16 20 00 00", "e8 03 00 00 e8 03 00 00 52 03 00 00 58 02 00 00", "e8 03 00 00 48 9e 00 00 00 00 06 00" ], "seqno": 15, "size": 108, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850129, "height": 2564, "instance_id": 1748212087, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 41954, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 11 23 2a 28 00 00 00 00 00 00 00 00", "e2 a3 00 00 04 0a 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 77 99 33 68 00 00 00 00" ], "seqno": 16, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 41954, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 e2 a3 00 00" ], "seqno": 17, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483675 }, "level": 2, "payload": [ "1b 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 18, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 26 ], " \uc5ec\ubc31 0mm, \uae00\uc790\ucc98\ub7fc \ucde8\uae09" ], [ [ 26, 27 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 30 00 6d 00", "6d 00 2c 00 20 00 00 ae 90 c7 98 cc fc b7 20 00", "e8 cd 09 ae 0d 00" ], "seqno": 19, "size": 54, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 39952, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 10 9c 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 22, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 23, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20977, "width": 20977 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f1 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f1 51 00 00" ], "seqno": 24, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 25, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18692, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 04 49 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 20977, "width": 20977 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f1 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f1 51 00 00" ], "seqno": 28, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 29, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18692, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 04 49 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20977, "width": 20977 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f1 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f1 51 00 00" ], "seqno": 32, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 33, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18692, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 04 49 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 20977, "width": 20977 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f1 51 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f1 51 00 00" ], "seqno": 36, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 37, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18692, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 04 49 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 41, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850128, "height": 2564, "instance_id": 1748212100, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 5 }, "level": 1, "payload": [ "20 6c 62 74 10 23 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 05 00 00 00 13 0b 13 0b", "13 0b 13 0b 84 99 33 68 00 00 00 00" ], "seqno": 44, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 45, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483680 }, "level": 2, "payload": [ "20 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 46, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 31 ], " \uc5ec\ubc31 10mm, \ubb38\ub2e8 \uc67c\ucabd\ubd80\ud130 5mm" ], [ [ 31, 32 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 38 bb e8 b2 20 00 7c c6", "bd ca 80 bd 30 d1 20 00 35 00 6d 00 6d 00 0d 00" ], "seqno": 47, "size": 64, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 48, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 49, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 2, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 02 00 00 00 00 00 00 00" ], "seqno": 50, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 51, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 52, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 53, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 54, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 55, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 56, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 57, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 58, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 59, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 60, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 61, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 62, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 63, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 64, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 65, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 66, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 67, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 68, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 69, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 70, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 10084 } ] }, "level": 1, "payload": [ "00 00 00 00 64 27 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 71, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849872, "height": 2564, "instance_id": 1748212102, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 6 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 06 00 00 00 13 0b 13 0b", "13 0b 13 0b 86 99 33 68 00 00 00 00" ], "seqno": 72, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 73, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483679 }, "level": 2, "payload": [ "1f 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 74, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 30 ], " \uc5ec\ubc31 10mm, \ub2e8 \uc67c\ucabd\ubd80\ud130 5mm" ], [ [ 30, 31 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 e8 b2 20 00 7c c6 bd ca", "80 bd 30 d1 20 00 35 00 6d 00 6d 00 0d 00" ], "seqno": 75, "size": 62, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 76, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 77, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 3, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 03 00 00 00 00 00 00 00" ], "seqno": 78, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 79, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 80, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 81, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 82, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 83, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 84, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 85, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 86, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 87, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 88, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 89, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 90, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 91, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 92, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 93, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 94, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 95, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 96, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 97, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 98, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 20168 } ] }, "level": 1, "payload": [ "00 00 00 00 c8 4e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 99, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849616, "height": 2564, "instance_id": 1748212103, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 7 }, "level": 1, "payload": [ "20 6c 62 74 10 21 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 07 00 00 00 13 0b 13 0b", "13 0b 13 0b 87 99 33 68 00 00 00 00" ], "seqno": 100, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 101, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483679 }, "level": 2, "payload": [ "1f 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 102, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 30 ], " \uc5ec\ubc31 10mm, \ucabd \uc67c\ucabd\ubd80\ud130 5mm" ], [ [ 30, 31 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 bd ca 20 00 7c c6 bd ca", "80 bd 30 d1 20 00 35 00 6d 00 6d 00 0d 00" ], "seqno": 103, "size": 62, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 104, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 105, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 4, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 04 00 00 00 00 00 00 00" ], "seqno": 106, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 107, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 108, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 109, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 110, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 111, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 112, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 113, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 114, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 115, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 116, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 117, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 118, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 119, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 120, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 121, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 122, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 123, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 124, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 125, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 126, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 30252 } ] }, "level": 1, "payload": [ "00 00 00 00 2c 76 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 127, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673849360, "height": 2564, "instance_id": 1748212104, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 9921, "y": 0, "z_order": 8 }, "level": 1, "payload": [ "20 6c 62 74 10 20 2a 28 00 00 00 00 c1 26 00 00", "f0 51 00 00 04 0a 00 00 08 00 00 00 13 0b 13 0b", "13 0b 13 0b 88 99 33 68 00 00 00 00" ], "seqno": 128, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 129, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483681 }, "level": 2, "payload": [ "21 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 130, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 32 ], " \uc5ec\ubc31 10mm, \uc885\uc774 \uc67c\ucabd\ubd80\ud130 35mm" ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 85 c8 74 c7 20 00 7c c6", "bd ca 80 bd 30 d1 20 00 33 00 35 00 6d 00 6d 00", "0d 00" ], "seqno": 131, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 132, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 133, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 5, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 05 00 00 00 00 00 00 00" ], "seqno": 134, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 135, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 136, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 137, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 138, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 139, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 140, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 141, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 142, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 143, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 144, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 145, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 146, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 147, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 148, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 149, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 150, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 151, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 152, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 153, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 154, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 155, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673852176, "height": 2564, "instance_id": 1748212105, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 9 }, "level": 1, "payload": [ "20 6c 62 74 10 2b 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 09 00 00 00 13 0b 13 0b", "13 0b 13 0b 89 99 33 68 00 00 00 00" ], "seqno": 156, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 157, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 2147483648, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483681 }, "level": 2, "payload": [ "21 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 80" ], "seqno": 158, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 32 ], " \uc5ec\ubc31 10mm, \ubb38\ub2e8 \uc624\ub978\ucabd\ubd80\ud130 5mm" ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 38 bb e8 b2 20 00 24 c6", "78 b9 bd ca 80 bd 30 d1 20 00 35 00 6d 00 6d 00", "0d 00" ], "seqno": 159, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 160, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 29, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1d 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 161, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 6, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 06 00 00 00 00 00 00 00" ], "seqno": 162, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 163, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 164, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 165, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 166, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 167, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 168, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 169, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 170, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 171, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 172, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 173, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 174, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 175, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 176, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 177, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 178, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 179, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 180, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 181, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 182, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 11684 } ] }, "level": 1, "payload": [ "00 00 00 00 a4 2d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 183, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673851920, "height": 2564, "instance_id": 1748212106, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 10 }, "level": 1, "payload": [ "20 6c 62 74 10 2a 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 0a 00 00 00 13 0b 13 0b", "13 0b 13 0b 8a 99 33 68 00 00 00 00" ], "seqno": 184, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 185, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483680 }, "level": 2, "payload": [ "20 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 186, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 31 ], " \uc5ec\ubc31 10mm, \ub2e8 \uc624\ub978\ucabd\ubd80\ud130 5mm" ], [ [ 31, 32 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 e8 b2 20 00 24 c6 78 b9", "bd ca 80 bd 30 d1 20 00 35 00 6d 00 6d 00 0d 00" ], "seqno": 187, "size": 64, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 188, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 189, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 7, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 07 00 00 00 00 00 00 00" ], "seqno": 190, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 191, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 192, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 193, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 194, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 195, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 196, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 197, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 198, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 199, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 200, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 201, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 202, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 203, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 204, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 205, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 206, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 207, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 208, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 209, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 210, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 21768 } ] }, "level": 1, "payload": [ "00 00 00 00 08 55 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 211, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673851664, "height": 2564, "instance_id": 1748212107, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 11 }, "level": 1, "payload": [ "20 6c 62 74 10 29 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 0b 00 00 00 13 0b 13 0b", "13 0b 13 0b 8b 99 33 68 00 00 00 00" ], "seqno": 212, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 213, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483680 }, "level": 2, "payload": [ "20 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 214, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 31 ], " \uc5ec\ubc31 10mm, \ucabd \uc624\ub978\ucabd\ubd80\ud130 5mm" ], [ [ 31, 32 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 bd ca 20 00 24 c6 78 b9", "bd ca 80 bd 30 d1 20 00 35 00 6d 00 6d 00 0d 00" ], "seqno": 215, "size": 64, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 216, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00" ], "seqno": 217, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 8, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 08 00 00 00 00 00 00 00" ], "seqno": 218, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 219, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 220, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 221, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 222, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 223, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 224, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 225, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 226, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 227, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 228, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 229, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 230, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 231, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 232, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 233, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 234, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 235, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 236, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 237, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 238, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 31852 } ] }, "level": 1, "payload": [ "00 00 00 00 6c 7c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 239, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673851408, "height": 2564, "instance_id": 1748212108, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 9921, "y": 0, "z_order": 12 }, "level": 1, "payload": [ "20 6c 62 74 10 28 2a 28 00 00 00 00 c1 26 00 00", "f0 51 00 00 04 0a 00 00 0c 00 00 00 13 0b 13 0b", "13 0b 13 0b 8c 99 33 68 00 00 00 00" ], "seqno": 240, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 241, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 2147483648, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483682 }, "level": 2, "payload": [ "22 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 80" ], "seqno": 242, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 33 ], " \uc5ec\ubc31 10mm, \uc885\uc774 \uc624\ub978\ucabd\ubd80\ud130 35mm" ], [ [ 33, 34 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 85 c8 74 c7 20 00 24 c6", "78 b9 bd ca 80 bd 30 d1 20 00 33 00 35 00 6d 00", "6d 00 0d 00" ], "seqno": 243, "size": 68, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 244, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 29, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1d 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 245, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 9, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 09 00 00 00 00 00 00 00" ], "seqno": 246, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 247, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 248, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 249, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 250, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 251, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 252, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 253, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 254, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 255, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 256, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 257, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 258, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 259, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 260, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 2147483648, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 80" ], "seqno": 261, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 262, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 263, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 4, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 04 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 264, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 265, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 266, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 267, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673851152, "height": 2564, "instance_id": 1748212096, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 1 }, "level": 1, "payload": [ "20 6c 62 74 10 27 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 01 00 00 00 13 0b 13 0b", "13 0b 13 0b 80 99 33 68 00 00 00 00" ], "seqno": 268, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 269, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483682 }, "level": 2, "payload": [ "22 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 270, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 33 ], " \uc5ec\ubc31 10mm, \ubb38\ub2e8 \uac00\uc6b4\ub370\ub85c\ubd80\ud130 5mm" ], [ [ 33, 34 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 38 bb e8 b2 20 00 00 ac", "b4 c6 70 b3 5c b8 80 bd 30 d1 20 00 35 00 6d 00", "6d 00 0d 00" ], "seqno": 271, "size": 68, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 272, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 30, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1e 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 273, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 10, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 0a 00 00 00 00 00 00 00" ], "seqno": 274, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 275, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 276, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 277, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 278, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 279, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 280, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 281, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 282, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 283, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 284, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 285, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 286, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 287, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 288, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 289, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 290, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 291, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 292, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 293, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 294, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 11684 } ] }, "level": 1, "payload": [ "00 00 00 00 a4 2d 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 295, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850896, "height": 2564, "instance_id": 1748212097, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 2 }, "level": 1, "payload": [ "20 6c 62 74 10 26 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 02 00 00 00 13 0b 13 0b", "13 0b 13 0b 81 99 33 68 00 00 00 00" ], "seqno": 296, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 297, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483681 }, "level": 2, "payload": [ "21 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 298, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 32 ], " \uc5ec\ubc31 10mm, \ub2e8 \uac00\uc6b4\ub370\ub85c\ubd80\ud130 5mm" ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 e8 b2 20 00 00 ac b4 c6", "70 b3 5c b8 80 bd 30 d1 20 00 35 00 6d 00 6d 00", "0d 00" ], "seqno": 299, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 300, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 29, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1d 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 301, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 11, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 0b 00 00 00 00 00 00 00" ], "seqno": 302, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 303, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 304, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 305, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 306, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 307, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 308, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 309, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 310, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 311, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 312, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 313, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 314, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 315, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 316, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 317, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 318, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 319, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 9 }, "level": 0, "payload": [ "09 00 00 00 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 320, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 321, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 322, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 23368 } ] }, "level": 1, "payload": [ "00 00 00 00 48 5b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 323, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850640, "height": 2564, "instance_id": 1748212098, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 3 }, "level": 1, "payload": [ "20 6c 62 74 10 25 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 03 00 00 00 13 0b 13 0b", "13 0b 13 0b 82 99 33 68 00 00 00 00" ], "seqno": 324, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 325, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483681 }, "level": 2, "payload": [ "21 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 326, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 32 ], " \uc5ec\ubc31 10mm, \ucabd \uac00\uc6b4\ub370\ub85c\ubd80\ud130 5mm" ], [ [ 32, 33 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 bd ca 20 00 00 ac b4 c6", "70 b3 5c b8 80 bd 30 d1 20 00 35 00 6d 00 6d 00", "0d 00" ], "seqno": 327, "size": 66, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 328, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 29, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1d 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 329, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 12, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 0c 00 00 00 00 00 00 00" ], "seqno": 330, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 331, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 332, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 333, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 334, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 335, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 336, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 337, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 338, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 339, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 340, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 341, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 342, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 343, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 344, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 345, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 346, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 347, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 2048, "instance_id": 0, "linesegs": 1, "parashape_id": 4, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483657 }, "level": 0, "payload": [ "09 00 00 80 00 08 00 00 04 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 348, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 9 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 349, "size": 18, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 350, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 1000, "y": 35052 } ] }, "level": 1, "payload": [ "00 00 00 00 ec 88 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 351, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "tbl ", "description": "", "flags": 673850384, "height": 2564, "instance_id": 1748212099, "margin": { "bottom": 2835, "left": 2835, "right": 2835, "top": 2835 }, "unknown1": 0, "unknown2": 0, "width": 20976, "x": 1417, "y": 0, "z_order": 4 }, "level": 1, "payload": [ "20 6c 62 74 10 24 2a 28 00 00 00 00 89 05 00 00", "f0 51 00 00 04 0a 00 00 04 00 00 00 13 0b 13 0b", "13 0b 13 0b 83 99 33 68 00 00 00 00" ], "seqno": 352, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 20976, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f0 51 00 00" ], "seqno": 353, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 2, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483682 }, "level": 2, "payload": [ "22 00 00 80 00 00 04 00 03 00 00 00 01 00 00 00", "02 00 00 00 00 00" ], "seqno": 354, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 2 ], "\ud45c " ], [ [ 2, 10 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 10, 33 ], " \uc5ec\ubc31 10mm, \uc885\uc774 \uac00\uc6b4\ub370\ub85c\ubd80\ud130 5mm" ], [ [ 33, 34 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "5c d4 20 00 12 00 6f 6e 74 61 00 00 00 00 00 00", "00 00 12 00 20 00 ec c5 31 bc 20 00 31 00 30 00", "6d 00 6d 00 2c 00 20 00 85 c8 74 c7 20 00 00 ac", "b4 c6 70 b3 5c b8 80 bd 30 d1 20 00 35 00 6d 00", "6d 00 0d 00" ], "seqno": 355, "size": 68, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 356, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 0 }, { "chpos": 30, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 18976, "x": 1000, "y": 1600 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 20 4a 00 00", "00 00 06 00 1e 00 00 00 40 06 00 00 e8 03 00 00", "e8 03 00 00 52 03 00 00 58 02 00 00 e8 03 00 00", "20 4a 00 00 00 00 06 00" ], "seqno": 357, "size": 72, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 4, "number": 13, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 04 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 358, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "borderfill_id": 1, "cellspacing": 0, "cols": 2, "flags": 67108870, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 2, 2 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 04 02 00 02 00 00 00 8d 00 8d 00 8d 00", "8d 00 02 00 02 00 01 00 00 00" ], "seqno": 359, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 360, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 361, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 362, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 363, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 364, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 365, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 366, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 367, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 0, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 368, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 369, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 370, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 371, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 1, "col": 1, "colspan": 1, "height": 282, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 10488, "width": 10488 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 01 00 01 00 01 00", "f8 28 00 00 1a 01 00 00 8d 00 8d 00 8d 00 8d 00", "01 00 f8 28 00 00" ], "seqno": 372, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 3, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 03 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 373, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 374, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 8204, "x": 1000, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 e8 03 00 00 0c 20 00 00", "00 00 06 00" ], "seqno": 375, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table-position.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 8, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 10, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 0a 00 00 00 08 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 2, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 14, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0e 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 16, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": -16777216, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 ff ff ff ff ff", "00 00 00 00" ], "seqno": 17, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 2000, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 d0 07 00 00 d0 07 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 2, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 2000, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 d0 07 00 00 d0 07 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "02 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 03 00 01 00 00 00" ], "seqno": 41, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 0b 00 01 00 00 00" ], "seqno": 42, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 13, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 0d 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 48, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 49, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 50, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 12, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0c 00 02 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 02 00 03 00", "00 00" ], "seqno": 52, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 01 00 04 00 00 00" ], "seqno": 53, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table-position.hwp.formatted.xml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/table.html.d/index.xhtml ================================================

================================================ FILE: tests/hwp5_tests/fixtures/table.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } .borderfill-2 { border-top: 1px solid #000000; border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; } ================================================ FILE: tests/hwp5_tests/fixtures/table.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 25 }, "level": 0, "payload": [ "19 00 00 00 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "tbl ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6c 62 74 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 0, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 00 00 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "tbl ", "description": "", "flags": 136978960, "height": 14172, "instance_id": 1812098202, "margin": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "unknown1": 0, "unknown2": 0, "width": 11337, "x": 0, "y": 0, "z_order": 0 }, "level": 1, "payload": [ "20 6c 62 74 10 22 2a 08 00 00 00 00 00 00 00 00", "49 2c 00 00 5c 37 00 00 00 00 00 00 1b 01 1b 01", "1b 01 1b 01 9a 6c 02 6c 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "TableControl" }, { "content": { "borderfill_id": 2, "cellspacing": 0, "cols": 3, "flags": 6, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "rowcols": [ 3, 1 ], "rows": 2, "validZones": [] }, "level": 2, "payload": [ "06 00 00 00 02 00 03 00 00 00 8d 00 8d 00 8d 00", "8d 00 03 00 01 00 02 00 00 00" ], "seqno": 13, "size": 26, "tagid": 77, "tagname": "HWPTAG_TABLE", "type": "TableBody" }, { "content": { "borderfill_id": 2, "col": 0, "colspan": 1, "height": 7086, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 3779, "width": 3779 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 00 00 00 00 01 00 01 00", "c3 0e 00 00 ae 1b 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 c3 0e 00 00" ], "seqno": 14, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 15, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 3496, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 a8 0d 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 2, "col": 1, "colspan": 1, "height": 7086, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 1, "unknown1": 0, "unknown_width": 3779, "width": 3779 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 01 00 00 00 01 00 01 00", "c3 0e 00 00 ae 1b 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 c3 0e 00 00" ], "seqno": 18, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 19, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 20, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 3496, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 a8 0d 00 00", "00 00 06 00" ], "seqno": 21, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 2, "col": 2, "colspan": 1, "height": 14172, "listflags": 32, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 0, "rowspan": 2, "unknown1": 0, "unknown_width": 3779, "width": 3779 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 00 02 00 00 00 01 00 02 00", "c3 0e 00 00 5c 37 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 c3 0e 00 00" ], "seqno": 22, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 23, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 24, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 3496, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 a8 0d 00 00", "00 00 06 00" ], "seqno": 25, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "borderfill_id": 2, "col": 0, "colspan": 2, "height": 7086, "listflags": 83886112, "padding": { "bottom": 141, "left": 141, "right": 141, "top": 141 }, "paragraphs": 1, "row": 1, "rowspan": 1, "unknown1": 0, "unknown_width": 7558, "width": 7558 }, "level": 2, "payload": [ "01 00 00 00 20 00 00 05 00 00 01 00 02 00 01 00", "86 1d 00 00 ae 1b 00 00 8d 00 8d 00 8d 00 8d 00", "02 00 86 1d 00 00" ], "seqno": 26, "size": 38, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TableCell" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 2, "payload": [ "01 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 27, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 28, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 7276, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 6c 1c 00 00", "00 00 06 00" ], "seqno": 29, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483649 }, "level": 0, "payload": [ "01 00 00 80 00 00 00 00 01 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 30, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 31, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 14738 } ] }, "level": 1, "payload": [ "00 00 00 00 92 39 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 32, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 4, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 04 00", "00 00 00 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 2, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fillflags": 0, "left": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "right": { "color": 0, "stroke_flags": 1, "width_flags": 1 }, "top": { "color": 0, "stroke_flags": 1, "width_flags": 1 } }, "level": 1, "payload": [ "00 00 01 01 00 00 00 00 01 01 00 00 00 00 01 01", "00 00 00 00 01 01 00 00 00 00 01 00 00 00 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 17, "size": 40, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 25, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 26, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 39, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 40, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 47, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 48, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 50, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 51, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 52, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/table.hwp.formatted.xml ================================================

그림 1 캡션

글상자

================================================ FILE: tests/hwp5_tests/fixtures/textbox.html.d/index.xhtml ================================================

그림 1 캡션

글상자

================================================ FILE: tests/hwp5_tests/fixtures/textbox.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/textbox.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 2052, "instance_id": 0, "linesegs": 1, "parashape_id": 1, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483673 }, "level": 0, "payload": [ "19 00 00 80 04 08 00 00 01 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 24 ], { "chid": "gso ", "code": 11, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 24, 25 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "0b 00 20 6f 73 67 00 00 00 00 00 00 00 00 0b 00", "0d 00" ], "seqno": 1, "size": 50, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "chid": "gso ", "description": "", "flags": 610942976, "height": 5476, "instance_id": 1732707051, "margin": { "bottom": 0, "left": 0, "right": 0, "top": 0 }, "unknown1": 0, "unknown2": 0, "width": 11763, "x": 9736, "y": 11163, "z_order": 4 }, "level": 1, "payload": [ "20 6f 73 67 00 40 6a 24 9b 2b 00 00 08 26 00 00", "f3 2d 00 00 64 15 00 00 04 00 00 00 00 00 00 00", "00 00 00 00 eb 02 47 67 00 00 00 00" ], "seqno": 12, "size": 44, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "GShapeObjectControl" }, { "content": { "flags": 3, "listflags": 0, "max_width": 11763, "paragraphs": 1, "separation": 850, "unknown1": 0, "width": 8504 }, "level": 2, "payload": [ "01 00 00 00 00 00 00 00 03 00 00 00 38 21 00 00", "52 03 f3 2d 00 00" ], "seqno": 13, "size": 22, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "GShapeObjectCaption" }, { "content": { "charshapes": 1, "controlmask": 262144, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483663 }, "level": 2, "payload": [ "0f 00 00 80 00 00 04 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 14, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\uadf8\ub9bc " ], [ [ 3, 11 ], { "chid": "atno", "code": 18, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 11, 14 ], " \ucea1\uc158" ], [ [ 14, 15 ], { "code": 13 } ] ] }, "level": 3, "payload": [ "f8 ad bc b9 20 00 12 00 6f 6e 74 61 00 00 00 00", "00 00 00 00 12 00 20 00 a1 ce 58 c1 0d 00" ], "seqno": 15, "size": 30, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 3, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 16, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 11760, "x": 0, "y": 0 } ] }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 f0 2d 00 00", "00 00 06 00" ], "seqno": 17, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "atno", "flags": 3, "number": 1, "prefix": 0, "suffix": 0, "usersymbol": 0 }, "level": 3, "payload": [ "6f 6e 74 61 03 00 00 00 01 00 00 00 00 00 00 00" ], "seqno": 18, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "AutoNumbering" }, { "content": { "angle": 0, "border": { "color": 0, "flags": 3506438209, "width": 33 }, "chid": "$rec", "chid0": "$rec", "fill_flags": 0, "fill_shape": 0, "flags": 16777216, "height": 5476, "initial_height": 5476, "initial_width": 11763, "level_in_group": 0, "local_version": 1, "rotation_center": { "x": 5881, "y": 2738 }, "scalerotations": [ { "rotator": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "scaler": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 } } ], "scalerotations_count": 1, "translation": { "a": 1.0, "b": 0.0, "c": 0.0, "d": 1.0, "e": 0.0, "f": 0.0 }, "unknown": 0, "unknown1": 0, "width": 11763, "x_in_group": 0, "y_in_group": 0 }, "level": 2, "payload": [ "63 65 72 24 63 65 72 24 00 00 00 00 00 00 00 00", "00 00 01 00 f3 2d 00 00 64 15 00 00 f3 2d 00 00", "64 15 00 00 00 00 00 01 00 00 f9 16 00 00 b2 0a", "00 00 01 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 00 00", "00 00 00 00 00 00 00 00 21 00 00 00 41 00 00 d1", "00 00 00 00 00 00 00 00 00" ], "seqno": 19, "size": 217, "tagid": 76, "tagname": "HWPTAG_SHAPE_COMPONENT", "type": "ShapeComponent" }, { "content": { "listflags": 32, "maxwidth": 11763, "padding": { "bottom": 283, "left": 283, "right": 283, "top": 283 }, "paragraphs": 1, "unknown1": 0 }, "level": 3, "payload": [ "01 00 00 00 20 00 00 00 1b 01 1b 01 1b 01 1b 01", "f3 2d 00 00" ], "seqno": 20, "size": 20, "tagid": 72, "tagname": "HWPTAG_LIST_HEADER", "type": "TextboxParagraphList" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 2, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483652 }, "level": 3, "payload": [ "04 00 00 80 00 00 00 00 02 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 21, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 3 ], "\uae00\uc0c1\uc790" ], [ [ 3, 4 ], { "code": 13 } ] ] }, "level": 4, "payload": [ "00 ae c1 c0 90 c7 0d 00" ], "seqno": 22, "size": 8, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 4, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 23, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 11196, "x": 0, "y": 0 } ] }, "level": 4, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 bc 2b 00 00", "00 00 06 00" ], "seqno": 24, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "p0": { "x": 0, "y": 0 }, "p1": { "x": 11763, "y": 0 }, "p2": { "x": 11763, "y": 5476 }, "p3": { "x": 0, "y": 5476 }, "round": 0 }, "level": 3, "payload": [ "00 00 00 00 00 00 00 00 00 f3 2d 00 00 00 00 00", "00 f3 2d 00 00 64 15 00 00 00 00 00 00 64 15 00", "00" ], "seqno": 25, "size": 33, "tagid": 79, "tagname": "HWPTAG_SHAPE_COMPONENT_RECTANGLE", "type": "ShapeRectangle" } ] ================================================ FILE: tests/hwp5_tests/fixtures/textbox.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 3, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 1, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00", "00 00 00 00 00 00 03 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/textbox.hwp.formatted.xml ================================================

실선밑줄

대시밑줄

점선밑줄

대시일점밑줄

대시이점밑줄

긴대시밑줄

큰점선밑줄

이중실선밑줄

이중증가밑줄

이중감소밑줄

삼중밑줄

================================================ FILE: tests/hwp5_tests/fixtures/underline-styles.html.d/index.xhtml ================================================ 실선밑줄

실선밑줄

대시밑줄

점선밑줄

대시일점밑줄

대시이점밑줄

긴대시밑줄

큰점선밑줄

이중실선밑줄

이중증가밑줄

이중감소밑줄

삼중밑줄

================================================ FILE: tests/hwp5_tests/fixtures/underline-styles.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 4*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 3*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-0 > span { line-height: 1.6; } p.parashape-1 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-8 > span { line-height: 1.5; } p.parashape-9 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-10 > span { line-height: 1.3; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-11 > span { line-height: 1.6; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-5 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: solid; -moz-text-decoration-style: solid; -webkit-text-decoration-style: solid; } span.charshape-5.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-5.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dashed; -moz-text-decoration-style: dashed; -webkit-text-decoration-style: dashed; } span.charshape-6.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-6.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-7.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-7.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dashed; -moz-text-decoration-style: dashed; -webkit-text-decoration-style: dashed; } span.charshape-8.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-8.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dashed; -moz-text-decoration-style: dashed; -webkit-text-decoration-style: dashed; } span.charshape-9.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-9.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dashed; -moz-text-decoration-style: dashed; -webkit-text-decoration-style: dashed; } span.charshape-10.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-10.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: dotted; -moz-text-decoration-style: dotted; -webkit-text-decoration-style: dotted; } span.charshape-11.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-11.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: double; -moz-text-decoration-style: double; -webkit-text-decoration-style: double; } span.charshape-12.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-12.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: double; -moz-text-decoration-style: double; -webkit-text-decoration-style: double; } span.charshape-13.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-13.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: double; -moz-text-decoration-style: double; -webkit-text-decoration-style: double; } span.charshape-14.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-14.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15 { color: #000000; text-decoration: underline; text-decoration-color: #000000; -moz-text-decoration-color: #000000; -webkit-text-decoration-color: #000000; text-decoration-style: double; -moz-text-decoration-style: double; -webkit-text-decoration-style: double; } span.charshape-15.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-15.lang-user { font-family: "바탕", serif; font-size: 10pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/underline-styles.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 3, "style_id": 0, "text": 21 }, "level": 0, "payload": [ "15 00 00 00 04 00 00 00 0b 00 00 03 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 20 ], "\uc2e4\uc120\ubc11\uc904" ], [ [ 20, 21 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "e4 c2 20 c1 11 bc 04 c9 0d 00" ], "seqno": 1, "size": 42, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 5 ] ] }, "level": 1, "payload": [ "00 00 00 00 05 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 0 } ] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 3, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 4, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 5, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 7, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 10, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 11, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 12, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\ub300\uc2dc\ubc11\uc904" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 b3 dc c2 11 bc 04 c9 0d 00" ], "seqno": 13, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 6 ] ] }, "level": 1, "payload": [ "00 00 00 00 06 00 00 00" ], "seqno": 14, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 1600 } ] }, "level": 1, "payload": [ "00 00 00 00 40 06 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 15, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 5 }, "level": 0, "payload": [ "05 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 16, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uc810\uc120\ubc11\uc904" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "10 c8 20 c1 11 bc 04 c9 0d 00" ], "seqno": 17, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 7 ] ] }, "level": 1, "payload": [ "00 00 00 00 07 00 00 00" ], "seqno": 18, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 3200 } ] }, "level": 1, "payload": [ "00 00 00 00 80 0c 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 19, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 20, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\ub300\uc2dc\uc77c\uc810\ubc11\uc904" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 b3 dc c2 7c c7 10 c8 11 bc 04 c9 0d 00" ], "seqno": 21, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 8 ] ] }, "level": 1, "payload": [ "00 00 00 00 08 00 00 00" ], "seqno": 22, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 4800 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 12 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 23, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 24, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\ub300\uc2dc\uc774\uc810\ubc11\uc904" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "00 b3 dc c2 74 c7 10 c8 11 bc 04 c9 0d 00" ], "seqno": 25, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 9 ] ] }, "level": 1, "payload": [ "00 00 00 00 09 00 00 00" ], "seqno": 26, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 6400 } ] }, "level": 1, "payload": [ "00 00 00 00 00 19 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 27, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 28, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\uae34\ub300\uc2dc\ubc11\uc904" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "34 ae 00 b3 dc c2 11 bc 04 c9 0d 00" ], "seqno": 29, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 10 ] ] }, "level": 1, "payload": [ "00 00 00 00 0a 00 00 00" ], "seqno": 30, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 8000 } ] }, "level": 1, "payload": [ "00 00 00 00 40 1f 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 31, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 6 }, "level": 0, "payload": [ "06 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 32, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 5 ], "\ud070\uc810\uc120\ubc11\uc904" ], [ [ 5, 6 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "70 d0 10 c8 20 c1 11 bc 04 c9 0d 00" ], "seqno": 33, "size": 12, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 11 ] ] }, "level": 1, "payload": [ "00 00 00 00 0b 00 00 00" ], "seqno": 34, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 9600 } ] }, "level": 1, "payload": [ "00 00 00 00 80 25 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 35, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 36, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uc774\uc911\uc2e4\uc120\ubc11\uc904" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "74 c7 11 c9 e4 c2 20 c1 11 bc 04 c9 0d 00" ], "seqno": 37, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 12 ] ] }, "level": 1, "payload": [ "00 00 00 00 0c 00 00 00" ], "seqno": 38, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 11200 } ] }, "level": 1, "payload": [ "00 00 00 00 c0 2b 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 39, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 40, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uc774\uc911\uc99d\uac00\ubc11\uc904" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "74 c7 11 c9 9d c9 00 ac 11 bc 04 c9 0d 00" ], "seqno": 41, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 13 ] ] }, "level": 1, "payload": [ "00 00 00 00 0d 00 00 00" ], "seqno": 42, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 12800 } ] }, "level": 1, "payload": [ "00 00 00 00 00 32 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 43, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 7 }, "level": 0, "payload": [ "07 00 00 00 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 44, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 6 ], "\uc774\uc911\uac10\uc18c\ubc11\uc904" ], [ [ 6, 7 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "74 c7 11 c9 10 ac 8c c1 11 bc 04 c9 0d 00" ], "seqno": 45, "size": 14, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 14 ] ] }, "level": 1, "payload": [ "00 00 00 00 0e 00 00 00" ], "seqno": 46, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 14400 } ] }, "level": 1, "payload": [ "00 00 00 00 40 38 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 47, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" }, { "content": { "charshapes": 1, "controlmask": 0, "instance_id": 0, "linesegs": 1, "parashape_id": 11, "rangetags": 0, "split": 0, "style_id": 0, "text": 2147483653 }, "level": 0, "payload": [ "05 00 00 80 00 00 00 00 0b 00 00 00 01 00 00 00", "01 00 00 00 00 00" ], "seqno": 48, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 4 ], "\uc0bc\uc911\ubc11\uc904" ], [ [ 4, 5 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "bc c0 11 c9 11 bc 04 c9 0d 00" ], "seqno": 49, "size": 10, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 15 ] ] }, "level": 1, "payload": [ "00 00 00 00 0f 00 00 00" ], "seqno": 50, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "linesegs": [ { "chpos": 0, "height": 1000, "height_baseline": 850, "height_text": 1000, "lineseg_flags": 393216, "space_below": 600, "width": 42520, "x": 0, "y": 16000 } ] }, "level": 1, "payload": [ "00 00 00 00 80 3e 00 00 e8 03 00 00 e8 03 00 00", "52 03 00 00 58 02 00 00 00 00 00 00 18 a6 00 00", "00 00 06 00" ], "seqno": 51, "size": 36, "tagid": 69, "tagname": "HWPTAG_PARA_LINE_SEG", "type": "ParaLineSeg" } ] ================================================ FILE: tests/hwp5_tests/fixtures/underline-styles.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 0, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 10, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 0a 00 00 00 00 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 16, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 13, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 10 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0d 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 4, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 04 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 22, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 20, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 14 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 23, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 36, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 24 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 24, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 52, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 34 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 25, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 68, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 44 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 26, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 84, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 54 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 27, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 100, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 64 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 28, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 116, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 74 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 29, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 132, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 84 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 30, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 148, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 94 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 31, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 164, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 a4 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 32, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 34, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 35, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 36, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 38, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 39, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 40, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 41, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 42, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 43, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 44, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 45, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 0, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 46, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 47, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 48, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 00 00 01 00 00 00" ], "seqno": 49, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 07 00 01 00 00 00" ], "seqno": 50, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 09 00 01 00 00 00" ], "seqno": 51, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 01 00 01 00 00 00" ], "seqno": 52, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 02 00 01 00 00 00" ], "seqno": 53, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 03 00 01 00 00 00" ], "seqno": 54, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 04 00 01 00 00 00" ], "seqno": 55, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 05 00 01 00 00 00" ], "seqno": 56, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 06 00 01 00 00 00" ], "seqno": 57, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 00 00 00 00 00 00" ], "seqno": 58, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 08 00 02 00 00 00" ], "seqno": 59, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 0a 00 04 00", "00 00" ], "seqno": 60, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 12, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0c 12 04 0b 00 03 00 00 00" ], "seqno": 61, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/underline-styles.hwp.formatted.xml ================================================

pyhwp 테스트를 위한 배포 문서 예제입니다.

================================================ FILE: tests/hwp5_tests/fixtures/viewtext.html.d/index.xhtml ================================================ pyhwp 배포 문서 예제

pyhwp 테스트를 위한 배포 문서 예제입니다.

================================================ FILE: tests/hwp5_tests/fixtures/viewtext.html.d/styles.css ================================================ body { background-color: #eee; padding: 4px; margin: 0; } .Paper { background-color: #fff; border: 1px solid black; margin: 1em auto; } .Paper:first-child { margin-top: 0; } .Paper:last-child { margin-bottom: 0; } /* Styles */ .Normal { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Normal > span { line-height: 1.6; } /* @charshape-id = 1*/ .Normal > span { color: #000000; } .Normal > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Normal > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Body { /* @parashape-id = 3*/ margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Body > span { line-height: 1.6; } /* @charshape-id = 1*/ .Body > span { color: #000000; } .Body > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Body > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 { /* @parashape-id = 4*/ margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-1 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-1 > span { color: #000000; } .Outline-1 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-1 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 { /* @parashape-id = 5*/ margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-2 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-2 > span { color: #000000; } .Outline-2 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-2 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 { /* @parashape-id = 6*/ margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-3 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-3 > span { color: #000000; } .Outline-3 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-3 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 { /* @parashape-id = 7*/ margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-4 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-4 > span { color: #000000; } .Outline-4 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-4 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 { /* @parashape-id = 8*/ margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-5 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-5 > span { color: #000000; } .Outline-5 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-5 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 { /* @parashape-id = 9*/ margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-6 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-6 > span { color: #000000; } .Outline-6 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-6 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 { /* @parashape-id = 10*/ margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Outline-7 > span { line-height: 1.6; } /* @charshape-id = 1*/ .Outline-7 > span { color: #000000; } .Outline-7 > span.lang-ko { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-en { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-cn { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-jp { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-other { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } .Outline-7 > span.lang-user { font-family: "바탕", serif; font-size: 10pt; } .Page-Number { /* @parashape-id = 2*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Page-Number > span { line-height: 1.6; } /* @charshape-id = 0*/ .Page-Number > span { color: #000000; } .Page-Number > span.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } .Page-Number > span.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } .Header { /* @parashape-id = 11*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } .Header > span { line-height: 1.5; } /* @charshape-id = 2*/ .Header > span { color: #000000; } .Header > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Header > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .Footnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Footnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Footnote > span { color: #000000; } .Footnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Footnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Endnote { /* @parashape-id = 0*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } .Endnote > span { line-height: 1.3; } /* @charshape-id = 3*/ .Endnote > span { color: #000000; } .Endnote > span.lang-ko { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-en { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-cn { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-jp { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-other { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } .Endnote > span.lang-user { font-family: "바탕", serif; font-size: 9pt; } .Memo { /* @parashape-id = 1*/ margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } .Memo > span { line-height: 1.6; } /* @charshape-id = 4*/ .Memo > span { color: #000000; } .Memo > span.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } .Memo > span.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } /* Paragraph attributes */ p.parashape-0 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: -13.1pt; padding-left: 13.1pt; min-height: 1.3em; } p.parashape-0 > span { line-height: 1.3; } p.parashape-1 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-1 > span { line-height: 1.6; } p.parashape-2 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-2 > span { line-height: 1.6; } p.parashape-3 { margin: 0pt 0pt 0pt 15pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-3 > span { line-height: 1.6; } p.parashape-4 { margin: 0pt 0pt 0pt 10pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-4 > span { line-height: 1.6; } p.parashape-5 { margin: 0pt 0pt 0pt 20pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-5 > span { line-height: 1.6; } p.parashape-6 { margin: 0pt 0pt 0pt 30pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-6 > span { line-height: 1.6; } p.parashape-7 { margin: 0pt 0pt 0pt 40pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-7 > span { line-height: 1.6; } p.parashape-8 { margin: 0pt 0pt 0pt 50pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-8 > span { line-height: 1.6; } p.parashape-9 { margin: 0pt 0pt 0pt 60pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-9 > span { line-height: 1.6; } p.parashape-10 { margin: 0pt 0pt 0pt 70pt; text-align: justify; text-indent: 0pt; min-height: 1.6em; } p.parashape-10 > span { line-height: 1.6; } p.parashape-11 { margin: 0pt 0pt 0pt 0pt; text-align: justify; text-indent: 0pt; min-height: 1.5em; } p.parashape-11 > span { line-height: 1.5; } /* Text attributes */ span.charshape-0 { color: #000000; } span.charshape-0.lang-ko { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-en { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-cn { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-jp { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-other { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-symbol { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-0.lang-user { font-family: "굴림", sans-serif; font-size: 10pt; } span.charshape-1 { color: #000000; } span.charshape-1.lang-ko { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-en { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-cn { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-jp { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-other { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-symbol { font-family: "바탕", serif; font-size: 10pt; } span.charshape-1.lang-user { font-family: "바탕", serif; font-size: 10pt; } span.charshape-2 { color: #000000; } span.charshape-2.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-2.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-3 { color: #000000; } span.charshape-3.lang-ko { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-en { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-cn { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-jp { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-other { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-symbol { font-family: "바탕", serif; font-size: 9pt; } span.charshape-3.lang-user { font-family: "바탕", serif; font-size: 9pt; } span.charshape-4 { color: #000000; } span.charshape-4.lang-ko { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-en { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-cn { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-jp { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-other { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-symbol { font-family: "굴림", sans-serif; font-size: 9pt; } span.charshape-4.lang-user { font-family: "굴림", sans-serif; font-size: 9pt; } .borderfill-1 { border-top: 1px none #000000; border-right: 1px none #000000; border-bottom: 1px none #000000; border-left: 1px none #000000; background-color: #ffffff; } ================================================ FILE: tests/hwp5_tests/fixtures/viewtext.hwp.bodytext.section0.json ================================================ [ { "content": { "charshapes": 1, "controlmask": 4, "instance_id": 0, "linesegs": 0, "parashape_id": 2, "rangetags": 0, "split": 3, "style_id": 0, "text": 2147483771 }, "level": 0, "payload": [ "7b 00 00 80 04 00 00 00 02 00 00 03 01 00 00 00", "00 00 00 00 00 00" ], "seqno": 0, "size": 22, "tagid": 66, "tagname": "HWPTAG_PARA_HEADER", "type": "Paragraph" }, { "content": { "chunks": [ [ [ 0, 8 ], { "chid": "secd", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 8, 16 ], { "chid": "cold", "code": 2, "param": "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" } ], [ [ 16, 122 ], "\uc774 \ubb38\uc11c\ub294 \uc0c1\uc704 \ubc84\uc804\uc758 \ubc30\ud3ec\uc6a9 \ubb38\uc11c\uc785\ub2c8\ub2e4. \ubb38\uc11c\ub97c \uc77d\uc73c\ub824\uba74 \ucd5c\uc2e0 \ubc84\uc804\uc758 \ud55c\uae00 \ub610\ub294 \ud55c\uae00 \uc804\uc6a9 \ubdf0\uc5b4\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. (\uc8fc\uc758! \ud604\uc7ac \uc0c1\ud0dc\uc5d0\uc11c \ubb38\uc11c\ub97c \uc800\uc7a5\ud558\ub294 \uacbd\uc6b0 \uc6d0\ub798 \ubb38\uc11c\uc758 \ub0b4\uc6a9\uc774 \uc0ac\ub77c\uc9d1\ub2c8\ub2e4.)" ], [ [ 122, 123 ], { "code": 13 } ] ] }, "level": 1, "payload": [ "02 00 64 63 65 73 00 00 00 00 00 00 00 00 02 00", "02 00 64 6c 6f 63 00 00 00 00 00 00 00 00 02 00", "74 c7 20 00 38 bb 1c c1 94 b2 20 00 c1 c0 04 c7", "20 00 84 bc 04 c8 58 c7 20 00 30 bc ec d3 a9 c6", "20 00 38 bb 1c c1 85 c7 c8 b2 e4 b2 2e 00 20 00", "38 bb 1c c1 7c b9 20 00 7d c7 3c c7 24 b8 74 ba", "20 00 5c cd e0 c2 20 00 84 bc 04 c8 58 c7 20 00", "5c d5 00 ae 20 00 10 b6 94 b2 20 00 5c d5 00 ae", "20 00 04 c8 a9 c6 20 00 f0 bd b4 c5 00 ac 20 00", "44 d5 94 c6 69 d5 c8 b2 e4 b2 2e 00 20 00 28 00", "fc c8 58 c7 21 00 20 00 04 d6 ac c7 20 00 c1 c0", "dc d0 d0 c5 1c c1 20 00 38 bb 1c c1 7c b9 20 00", "00 c8 a5 c7 58 d5 94 b2 20 00 bd ac b0 c6 20 00", "d0 c6 98 b7 20 00 38 bb 1c c1 58 c7 20 00 b4 b0", "a9 c6 74 c7 20 00 ac c0 7c b7 d1 c9 c8 b2 e4 b2", "2e 00 29 00 0d 00" ], "seqno": 1, "size": 246, "tagid": 67, "tagname": "HWPTAG_PARA_TEXT", "type": "ParaText" }, { "content": { "charshapes": [ [ 0, 1 ] ] }, "level": 1, "payload": [ "00 00 00 00 01 00 00 00" ], "seqno": 2, "size": 8, "tagid": 68, "tagname": "HWPTAG_PARA_CHAR_SHAPE", "type": "ParaCharShape" }, { "content": { "chid": "secd", "columnspacing": 1134, "defaultTabStops": 8000, "flags": 0, "grid_horizontal": 0, "grid_vertical": 0, "numbering_shape_id": 1, "starting_equationnum": 0, "starting_pagenum": 0, "starting_picturenum": 0, "starting_tablenum": 0, "unknown1": 0, "unknown2": 0 }, "level": 1, "payload": [ "64 63 65 73 00 00 00 00 6e 04 00 00 00 00 40 1f", "00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00" ], "seqno": 3, "size": 36, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "SectionDef" }, { "content": { "attr": 0, "bookbinding_offset": 0, "bottom_offset": 4252, "footer_offset": 4252, "header_offset": 4252, "height": 84188, "left_offset": 8504, "right_offset": 8504, "top_offset": 5668, "width": 59528 }, "level": 2, "payload": [ "88 e8 00 00 dc 48 01 00 38 21 00 00 38 21 00 00", "24 16 00 00 9c 10 00 00 9c 10 00 00 9c 10 00 00", "00 00 00 00 00 00 00 00" ], "seqno": 4, "size": 40, "tagid": 73, "tagname": "HWPTAG_PAGE_DEF", "type": "PageDef" }, { "content": { "flags": 0, "notes_spacing": 283, "prefix": 0, "splitter_color": 0, "splitter_length": -1, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": -1, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 ff ff ff ff", "52 03 37 02 1b 01 01 01 00 00 00 00" ], "seqno": 5, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "flags": 0, "notes_spacing": 0, "prefix": 0, "splitter_color": 0, "splitter_length": 12280, "splitter_margin_bottom": 567, "splitter_margin_top": 850, "splitter_stroke_type": 1, "splitter_unknown": 224, "splitter_width": 1, "starting_number": 1, "suffix": 41, "usersymbol": 0 }, "level": 2, "payload": [ "00 00 00 00 00 00 00 00 29 00 01 00 f8 2f e0 00", "52 03 37 02 00 00 01 01 00 00 00 00" ], "seqno": 6, "size": 28, "tagid": 74, "tagname": "HWPTAG_FOOTNOTE_SHAPE", "type": "FootnoteShape" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 7, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 8, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "borderfill_id": 0, "flags": 1, "margin": { "bottom": 1417, "left": 1417, "right": 1417, "top": 1417 } }, "level": 2, "payload": [ "01 00 00 00 89 05 89 05 89 05 89 05 00 00" ], "seqno": 9, "size": 14, "tagid": 75, "tagname": "HWPTAG_PAGE_BORDER_FILL", "type": "PageBorderFill" }, { "content": { "attr2": 0, "chid": "cold", "flags": 4100, "spacing": 0, "splitter": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "64 6c 6f 63 04 10 00 00 00 00 00 00 00 00 00 00" ], "seqno": 10, "size": 16, "tagid": 71, "tagname": "HWPTAG_CTRL_HEADER", "type": "ColumnsDef" } ] ================================================ FILE: tests/hwp5_tests/fixtures/viewtext.hwp.docinfo.json ================================================ [ { "content": { "character_unit_loc_in_paragraph": 16, "endnote_startnum": 1, "footnote_startnum": 1, "list_id": 0, "math_startnum": 1, "page_startnum": 1, "paragraph_id": 0, "picture_startnum": 1, "section_count": 1, "table_startnum": 1 }, "level": 0, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 00 00", "00 00 00 00 00 00 10 00 00 00" ], "seqno": 0, "size": 26, "tagid": 16, "tagname": "HWPTAG_DOCUMENT_PROPERTIES", "type": "DocumentProperties" }, { "content": { "bindata": 0, "borderfills": 1, "bullets": 0, "charshapes": 5, "cn_fonts": 2, "en_fonts": 2, "jp_fonts": 2, "ko_fonts": 2, "memoshapes": 0, "numberings": 1, "other_fonts": 2, "parashapes": 12, "styles": 14, "symbol_fonts": 2, "tabdefs": 3, "user_fonts": 2 }, "level": 0, "payload": [ "00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00", "01 00 00 00 05 00 00 00 03 00 00 00 01 00 00 00", "00 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00" ], "seqno": 1, "size": 64, "tagid": 17, "tagname": "HWPTAG_ID_MAPPINGS", "type": "IdMappings" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 2, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 3, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 4, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 5, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 6, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 7, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 8, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 9, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 10, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 11, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 12, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 13, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Gulim", "flags": 97, "name": "\uad74\ub9bc", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 11, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 74 ad bc b9 02 0b 06 00 00 01 01 01 01", "01 05 00 47 00 75 00 6c 00 69 00 6d 00" ], "seqno": 14, "size": 29, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "default_font": "Batang", "flags": 97, "name": "\ubc14\ud0d5", "panose1": { "arm_style": 1, "contrast": 0, "family_type": 2, "letterform": 1, "midline": 1, "proportion": 0, "serif_style": 3, "stroke_variation": 1, "weight": 6, "x_height": 1 } }, "level": 1, "payload": [ "61 02 00 14 bc d5 d0 02 03 06 00 00 01 01 01 01", "01 06 00 42 00 61 00 74 00 61 00 6e 00 67 00" ], "seqno": 15, "size": 31, "tagid": 19, "tagname": "HWPTAG_FACE_NAME", "type": "FaceName" }, { "content": { "borderflags": 0, "bottom": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "diagonal": { "color": 0, "stroke_flags": 1, "width_flags": 0 }, "fill_colorpattern": { "background_color": -1, "pattern_color": 0, "pattern_type_flags": 4294967295 }, "fillflags": 1, "left": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "right": { "color": 0, "stroke_flags": 0, "width_flags": 0 }, "top": { "color": 0, "stroke_flags": 0, "width_flags": 0 } }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00", "01 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff", "00 00 00 00" ], "seqno": 16, "size": 52, "tagid": 20, "tagname": "HWPTAG_BORDER_FILL", "type": "BorderFill", "unparsed": [ "00 00 00 00" ] }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 17, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 1000, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 e8 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 18, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_width_expansion": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 64", "64 64 64 64 64 00 00 00 00 00 00 00 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 19, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 1, "en": 1, "jp": 1, "ko": 1, "other": 1, "symbol": 1, "user": 1 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "01 00 01 00 01 00 01 00 01 00 01 00 01 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 20, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "basesize": 900, "charshapeflags": 0, "font_face": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "letter_spacing": { "cn": -5, "en": -5, "jp": -5, "ko": -5, "other": -5, "symbol": -5, "user": -5 }, "letter_width_expansion": { "cn": 95, "en": 95, "jp": 95, "ko": 95, "other": 95, "symbol": 95, "user": 95 }, "position": { "cn": 0, "en": 0, "jp": 0, "ko": 0, "other": 0, "symbol": 0, "user": 0 }, "relative_size": { "cn": 100, "en": 100, "jp": 100, "ko": 100, "other": 100, "symbol": 100, "user": 100 }, "shade_color": -1, "shadow_color": 11711154, "shadow_space": { "x": 10, "y": 10 }, "text_color": 0, "underline_color": 0 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 5f", "5f 5f 5f 5f 5f fb fb fb fb fb fb fb 64 64 64 64", "64 64 64 00 00 00 00 00 00 00 84 03 00 00 00 00", "00 00 0a 0a 00 00 00 00 00 00 00 00 ff ff ff ff", "b2 b2 b2 00" ], "seqno": 21, "size": 68, "tagid": 21, "tagname": "HWPTAG_CHAR_SHAPE", "type": "CharShape" }, { "content": { "flags": 0, "tabs": [] }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00" ], "seqno": 22, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 1, "tabs": [] }, "level": 1, "payload": [ "01 00 00 00 00 00 00 00" ], "seqno": 23, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "flags": 2, "tabs": [] }, "level": 1, "payload": [ "02 00 00 00 00 00 00 00" ], "seqno": 24, "size": 8, "tagid": 22, "tagname": "HWPTAG_TAB_DEF", "type": "TabDef" }, { "content": { "levels": [ { "charshape_id": -1, "flags": 12, "numbering_format": "^1.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^2.", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "^3)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "^4)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 12, "numbering_format": "(^5)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 268, "numbering_format": "(^6)", "space": 50, "width_correction": 0 }, { "charshape_id": -1, "flags": 44, "numbering_format": "^7", "space": 50, "width_correction": 0 } ], "starting_number": 0 }, "level": 1, "payload": [ "0c 00 00 00 00 00 32 00 ff ff ff ff 03 00 5e 00", "31 00 2e 00 0c 01 00 00 00 00 32 00 ff ff ff ff", "03 00 5e 00 32 00 2e 00 0c 00 00 00 00 00 32 00", "ff ff ff ff 03 00 5e 00 33 00 29 00 0c 01 00 00", "00 00 32 00 ff ff ff ff 03 00 5e 00 34 00 29 00", "0c 00 00 00 00 00 32 00 ff ff ff ff 04 00 28 00", "5e 00 35 00 29 00 0c 01 00 00 00 00 32 00 ff ff", "ff ff 04 00 28 00 5e 00 36 00 29 00 2c 00 00 00", "00 00 32 00 ff ff ff ff 02 00 5e 00 37 00 00 00" ], "seqno": 25, "size": 144, "tagid": 23, "tagname": "HWPTAG_NUMBERING", "type": "Numbering" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": -2620, "linespacing": 130, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 1 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 c4 f5 ff ff", "00 00 00 00 00 00 00 00 82 00 00 00 01 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 26, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 384, "tabdef_id": 0 }, "level": 1, "payload": [ "80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 27, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 28, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 3000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 128, "tabdef_id": 0 }, "level": 1, "payload": [ "80 00 00 00 b8 0b 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 29, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 2000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 8398976, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 00 d0 07 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 30, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 4000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 41953408, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 02 a0 0f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 31, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 6000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 75507840, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 04 70 17 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 32, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 8000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 109062272, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 06 40 1f 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 33, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 10000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 142616704, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 08 10 27 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 34, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 12000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 176171136, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0a e0 2e 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 35, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 14000, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 160, "numbering_bullet_id": 0, "parashapeflags": 209725568, "tabdef_id": 0 }, "level": 1, "payload": [ "80 28 80 0c b0 36 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 36, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "border_bottom": 0, "border_left": 0, "border_right": 0, "border_top": 0, "borderfill_id": 1, "doubled_margin_bottom": 0, "doubled_margin_left": 0, "doubled_margin_right": 0, "doubled_margin_top": 0, "flags2": 0, "indent": 0, "linespacing": 150, "numbering_bullet_id": 0, "parashapeflags": 0, "tabdef_id": 2 }, "level": 1, "payload": [ "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "00 00 00 00 00 00 00 00 96 00 00 00 02 00 00 00", "01 00 00 00 00 00 00 00 00 00 00 00 00 00" ], "seqno": 37, "size": 46, "tagid": 25, "tagname": "HWPTAG_PARA_SHAPE", "type": "ParaShape" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubc14\ud0d5\uae00", "name": "Normal", "next_style_id": 0, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "03 00 14 bc d5 d0 00 ae 06 00 4e 00 6f 00 72 00", "6d 00 61 00 6c 00 00 00 12 04 02 00 01 00 00 00" ], "seqno": 38, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\ubcf8\ubb38", "name": "Body", "next_style_id": 1, "parashape_id": 3, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bc 38 bb 04 00 42 00 6f 00 64 00 79 00", "00 01 12 04 03 00 01 00 00 00" ], "seqno": 39, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 1", "name": "Outline 1", "next_style_id": 2, "parashape_id": 4, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 31 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 31 00 00 02", "12 04 04 00 01 00 00 00" ], "seqno": 40, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 2", "name": "Outline 2", "next_style_id": 3, "parashape_id": 5, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 32 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 32 00 00 03", "12 04 05 00 01 00 00 00" ], "seqno": 41, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 3", "name": "Outline 3", "next_style_id": 4, "parashape_id": 6, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 33 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 33 00 00 04", "12 04 06 00 01 00 00 00" ], "seqno": 42, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 4", "name": "Outline 4", "next_style_id": 5, "parashape_id": 7, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 34 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 34 00 00 05", "12 04 07 00 01 00 00 00" ], "seqno": 43, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 5", "name": "Outline 5", "next_style_id": 6, "parashape_id": 8, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 35 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 35 00 00 06", "12 04 08 00 01 00 00 00" ], "seqno": 44, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 6", "name": "Outline 6", "next_style_id": 7, "parashape_id": 9, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 36 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 36 00 00 07", "12 04 09 00 01 00 00 00" ], "seqno": 45, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 1, "flags": 0, "lang_id": 1042, "local_name": "\uac1c\uc694 7", "name": "Outline 7", "next_style_id": 8, "parashape_id": 10, "unknown": 0 }, "level": 1, "payload": [ "04 00 1c ac 94 c6 20 00 37 00 09 00 4f 00 75 00", "74 00 6c 00 69 00 6e 00 65 00 20 00 37 00 00 08", "12 04 0a 00 01 00 00 00" ], "seqno": 46, "size": 40, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 0, "flags": 0, "lang_id": 1042, "local_name": "\ucabd \ubc88\ud638", "name": "Page Number", "next_style_id": 9, "parashape_id": 2, "unknown": 0 }, "level": 1, "payload": [ "04 00 bd ca 20 00 88 bc 38 d6 0b 00 50 00 61 00", "67 00 65 00 20 00 4e 00 75 00 6d 00 62 00 65 00", "72 00 00 09 12 04 02 00 00 00 00 00" ], "seqno": 47, "size": 44, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 2, "flags": 0, "lang_id": 1042, "local_name": "\uba38\ub9ac\ub9d0", "name": "Header", "next_style_id": 10, "parashape_id": 11, "unknown": 0 }, "level": 1, "payload": [ "03 00 38 ba ac b9 d0 b9 06 00 48 00 65 00 61 00", "64 00 65 00 72 00 00 0a 12 04 0b 00 02 00 00 00" ], "seqno": 48, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\uac01\uc8fc", "name": "Footnote", "next_style_id": 11, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 01 ac fc c8 08 00 46 00 6f 00 6f 00 74 00", "6e 00 6f 00 74 00 65 00 00 0b 12 04 00 00 03 00", "00 00" ], "seqno": 49, "size": 34, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 3, "flags": 0, "lang_id": 1042, "local_name": "\ubbf8\uc8fc", "name": "Endnote", "next_style_id": 12, "parashape_id": 0, "unknown": 0 }, "level": 1, "payload": [ "02 00 f8 bb fc c8 07 00 45 00 6e 00 64 00 6e 00", "6f 00 74 00 65 00 00 0c 12 04 00 00 03 00 00 00" ], "seqno": 50, "size": 32, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" }, { "content": { "charshape_id": 4, "flags": 0, "lang_id": 1042, "local_name": "\uba54\ubaa8", "name": "Memo", "next_style_id": 13, "parashape_id": 1, "unknown": 0 }, "level": 1, "payload": [ "02 00 54 ba a8 ba 04 00 4d 00 65 00 6d 00 6f 00", "00 0d 12 04 01 00 04 00 00 00" ], "seqno": 51, "size": 26, "tagid": 26, "tagname": "HWPTAG_STYLE", "type": "Style" } ] ================================================ FILE: tests/hwp5_tests/fixtures/viewtext.hwp.formatted.xml ================================================