[
  {
    "path": ".coldtype.win.py",
    "content": "WINDOW_PIN = \"E\"\nWINDOW_CONTENT_SCALE = 1\nWINDOW_FLOAT = 1\n#WINDOW_TRANSPARENT = 1\n\n# this should be a properly-configured benv using b3denv\n# BLENDER_PATH = \"C:/Program Files/Blender Foundation/Blender 3.3/blender.exe\"\n\nfrom pathlib import Path\nFFMPEG_COMMAND = Path(\"~/Downloads/ffmpeg-master-latest-win64-gpl/ffmpeg-master-latest-win64-gpl/bin/ffmpeg.exe\").expanduser()"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.vscode\n.idea\nenv\nvenv\nvenv2\nvenv37\nvenv-arm\nvenv_x64\nvenv*\nbenv\nbenv*\ntest/visuals/artifacts/*\ntest/visuals/*.blend1\ntest/visuals/test_media\ntest/visuals/pdfs\nbuild\ndist\ncoldtype.egg-info\npackages/**/*.egg-info\n__pycache__\n*.pyc\n*.patch\ncoldtype/scratch.svg\n*_frames\n*_layers\nrenders\nmedia\nscratch\nscratch.py\nscratch*\n.coldtype.py\nrecordings\npreserved\ngenerative_font.ufo\nfontmakes\ntest_cairo.pdf\ntest/ignorables/\nexamples/*.pdf\nexamples/*.otf\nexamples/*.woff2\nexamples/fonts/*.ufo\n*.blend1\n*.blend\nexamples/blender/blends\nexamples/blender/fonts\nprofile.profile\nprofile_result\ndeps.txt\n_coldtype_notebook_tmp\n.ipynb_checkpoints\n_GoogleFonts\n_DownloadedFonts\n_site\ncoldtype/demo/glfw-*"
  },
  {
    "path": ".python-version",
    "content": "3.13"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nStarting at 0.5.0, all notable changes to Coldtype will be described here (briefly). Edit: looks like I forgot this existed, so we're starting again at 0.5.16\n\n## [0.5.0] - 2021-06-02\n### Added\n- `coldtype.fx.skia`\n- `SkiaImage` (subclass of `DATImage`, which has been moved to `coldtype.img` module)\n### Removed\n- `.phototype`/`.color_phototype` methods on `DATPen` — these are now \"chainable\" methods in the _coldtype.fx.skia_ module, and can be applied by importing ala `from coldtype.fx.skia import phototype` and then chaining to a pen, `.ch(phototype(...))`\n\n## [0.5.16] - 2021-08-03\n### Added\n- Minor improvements to the self-rasterizing/drawbot-renderer, to support transparent backgrounds\n### Removed\n- `@drawbot_script` and `@drawbot_animation` from the global import; now reside and can be imported from `coldtype.drawbot` module\n\n## [0.5.17] - 2021-08-06\n### Fixed\n- Quoting paths in `blend_frame`\n### Removed\n- `unicodedata2` from primary installation requirements, in order to make blender installation smoother (i.e. not require Include header-copying from python source tarball) — thanks @colinmford!\n\n## [0.6.0] - 2021-08-30\n### Added\n- New features for managing meshes in BlenderPen\n- embedded profiles, so `-p b3d` should now work globally\n### Removed\n- `duration` keyword for `@animation`, since it’s redundant to `timeline=<int>` shortcut\n\n## [0.6.1] - 2021-08-31\n### Added\n- Support for `kp` and `tu` in `Glyphwise`\n\n## [0.6.2] - 2021-09-01\n### Added\n- Support for single-char `Glyphwise`\n- `Glyphwise` now returns `DATPens`, not `DraftingPens`\n\n## [0.6.3] - 2021-09-07\n### Added\n- Support for multi-return styler fn for `Glyphwise`\n- Coldtype panel for `@b3d_sequencer`\n\n## [0.6.6] - 2021-09-10\n### Added\n- Better MIDI primitives\n- `coldtype midi` midi viewer\n\n## [0.6.8] - 2021-09-16\n### Added\n- Better axidraw primitives in new `coldtype.axidraw` namespace, demonstrated in `test/visuals/test_axidraw.png`\n- New `numpad` special variable that can handle up to 9 special actions, triggerable from the numpad with the viewer enabled\n### Removed\n- Dependency on `PyOpenGL-accelerate` in the `[viewer]` extra — not really sure why that was there to begin with.\n\n## [0.6.9] - 2021-09-20\n### Added\n- Restored some audio capabilities, via `audio=` keywords and the new `ConfigOption.EnableAudio`/`KeyboardShortcut.EnableAudio`\n\n## [0.7.0] - 2021-09-26\n### Fixed\n- General tidying, particularly for use in `[notebook]`\n### Removed\n- Dependency on `noise` in `[viewer]`\n\n## [0.7.1] - 2021-09-28\n### Added\n- Support for configurable `BLENDER_APP_PATH`\n- Better support for Windows-Blender workflow\n\n## [0.7.2] - 2021-09-29\n### Added\n- Support for gif export in `@notebook_animation.show`\n\n## [0.7.3] - 2021-10-07\n### Added\n- `strip=` kwarg on StSt (defaulting to `True`) so incoming text is automatically stripped (but can be overriden as in the `Glyphwise` use of `StSt`)\n- `coldtype.blender.fluent` experimental chainable interface for direct manipulation of blender objects\n\n## [0.7.4] - 2021-10-21\n### Added\n- Support for lineTo's in `distribute_on_path`\n- More `coldtype.blender.fluent` interface\n- Ability to exit from renderer with -1 in `prenormalize_filepath`\n\n## [0.7.5] - 2021-10-25\n### Added\n- `@ui` decorator idea, to be used/tested in Goodhertz plugin-builder\n\n## [0.7.6] - 2021-11-02\n### Added\n- `.depth`, `.split`, `.wordPens`, `.walkp`\n- `î` and `ï` for `index` and `indices`, also both of those on `DraftingPen` now, since they shadow functionality of `mod_contour` and `map_points`\n- `utag` in walk.data\n- camelCase throughout examples, headed towards standardizing on that\n- `.geti` for time-based fetch in `AsciiTimeline`\n### Fixed\n- `style=` on precomposed/@renderable-cached\n\n## [0.8.0] - 2021-12-13\n### Added\n- `MidiTimeline` to replace `MidiReader` (`MidiTimeline` uses standard `Timeline` capabilities rather than Midi-specifi classes)\n- `AsciiTimeline` improvements and changed api, old `[]`-style access replaced by `.ki`; keyframe support also added, via `.kf`; many new examples in `examples/animations/ascii_*`\n- `Easeable` class to encapsulate all easing functionality, i.e. a `Timeable` bound to a frame value, meaning frame values can now be implied on all `@animation`-bound timelines (via `Timeline.hold`)\n- Generic lyric-video sentence building on timelines, available contextually as `.words` on a timeline (example in `examples/animations/ascii_words.py`) (adapted from older `Sequence` class (not recommended for use), originally developed for lyric video animation in Premiere, though works better now with Blender)\n- Automatic timeline viewer, available with `-tv 1` command-line arg or toggleable with `V` key in viewer app\n- A lot more examples\n- Normalized behavior of `point=` handling in `.scale`/`.rotate`/`.skew`\n- Manual-drive `BlenderTimeline`\n### Removed\n- Implicit `BlenderTimeline` on `@b3d_animation` and `@b3d_sequencer`\n- `.progress` method (in favor of new `Easeable` apis)\n### Changed\n- `.e` now defaults to `loops=1`, rather than `loops=0`\n\n## [0.8.1] - 2021-12-28\n### Fixed\n- Audio support via `pyaudio`\n\n## [0.8.2] - 2022-01-10\n### Fixed\n- Error where windows can't watch non-existent file\n- Error where windows barfs on os.uname\n\n## [0.9.0] - 2022-01-18\n### Added\n- `coldtype.runon.runon` abstraction for chained/fluent method calling on nested lists\n- `coldtype.runon.path` i.e. `P` as a drop-in replacement for `DATPen/DATPens` (should be fully backwards compatible), which extends `coldtype.runon.runon`\n### Fixed (maybe)\n- File watching on windows\n### Removed\n- `watchdog` dependency (using `stat().st_mtime` polling instead now since we’re already running an event loop out of necessity for the viewer)\n\n## [0.9.1] - 2022-01-31\n### Added\n- `memory=` keyword for renderables (attempting some kind of support for processing-style live-coded animations)\n- `fvar_<x>` generic style for addressing sorted variable font axes\n- `x` key for xray mode\n- `g` key for grid mode\n- `p` key to print renderable content\n\n## [0.9.2] - 2022-02-21\n### Added\n- support for platform-specific config files, `.coldtype.mac.py`, `.coldtype.win.py`, `.coldtype.lin.py`\n- minor Blender improvements for 3D workflow\n\n## [0.9.3] - 2022-03-08\n### Added\n- `C` as valid alias for `CX` on xalign\n### Fixed\n- `filterContours` copy before modify\n- Orphan-deletion in Blender\n\n## [0.9.5] - 2022-03-24\n### Fixed\n- `bake=True` for a `@b3d_animation`\n\n## [0.9.6] - 2022-07-13\n### Fixed\n- Spelling mistakes [h/t @HaydenBL]\n### Added\n- Tons of experimental additional functionality for more direct-style scripting of blender and forthcoming coldtype-based blender typography addon (all in fluent.py, with some supporting tweaks in other coldtyper.blender infrastructure)\n\n## [0.9.7] - 2022-08-06\n### Added\n- New transparency background when `bg` not specified\n- `render_bg` now defaults to `True`, since that seems to be the most common use-case\n- `ufo2ft` in `[blender]` optional requirements\n- simple `gifski` wrapper importable from `coldtyper.renderable.animation`\n### Fixed\n- Better error message when trying to \"release\" via ffmpeg but no files have been rendered\n\n## [0.9.8] - 2022-08-25\n### Added\n- New arg `round_result` on `SkiaImage.align`, to fix jaggy image aligning; defaults to True but is disableable\n\n## [0.9.10] - 2022-09-25\n### Fixed\n- `glyph_to_uni` in packaged mode\n\n## [0.9.11] - 2022-10-27\n### Added\n- `Runon.attach`\n### Fixed\n- Explicit include of ufoLib2 for blender\n\n## [0.9.12] - 2022-11-02\n### Added\n- `P.spread` as horizontal-only counterpart to `P.stack` (paired with `P.track` and `P.lead` respectively, funny that they rhyme oppositely whoops)\n### Fixed\n- Default `\".\"` in ALL_FONT_DIRS for linux (so colab notebooks search in their uploaded files by default)\n\n## [0.9.13] - 2022-11-08\n### Added\n- `Easeable.ec` as easing-cumulative (to help with partial rotations,\nas in the new truchet animation examples, and examples/animations/ec.py)\n\n## [0.9.14] - 2022-11-16\n### Added\n- `P.gridlayer`, `Runon.mapvch`, `Runon.mapvrc`\n\n## [0.10.0] - 2023-01-15\n### Added\n- `.up` as canonical form of `.ups`\n- Argument-less boolean operation methods for plural `P`\n- Automatic _-prefixed versions of all P methods, to get clojure-style \"phrase\"-commenting\n- `VERSIONS=` support for macro-like reversioning of a single animation\n- `Font.LibraryFind` and `Font.LibraryList` to search font registry (mac-only, windows is excruciatingly difficult)\n- `Font.names` to get style and family name of font via fontTools\n### Changed\n- `Mondrian` -> `Scaffold`\n- `th` & `tv` (true-horizontal & true-vertical) have been renamed to potential confusion (since `th` could be taken to mean `true-height`) — these are now `tx` and `ty` respectively\n\n## [0.10.2] - 2023-01-17\n### Changed\n- The Blender integration now inlines your local venv into Blender, meaning you no longer need to install any python packages into Blender's embedded python.\n\n## [0.10.4] - 2023-01-20\n### Added\n- `-rar` (`--render-and-release`) command-line option to render-and-release(-and-then-quit)\n\n## [0.10.5] - 2023-03-22\n### Improved\n- `Scaffold.cssgrid` now supports arbitrary regex keys in a dictionary arg for targeting multiple children at once (shown in test_scaffold.py)\n\n## [0.10.6] - 2023-03-23\n### Added\n- `Runon.path` and `Runon.match` (taken from `Scaffold`) as new generic features, to regex-match on nested/slashed tags (i.e. paths)\n\n## [0.10.7] - 2023-04-18\n### Fixed\n- `.ufo` font-reading on Windows\n\n## [0.10.8] - 2023-06-11\n### Fixed\n- Font issue with `coldtype demo`\n\n## [0.10.9] - 2023-06-23\n### Added\n- `b3denv` requirement, to help get default blender app path\n\n## [0.10.10] - 2023-06-30\n### Fixed\n- `b3denv` assumes Blender exists, which is wrong\n\n## [0.10.11] - 2023-07-31\n### Added\n- `P.to_code` (for a Goodhertz project that used the legacy `DATPen(s).to_code`)\n\n## [0.10.12] - 2023-07-31\n### Added\n- Experimental support for reading control changes (cc messages) from midi files, via `MidiTimeline.ci` method\n\n## [0.10.13] - 2023-08-04\n### Added\n- CycleVersionForward/CycleVersionBackward\n- Support for _version.py-style sidecar versioning\n- Support for special `__initials__` function to allow setting state from source file\n\n## [0.10.14] - 2023-09-21\n### Added\n- `Rect.contains`/`Rect.__contains__`/`in` operator for Rect\n- `E` and `W` supported on `pair_to_edges`\n- `<` as parent ref in `Scaffold.find`\n- Support `vert` as feature (without needing to specify `features=`)\n- `RestartCount` concept in renderer\n- `Font.Fontmake` for full font compilation to a tmp file\n\n## [0.10.15] - 2024-03-27\n### Added\n- `coldtype.fx.skia.freeze` for in-memory \"freezing\" of vectors (to avoid recalculation)\n- `Runon.collapseonce` for shallow collapsing\n\n## [0.10.16] - 2024-05-16\n### Added\n- Support for skia-python 87.6 on python3.12\n\n## [0.10.17]\n### Added\n- Fix for >= m87 skia-python with glfw gl-version setting (https://www.glfw.org/faq#macos / https://github.com/kyamagu/skia-python/issues/214)\n\n## [0.10.18]\n### Added\n- Support for custom global hotkeys via `custom_hotkey` function in source files\n\n## [0.10.19] - 2024-06-20\n### Fixed\n- High quality filter support for skia > m87\n\n## [0.10.20] - 2024-07-23\n### Fixed\n- Spec <=0.4.2 for python-bidi since 0.5.0 is beefed\n\n## [0.10.21] - 2024-09-30\n### Added\n- `use_skia_pathops_draw=False` kwarg override for `P.removeOverlap` to make sure we don't get all-off-curve+None quadratics in situations where we don't know how to convert that to cubics (i.e. in Blender)\n\n## [0.10.22] - 2024-10-07\n### Added\n- `Rect.fit_aspect` for easily getting an aspect inscribed by a rect\n- version lock on python-bidi\n\n## [0.11.0] - 2024-12-12\nHuge update, attempting to future proof things\n### Added\n- External dependency on coldtype/fontgoggles fork (instead of out-of-date inlined fontgoggles fork)\n### Fixed\n- Gonna be honest — fixed lots of stuff, should’ve been writing down what I was fixing!\n\n## [0.11.1] - 2024-12-15\n### Fixed\n- Make sure coldtype.drawbot does not require skia-python (via incorrect import)\n- try/except for filmjitter in coldtype.raster\n- Don’t enable audio if audio can’t be enabled (print instructions on enabling audio instead)\n\n## [0.11.2] - 2025-01-26\n### Added\n- `Font.instances` to get variable font instance information\n- `coldtype instances font=<font-search>` tool\n- `ººBLENDERINGºº` variable to quickly know if your code is running in blender or as a blender-renderer\n- `P.trim_start` and `P.trim_end` to quickly drop points from either end of a curve\n### Changed\n- `P.boxCurveTo` `factor=` keyword now expects float, not int\n### Fixed\n- Updated coldtype-fontgoggles to latest to avoid Windows thinking it could do objc\n\n## [0.11.3] - 2025-01-28\n### Added\n- Experimental support for limited keyboard layout remapping via command line -kl argument\n\n## [0.11.4] - 2025-02-20\n### Added\n- `ViewerSoloFirst` and `ViewerSoloLast` shortcuts\n### Changed\n- `VIEWER_SOLO` is now a config option, not a one-off cli arg in renderer\n\n## [0.11.5] - 2025-03-04\n### Added\n- `set_709` on `animation.export`/`FFMPEGExport` (so you can use older `ffmpeg` releases to export animations)\n\n## [0.11.6] - 2025-03-11\n### Added\n- better support for custom output with ct viewseq\n- experimental support for `Theme` class to set multiple color styles from a single object\n### Fixed\n- blender venv-inlining now look for a \"src\" directory if it exists (to match new pyproject.toml-enforced directory structure)\n\n## [0.12.0] - 2025-03-18\n### Changed\n- base dependencies for coldtype (i.e. coldtype installed without any extra) no longer support \"extended\" font formats (woff, ufo, etc.), though [viewer] extra does still provide support for these; mido requirement has also been moved out of base into viewer; the point of this is to reduce the complexity of a \"minimal\" coldtype installation (i.e. when embedded as a backend service in another python application or a Blender extension, e.g.)\n\n## [0.12.1] - 2025-03-23\n### Changed\n- refinements to Coldtype 2D panel in Blender for timeline workflow\n\n## [0.12.2] - 2025-03-31\n### Fixed\n- ability to set workarea in coldtype 2d panel (blender)\n- memory bug in harfbuzz bounding box calculation by downgrading to <0.47\n\n## [0.12.3] - 2026-03-16\n### Fixed\n- Update to b3denv for Blender 5 compatibility\n### Changed\n- Use `showinfilemanager` for cross-platform showing-in-\"finder\"\n### Added\n- `demoblender` in addition to to `demo` for `uv run coldtype demoblender -p b3dlo`\n\n## [0.12.4] - 2026-03-17\n### Fixed\n- Blender 5 fcurves utility\n\n## [0.13.0]\n### Changed\n- `coldtype` is now a metapackage that wraps `coldtype-core`, meaning `\"coldtype[viewer]\"` is no longer necessary, you can just do `uv add coldtype` or `uvx coldtype <source-file>.py` and it should work\n\n## [0.13.3]\n### Changed\n- Soundfiles are now opened with \"r\" instead of \"r+\" which I think was totally extraneous (h/t https://github.com/coldtype/coldtype/discussions/185)\n\n## [0.13.4]\n### Added\n- `<` and `>` support for `Rect` based on combo of `w` and `h`\n- `Font.metrics` for quickly-accessing somewhat normalized font metrics data\n- `chars` tool\n### Changed\n- Moved source for glyphs.py to `tools` (as a new tools directory)\n\n## [0.13.5]\n### Fixed\n- `renderer/.coldtype.py` not included in package"
  },
  {
    "path": "LICENSE",
    "content": "Copyright 2020 — Goodhertz, Inc.\n---\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README_EXTRAS.md",
    "content": "### MIDI\n\nTodo\n\n### Global hotkeys\n\nUses pynput, but on Mac permissions are a pain now: [helpful instructions](https://textexpander.com/kb/mac/textexpander-is-forcing-me-to-enable-access-for-assistive-devices-how-and-what-is-that/#:~:text=Go%20to%20the%20System%20Preferences,%E2%80%9CEnable%20for%20assistive%20devices.%E2%80%9D)\n\n### Mouse-passthrough on glfw\n\nActually specifying it might not be necessary? Seems to work on my machine\n```\nbrew install glfw --HEAD\nPYGLFW_LIBRARY=/usr/local/Cellar/glfw/HEAD-0b9e48f/lib/libglfw.3.4.dylib\n```\n\n### GCP\n\nPyTorch images seem to work nicely (`c2-deeplearning-pytorch-1-8-cu110-v20210512-debian-10`), not sure this is a real link: https://console.cloud.google.com/compute/imagesDetail/projects/ml-images/global/images/c2-deeplearning-pytorch-1-8-cu110-v20210512-debian-10?folder=&organizationId=&project=uplifted-sol-90414\nhttps://console.cloud.google.com/compute/imagesDetail/projects/ml-images/global/images/c2-deeplearning-pytorch-1-8-cu110-v20210512-debian-10\n\nSSH w/ cloud console, then:\n\n- `sudo apt install libgl1-mesa-glx` # https://github.com/conda-forge/pygridgen-feedstock/issues/10\n- `git clone https://github.com/goodhertz/coldtype`\n- `cd coldtype`\n- `pip install -e .`\n- `coldtype examples/animations/house.py -a -mp -cpu -ns` # -tc 32 (if it’s a big 32-instance)\n\n### Second Monitor\n\n`coldtype examples/simplest.py -mn list`\nshould print out names of monitors, then you match then (can be a substring) like this:\n`coldtype examples/simplest.py -mn SAM -wcs 1.0 -wp C`\n\n### Installing with extras directly from git\n\n`pip install git+https://github.com/goodhertz/coldtype#egg=coldtype[viewer,experimental]`"
  },
  {
    "path": "assets/.gitignore",
    "content": "Noto*\nTwemoji*\nSource*"
  },
  {
    "path": "assets/ColdtypeObviously.designspace",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<designspace format=\"4.0\">\n  <axes>\n    <axis tag=\"wdth\" name=\"width\" minimum=\"0\" maximum=\"1000\" default=\"1000\"/>\n  </axes>\n  <sources>\n    <source filename=\"ColdtypeObviously_BlackItalic.ufo\" familyname=\"Coldtype Obviously\" stylename=\"Black Italic\">\n      <location>\n        <dimension name=\"width\" xvalue=\"1000\"/>\n      </location>\n    </source>\n    <source filename=\"ColdtypeObviously_CompressedBlackItalic.ufo\" familyname=\"Coldtype Obviously\" stylename=\"Compressed Black Italic\">\n      <location>\n        <dimension name=\"width\" xvalue=\"0\"/>\n      </location>\n    </source>\n  </sources>\n  <instances>\n    <instance familyname=\"Coldtype Obviously\" stylename=\"Style_1\" filename=\"instances/Coldtype Obviously-Style_1.ufo\">\n      <location>\n        <dimension name=\"width\" xvalue=\"1000\"/>\n      </location>\n      <kerning/>\n      <info/>\n    </instance>\n  </instances>\n</designspace>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/fontinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>ascender</key>\n    <integer>815</integer>\n    <key>capHeight</key>\n    <integer>750</integer>\n    <key>descender</key>\n    <integer>-185</integer>\n    <key>familyName</key>\n    <string>Coldtype Obviously</string>\n    <key>guidelines</key>\n    <array/>\n    <key>italicAngle</key>\n    <real>-14.0</real>\n    <key>openTypeNameDesigner</key>\n    <string>James Edmondson</string>\n    <key>openTypeNameDesignerURL</key>\n    <string>http://ohnotype.co</string>\n    <key>openTypeNameManufacturer</key>\n    <string>OH no Type Company</string>\n    <key>openTypeNameManufacturerURL</key>\n    <string>http://ohnotype.co</string>\n    <key>openTypeOS2Panose</key>\n    <array>\n      <integer>4</integer>\n      <integer>2</integer>\n      <integer>1</integer>\n      <integer>5</integer>\n      <integer>4</integer>\n      <integer>1</integer>\n      <integer>2</integer>\n      <integer>2</integer>\n      <integer>1</integer>\n      <integer>0</integer>\n    </array>\n    <key>openTypeOS2UnicodeRanges</key>\n    <array>\n      <integer>0</integer>\n      <integer>1</integer>\n      <integer>2</integer>\n    </array>\n    <key>openTypeOS2VendorID</key>\n    <string>OHNO</string>\n    <key>openTypeOS2WeightClass</key>\n    <integer>800</integer>\n    <key>openTypeOS2WidthClass</key>\n    <integer>5</integer>\n    <key>postscriptBlueFuzz</key>\n    <integer>0</integer>\n    <key>postscriptBlueScale</key>\n    <real>0.046875</real>\n    <key>postscriptBlueShift</key>\n    <integer>7</integer>\n    <key>postscriptBlueValues</key>\n    <array>\n      <integer>-14</integer>\n      <integer>2</integer>\n      <integer>660</integer>\n      <integer>673</integer>\n      <integer>747</integer>\n      <integer>763</integer>\n      <integer>774</integer>\n      <integer>789</integer>\n    </array>\n    <key>postscriptFamilyBlues</key>\n    <array>\n      <integer>-14</integer>\n      <integer>2</integer>\n      <integer>604</integer>\n      <integer>618</integer>\n      <integer>750</integer>\n      <integer>763</integer>\n      <integer>772</integer>\n      <integer>784</integer>\n    </array>\n    <key>postscriptFamilyOtherBlues</key>\n    <array>\n      <integer>-153</integer>\n      <integer>-134</integer>\n    </array>\n    <key>postscriptFontName</key>\n    <string>Obviously-Black</string>\n    <key>postscriptForceBold</key>\n    <false/>\n    <key>postscriptOtherBlues</key>\n    <array>\n      <integer>-139</integer>\n      <integer>-120</integer>\n    </array>\n    <key>postscriptStemSnapH</key>\n    <array>\n      <integer>262</integer>\n      <integer>333</integer>\n    </array>\n    <key>postscriptStemSnapV</key>\n    <array>\n      <integer>310</integer>\n      <integer>337</integer>\n    </array>\n    <key>postscriptWeightName</key>\n    <string>Extra-bold</string>\n    <key>styleName</key>\n    <string>Black Italic</string>\n    <key>unitsPerEm</key>\n    <integer>1000</integer>\n    <key>versionMajor</key>\n    <integer>0</integer>\n    <key>versionMinor</key>\n    <integer>0</integer>\n    <key>xHeight</key>\n    <integer>660</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/C_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"C\" format=\"2\">\n  <advance width=\"623\"/>\n  <unicode hex=\"0043\"/>\n  <outline>\n    <contour>\n      <point x=\"449\" y=\"373\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"362\" y=\"373\"/>\n      <point x=\"347\" y=\"384\"/>\n      <point x=\"352\" y=\"405\" type=\"curve\"/>\n      <point x=\"357\" y=\"423\"/>\n      <point x=\"378\" y=\"427\"/>\n      <point x=\"461\" y=\"427\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"501\" y=\"427\"/>\n      <point x=\"552\" y=\"427\"/>\n      <point x=\"621\" y=\"421\" type=\"curve\"/>\n      <point x=\"649\" y=\"527\"/>\n      <point x=\"683\" y=\"633\"/>\n      <point x=\"717\" y=\"739\" type=\"curve\"/>\n      <point x=\"656\" y=\"749\"/>\n      <point x=\"582\" y=\"761\"/>\n      <point x=\"492\" y=\"761\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"243\" y=\"761\"/>\n      <point x=\"105\" y=\"704\"/>\n      <point x=\"38\" y=\"435\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-46\" y=\"96\"/>\n      <point x=\"73\" y=\"-11\"/>\n      <point x=\"296\" y=\"-11\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"405\" y=\"-11\"/>\n      <point x=\"465\" y=\"0\"/>\n      <point x=\"534\" y=\"12\" type=\"curve\"/>\n      <point x=\"556\" y=\"134\"/>\n      <point x=\"582\" y=\"257\"/>\n      <point x=\"610\" y=\"379\" type=\"curve\"/>\n      <point x=\"554\" y=\"373\"/>\n      <point x=\"487\" y=\"373\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/D_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"D\" format=\"2\">\n  <advance width=\"721\"/>\n  <unicode hex=\"0044\"/>\n  <anchor x=\"185\" y=\"390\" name=\"bar\"/>\n  <outline>\n    <contour>\n      <point x=\"299\" y=\"142\" type=\"line\"/>\n      <point x=\"310\" y=\"205\"/>\n      <point x=\"327\" y=\"271\"/>\n      <point x=\"354\" y=\"382\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"376\" y=\"471\"/>\n      <point x=\"398\" y=\"555\"/>\n      <point x=\"422\" y=\"633\" type=\"curve\"/>\n      <point x=\"348\" y=\"536\" type=\"line\"/>\n      <point x=\"371\" y=\"539\"/>\n      <point x=\"393\" y=\"541\"/>\n      <point x=\"412\" y=\"541\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"441\" y=\"541\"/>\n      <point x=\"450\" y=\"526\"/>\n      <point x=\"412\" y=\"373\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"384\" y=\"262\"/>\n      <point x=\"368\" y=\"246\"/>\n      <point x=\"338\" y=\"246\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"318\" y=\"246\"/>\n      <point x=\"298\" y=\"247\"/>\n      <point x=\"279\" y=\"255\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"324\" y=\"0\" type=\"line\"/>\n      <point x=\"548\" y=\"0\"/>\n      <point x=\"650\" y=\"47\"/>\n      <point x=\"727\" y=\"353\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"809\" y=\"678\"/>\n      <point x=\"712\" y=\"750\"/>\n      <point x=\"492\" y=\"750\" type=\"curve\"/>\n      <point x=\"128\" y=\"750\" type=\"line\"/>\n      <point x=\"104\" y=\"644\"/>\n      <point x=\"77\" y=\"533\"/>\n      <point x=\"37\" y=\"374\" type=\"curve\"/>\n      <point x=\"-2\" y=\"215\"/>\n      <point x=\"-30\" y=\"107\"/>\n      <point x=\"-59\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/E_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"E\" format=\"2\">\n  <advance width=\"584\"/>\n  <unicode hex=\"0045\"/>\n  <outline>\n    <contour>\n      <point x=\"317\" y=\"300\" type=\"line\"/>\n      <point x=\"400\" y=\"300\"/>\n      <point x=\"489\" y=\"298\"/>\n      <point x=\"559\" y=\"295\" type=\"curve\"/>\n      <point x=\"571\" y=\"347\"/>\n      <point x=\"595\" y=\"440\"/>\n      <point x=\"607\" y=\"486\" type=\"curve\"/>\n      <point x=\"534\" y=\"483\"/>\n      <point x=\"446\" y=\"482\"/>\n      <point x=\"362\" y=\"482\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"493\" y=\"0\" type=\"line\"/>\n      <point x=\"501\" y=\"35\"/>\n      <point x=\"513\" y=\"84\"/>\n      <point x=\"524\" y=\"128\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"535\" y=\"174\"/>\n      <point x=\"548\" y=\"224\"/>\n      <point x=\"557\" y=\"257\" type=\"curve\"/>\n      <point x=\"474\" y=\"256\"/>\n      <point x=\"366\" y=\"255\"/>\n      <point x=\"294\" y=\"255\" type=\"curve\"/>\n      <point x=\"284\" y=\"65\" type=\"line\"/>\n      <point x=\"309\" y=\"163\"/>\n      <point x=\"336\" y=\"273\"/>\n      <point x=\"365\" y=\"388\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"390\" y=\"488\"/>\n      <point x=\"416\" y=\"594\"/>\n      <point x=\"443\" y=\"703\" type=\"curve\"/>\n      <point x=\"361\" y=\"525\" type=\"line\"/>\n      <point x=\"433\" y=\"525\"/>\n      <point x=\"530\" y=\"524\"/>\n      <point x=\"623\" y=\"523\" type=\"curve\"/>\n      <point x=\"629\" y=\"551\"/>\n      <point x=\"640\" y=\"597\"/>\n      <point x=\"650\" y=\"638\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"660\" y=\"677\"/>\n      <point x=\"672\" y=\"722\"/>\n      <point x=\"680\" y=\"750\" type=\"curve\"/>\n      <point x=\"130\" y=\"750\" type=\"line\"/>\n      <point x=\"106\" y=\"642\"/>\n      <point x=\"80\" y=\"534\"/>\n      <point x=\"40\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1\" y=\"215\"/>\n      <point x=\"-27\" y=\"109\"/>\n      <point x=\"-57\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/L_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"L\" format=\"2\">\n  <advance width=\"471\"/>\n  <unicode hex=\"004C\"/>\n  <anchor x=\"542\" y=\"503\" name=\"dot\"/>\n  <outline>\n    <contour>\n      <point x=\"390\" y=\"0\" type=\"line\"/>\n      <point x=\"403\" y=\"56\"/>\n      <point x=\"417\" y=\"112\"/>\n      <point x=\"431\" y=\"168\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"445\" y=\"223\"/>\n      <point x=\"459\" y=\"279\"/>\n      <point x=\"474\" y=\"335\" type=\"curve\"/>\n      <point x=\"420\" y=\"334\"/>\n      <point x=\"371\" y=\"332\"/>\n      <point x=\"331\" y=\"332\" type=\"curve\"/>\n      <point x=\"331\" y=\"178\" type=\"line\"/>\n      <point x=\"346\" y=\"235\"/>\n      <point x=\"362\" y=\"305\"/>\n      <point x=\"380\" y=\"376\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"420\" y=\"533\"/>\n      <point x=\"462\" y=\"697\"/>\n      <point x=\"477\" y=\"750\" type=\"curve\"/>\n      <point x=\"131\" y=\"750\" type=\"line\"/>\n      <point x=\"116\" y=\"678\"/>\n      <point x=\"81\" y=\"534\"/>\n      <point x=\"41\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"2\" y=\"215\"/>\n      <point x=\"-41\" y=\"57\"/>\n      <point x=\"-56\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/O_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"O\" format=\"2\">\n  <advance width=\"738\"/>\n  <unicode hex=\"004F\"/>\n  <outline>\n    <contour>\n      <point x=\"745\" y=\"357\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"823\" y=\"672\"/>\n      <point x=\"731\" y=\"762\"/>\n      <point x=\"450\" y=\"762\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"234\" y=\"762\"/>\n      <point x=\"104\" y=\"703\"/>\n      <point x=\"37\" y=\"427\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-39\" y=\"114\"/>\n      <point x=\"27\" y=\"-12\"/>\n      <point x=\"335\" y=\"-12\" type=\"curve\"/>\n      <point x=\"562\" y=\"-12\"/>\n      <point x=\"675\" y=\"77\"/>\n    </contour>\n    <contour>\n      <point x=\"354\" y=\"247\" type=\"curve\"/>\n      <point x=\"329\" y=\"247\"/>\n      <point x=\"326\" y=\"268\"/>\n      <point x=\"357\" y=\"394\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"388\" y=\"519\"/>\n      <point x=\"401\" y=\"536\"/>\n      <point x=\"422\" y=\"536\" type=\"curve\"/>\n      <point x=\"448\" y=\"536\"/>\n      <point x=\"450\" y=\"519\"/>\n      <point x=\"418\" y=\"390\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"388\" y=\"268\"/>\n      <point x=\"376\" y=\"247\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/P_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"P\" format=\"2\">\n  <advance width=\"683\"/>\n  <unicode hex=\"0050\"/>\n  <outline>\n    <contour>\n      <point x=\"263\" y=\"0\" type=\"line\"/>\n      <point x=\"284\" y=\"134\"/>\n      <point x=\"338\" y=\"355\"/>\n      <point x=\"401\" y=\"610\" type=\"curve\"/>\n      <point x=\"344\" y=\"552\" type=\"line\"/>\n      <point x=\"358\" y=\"554\"/>\n      <point x=\"392\" y=\"555\"/>\n      <point x=\"403\" y=\"555\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"439\" y=\"555\"/>\n      <point x=\"449\" y=\"541\"/>\n      <point x=\"423\" y=\"439\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"401\" y=\"348\"/>\n      <point x=\"385\" y=\"328\"/>\n      <point x=\"344\" y=\"328\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"334\" y=\"328\"/>\n      <point x=\"332\" y=\"329\"/>\n      <point x=\"316\" y=\"329\" type=\"curve\"/>\n      <point x=\"269\" y=\"140\" type=\"line\"/>\n      <point x=\"299\" y=\"139\"/>\n      <point x=\"342\" y=\"139\"/>\n      <point x=\"354\" y=\"139\" type=\"curve\"/>\n      <point x=\"597\" y=\"139\"/>\n      <point x=\"655\" y=\"209\"/>\n      <point x=\"704\" y=\"407\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"774\" y=\"690\"/>\n      <point x=\"687\" y=\"750\"/>\n      <point x=\"481\" y=\"750\" type=\"curve\"/>\n      <point x=\"131\" y=\"750\" type=\"line\"/>\n      <point x=\"106\" y=\"642\"/>\n      <point x=\"80\" y=\"534\"/>\n      <point x=\"40\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1\" y=\"215\"/>\n      <point x=\"-27\" y=\"109\"/>\n      <point x=\"-56\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/T_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"T\" format=\"2\">\n  <advance width=\"535\"/>\n  <unicode hex=\"0054\"/>\n  <anchor x=\"277\" y=\"345\" name=\"bar\"/>\n  <outline>\n    <contour>\n      <point x=\"160\" y=\"582\" type=\"line\"/>\n      <point x=\"98\" y=\"332\"/>\n      <point x=\"27\" y=\"56\"/>\n      <point x=\"10\" y=\"-1\" type=\"curve\"/>\n      <point x=\"59\" y=\"2\"/>\n      <point x=\"135\" y=\"2\"/>\n      <point x=\"192\" y=\"2\" type=\"curve\"/>\n      <point x=\"248\" y=\"2\"/>\n      <point x=\"326\" y=\"2\"/>\n      <point x=\"373\" y=\"-1\" type=\"curve\"/>\n      <point x=\"385\" y=\"56\"/>\n      <point x=\"452\" y=\"332\"/>\n      <point x=\"514\" y=\"582\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"118\" y=\"750\" type=\"line\"/>\n      <point x=\"109\" y=\"708\"/>\n      <point x=\"92\" y=\"643\"/>\n      <point x=\"78\" y=\"584\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"63\" y=\"526\"/>\n      <point x=\"46\" y=\"457\"/>\n      <point x=\"33\" y=\"411\" type=\"curve\"/>\n      <point x=\"129\" y=\"413\"/>\n      <point x=\"224\" y=\"414\"/>\n      <point x=\"295\" y=\"414\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"366\" y=\"414\"/>\n      <point x=\"460\" y=\"413\"/>\n      <point x=\"555\" y=\"411\" type=\"curve\"/>\n      <point x=\"565\" y=\"457\"/>\n      <point x=\"582\" y=\"526\"/>\n      <point x=\"597\" y=\"584\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"611\" y=\"643\"/>\n      <point x=\"628\" y=\"708\"/>\n      <point x=\"640\" y=\"750\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/Y_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"Y\" format=\"2\">\n  <advance width=\"639\"/>\n  <unicode hex=\"0059\"/>\n  <outline>\n    <contour>\n      <point x=\"109\" y=\"301\" type=\"line\"/>\n      <point x=\"72\" y=\"152\"/>\n      <point x=\"39\" y=\"34\"/>\n      <point x=\"29\" y=\"-1\" type=\"curve\"/>\n      <point x=\"85\" y=\"1\"/>\n      <point x=\"177\" y=\"2\"/>\n      <point x=\"243\" y=\"2\" type=\"curve\"/>\n      <point x=\"310\" y=\"2\"/>\n      <point x=\"401\" y=\"1\"/>\n      <point x=\"459\" y=\"-1\" type=\"curve\"/>\n      <point x=\"466\" y=\"34\"/>\n      <point x=\"492\" y=\"152\"/>\n      <point x=\"529\" y=\"301\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"467\" y=\"750\" type=\"line\"/>\n      <point x=\"459\" y=\"717\"/>\n      <point x=\"435\" y=\"624\"/>\n      <point x=\"401\" y=\"525\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"376\" y=\"453\"/>\n      <point x=\"341\" y=\"352\"/>\n      <point x=\"323\" y=\"306\" type=\"curve\"/>\n      <point x=\"367\" y=\"366\" type=\"line\"/>\n      <point x=\"315\" y=\"366\" type=\"line\"/>\n      <point x=\"330\" y=\"306\" type=\"line\"/>\n      <point x=\"335\" y=\"353\"/>\n      <point x=\"350\" y=\"452\"/>\n      <point x=\"363\" y=\"525\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"381\" y=\"625\"/>\n      <point x=\"403\" y=\"717\"/>\n      <point x=\"412\" y=\"750\" type=\"curve\"/>\n      <point x=\"111\" y=\"750\" type=\"line\"/>\n      <point x=\"109\" y=\"649\"/>\n      <point x=\"96\" y=\"267\"/>\n      <point x=\"94\" y=\"220\" type=\"curve\"/>\n      <point x=\"121\" y=\"220\"/>\n      <point x=\"221\" y=\"226\"/>\n      <point x=\"304\" y=\"226\" type=\"curve\"/>\n      <point x=\"372\" y=\"226\"/>\n      <point x=\"442\" y=\"221\"/>\n      <point x=\"505\" y=\"220\" type=\"curve\"/>\n      <point x=\"528\" y=\"263\"/>\n      <point x=\"702\" y=\"650\"/>\n      <point x=\"750\" y=\"750\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/contents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>C</key>\n    <string>C_.glif</string>\n    <key>D</key>\n    <string>D_.glif</string>\n    <key>E</key>\n    <string>E_.glif</string>\n    <key>L</key>\n    <string>L_.glif</string>\n    <key>O</key>\n    <string>O_.glif</string>\n    <key>P</key>\n    <string>P_.glif</string>\n    <key>T</key>\n    <string>T_.glif</string>\n    <key>Y</key>\n    <string>Y_.glif</string>\n    <key>space</key>\n    <string>space.glif</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/layerinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>color</key>\n    <string>1,0.75,0,0.7</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/glyphs/space.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"space\" format=\"2\">\n  <advance width=\"195\"/>\n  <unicode hex=\"0020\"/>\n  <outline>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.5725,0.9294,0.9529,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/groups.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>public.kern1.A</key>\n    <array>\n      <string>A</string>\n      <string>Aacute</string>\n      <string>Abreve</string>\n      <string>Acircumflex</string>\n      <string>Adieresis</string>\n      <string>Agrave</string>\n      <string>Amacron</string>\n      <string>Aogonek</string>\n      <string>Aring</string>\n      <string>Aringacute</string>\n      <string>Atilde</string>\n    </array>\n    <key>public.kern1.AE</key>\n    <array>\n      <string>AE</string>\n      <string>AEacute</string>\n      <string>E</string>\n      <string>Eacute</string>\n      <string>Ebreve</string>\n      <string>Ecaron</string>\n      <string>Ecircumflex</string>\n      <string>Edieresis</string>\n      <string>Edotaccent</string>\n      <string>Egrave</string>\n      <string>Emacron</string>\n      <string>Eogonek</string>\n      <string>OE</string>\n    </array>\n    <key>public.kern1.C</key>\n    <array>\n      <string>C</string>\n      <string>Cacute</string>\n      <string>Ccaron</string>\n      <string>Ccedilla</string>\n      <string>Ccircumflex</string>\n      <string>Cdotaccent</string>\n    </array>\n    <key>public.kern1.C.alt</key>\n    <array>\n      <string>C</string>\n      <string>Cacute.alt</string>\n      <string>Ccaron.alt</string>\n      <string>Ccedilla.alt</string>\n      <string>Ccircumflex.alt</string>\n      <string>Cdotaccent.alt</string>\n    </array>\n    <key>public.kern1.D</key>\n    <array>\n      <string>D</string>\n      <string>Dcaron</string>\n      <string>Dcroat</string>\n      <string>Eth</string>\n      <string>nine</string>\n      <string>nine.alt</string>\n    </array>\n    <key>public.kern1.Eng</key>\n    <array>\n      <string>Eng</string>\n      <string>N</string>\n      <string>Nacute</string>\n      <string>Ncaron</string>\n      <string>Ncommaaccent</string>\n      <string>Ntilde</string>\n    </array>\n    <key>public.kern1.G</key>\n    <array>\n      <string>G</string>\n      <string>Gbreve</string>\n      <string>Gcircumflex</string>\n      <string>Gcommaaccent</string>\n      <string>Gdotaccent</string>\n    </array>\n    <key>public.kern1.G.alt</key>\n    <array>\n      <string>Gbreve.alt</string>\n      <string>Gcircumflex.alt</string>\n      <string>Gcommaaccent.alt</string>\n      <string>Gdotaccent.alt</string>\n      <string>G.alt</string>\n    </array>\n    <key>public.kern1.H</key>\n    <array>\n      <string>H</string>\n      <string>Hbar</string>\n      <string>Hcircumflex</string>\n      <string>I</string>\n      <string>Iacute</string>\n      <string>Ibreve</string>\n      <string>Icircumflex</string>\n      <string>Idieresis</string>\n      <string>Idotaccent</string>\n      <string>Igrave</string>\n      <string>Imacron</string>\n      <string>Iogonek</string>\n      <string>Itilde</string>\n      <string>M</string>\n    </array>\n    <key>public.kern1.IJ</key>\n    <array>\n      <string>IJ</string>\n      <string>J</string>\n      <string>Jcircumflex</string>\n    </array>\n    <key>public.kern1.K</key>\n    <array>\n      <string>K</string>\n      <string>Kcommaaccent</string>\n    </array>\n    <key>public.kern1.L</key>\n    <array>\n      <string>L</string>\n      <string>Lacute</string>\n      <string>Lcommaaccent</string>\n      <string>Lslash</string>\n    </array>\n    <key>public.kern1.O</key>\n    <array>\n      <string>O</string>\n      <string>Oacute</string>\n      <string>Obreve</string>\n      <string>Ocircumflex</string>\n      <string>Odieresis</string>\n      <string>Ograve</string>\n      <string>Ohungarumlaut</string>\n      <string>Omacron</string>\n      <string>Otilde</string>\n      <string>zero</string>\n      <string>eth</string>\n    </array>\n    <key>public.kern1.Oslash</key>\n    <array>\n      <string>Oslash</string>\n      <string>Oslashacute</string>\n    </array>\n    <key>public.kern1.R</key>\n    <array>\n      <string>R</string>\n      <string>Racute</string>\n      <string>Rcaron</string>\n      <string>Rcommaaccent</string>\n    </array>\n    <key>public.kern1.S</key>\n    <array>\n      <string>S</string>\n      <string>Sacute</string>\n      <string>Scaron</string>\n      <string>Scedilla</string>\n      <string>Scircumflex</string>\n      <string>Scommaaccent</string>\n      <string>dollar</string>\n    </array>\n    <key>public.kern1.S.alt</key>\n    <array>\n      <string>Sacute.alt</string>\n      <string>Scaron.alt</string>\n      <string>Scedilla.alt</string>\n      <string>Scircumflex.alt</string>\n      <string>Scommaaccent.alt</string>\n      <string>S.alt</string>\n      <string>dollar.alt</string>\n    </array>\n    <key>public.kern1.T</key>\n    <array>\n      <string>T</string>\n      <string>Tbar</string>\n      <string>Tcaron</string>\n      <string>Tcommaaccent</string>\n      <string>uni021A</string>\n    </array>\n    <key>public.kern1.U</key>\n    <array>\n      <string>U</string>\n      <string>Uacute</string>\n      <string>Ubreve</string>\n      <string>Ucircumflex</string>\n      <string>Udieresis</string>\n      <string>Ugrave</string>\n      <string>Uhungarumlaut</string>\n      <string>Umacron</string>\n      <string>Uogonek</string>\n      <string>Uring</string>\n      <string>Utilde</string>\n    </array>\n    <key>public.kern1.W</key>\n    <array>\n      <string>W</string>\n      <string>Wacute</string>\n      <string>Wcircumflex</string>\n      <string>Wdieresis</string>\n      <string>Wgrave</string>\n    </array>\n    <key>public.kern1.Y</key>\n    <array>\n      <string>Y</string>\n      <string>Yacute</string>\n      <string>Ycircumflex</string>\n      <string>Ydieresis</string>\n    </array>\n    <key>public.kern1.Z</key>\n    <array>\n      <string>Z</string>\n      <string>Zacute</string>\n      <string>Zcaron</string>\n      <string>Zdotaccent</string>\n    </array>\n    <key>public.kern1.a</key>\n    <array>\n      <string>a.alt2</string>\n      <string>aacute.alt2</string>\n      <string>abreve.alt2</string>\n      <string>acircumflex.alt2</string>\n      <string>adieresis.alt2</string>\n      <string>agrave.alt2</string>\n      <string>amacron.alt2</string>\n      <string>aogonek.alt2</string>\n      <string>aring.alt2</string>\n      <string>aringacute.alt2</string>\n      <string>atilde.alt2</string>\n      <string>aacute.alt</string>\n      <string>abreve.alt</string>\n      <string>acircumflex.alt</string>\n      <string>adieresis.alt</string>\n      <string>agrave.alt</string>\n      <string>amacron.alt</string>\n      <string>aogonek.alt</string>\n      <string>aring.alt</string>\n      <string>aringacute.alt</string>\n      <string>atilde.alt</string>\n      <string>a.alt</string>\n    </array>\n    <key>public.kern1.ae</key>\n    <array>\n      <string>ae.alt2</string>\n      <string>aeacute.alt2</string>\n      <string>e</string>\n      <string>eacute</string>\n      <string>ebreve</string>\n      <string>ecaron</string>\n      <string>ecircumflex</string>\n      <string>edieresis</string>\n      <string>edotaccent</string>\n      <string>egrave</string>\n      <string>emacron</string>\n      <string>eogonek</string>\n      <string>oe</string>\n      <string>ae</string>\n      <string>aeacute</string>\n    </array>\n    <key>public.kern1.afii57929</key>\n    <array>\n      <string>quotedblright</string>\n      <string>quoteright</string>\n    </array>\n    <key>public.kern1.at</key>\n    <array>\n      <string>at</string>\n      <string>at.case</string>\n    </array>\n    <key>public.kern1.b</key>\n    <array>\n      <string>b</string>\n      <string>p</string>\n      <string>thorn</string>\n    </array>\n    <key>public.kern1.braceleft</key>\n    <array>\n      <string>braceleft</string>\n      <string>bracketleft</string>\n    </array>\n    <key>public.kern1.braceright</key>\n    <array>\n      <string>braceright</string>\n      <string>bracketright</string>\n    </array>\n    <key>public.kern1.c</key>\n    <array>\n      <string>c</string>\n      <string>cacute</string>\n      <string>ccaron</string>\n      <string>ccedilla</string>\n      <string>ccircumflex</string>\n      <string>cdotaccent</string>\n    </array>\n    <key>public.kern1.c.alt</key>\n    <array>\n      <string>cacute.alt</string>\n      <string>ccaron.alt</string>\n      <string>ccedilla.alt</string>\n      <string>ccircumflex.alt</string>\n      <string>cdotaccent.alt</string>\n      <string>c.alt</string>\n    </array>\n    <key>public.kern1.colon</key>\n    <array>\n      <string>colon</string>\n      <string>semicolon</string>\n    </array>\n    <key>public.kern1.comma</key>\n    <array>\n      <string>comma</string>\n      <string>ellipsis</string>\n      <string>period</string>\n      <string>quotedblbase</string>\n      <string>quotesinglbase</string>\n    </array>\n    <key>public.kern1.copyright</key>\n    <array>\n      <string>copyright</string>\n      <string>copyright.alt</string>\n      <string>registered</string>\n    </array>\n    <key>public.kern1.d</key>\n    <array>\n      <string>d</string>\n      <string>dcroat</string>\n      <string>fl</string>\n      <string>l</string>\n      <string>lacute</string>\n      <string>lcommaaccent</string>\n      <string>lslash</string>\n    </array>\n    <key>public.kern1.dcaron</key>\n    <array>\n      <string>dcaron</string>\n      <string>lcaron</string>\n    </array>\n    <key>public.kern1.dotlessi</key>\n    <array>\n      <string>dotlessi</string>\n      <string>fi</string>\n      <string>i</string>\n      <string>iacute</string>\n      <string>ibreve</string>\n      <string>icircumflex</string>\n      <string>idieresis</string>\n      <string>igrave</string>\n      <string>imacron</string>\n      <string>iogonek</string>\n      <string>itilde</string>\n      <string>aacute</string>\n      <string>abreve</string>\n      <string>acircumflex</string>\n      <string>adieresis</string>\n      <string>agrave</string>\n      <string>amacron</string>\n      <string>aogonek</string>\n      <string>aring</string>\n      <string>aringacute</string>\n      <string>atilde</string>\n    </array>\n    <key>public.kern1.e.alt</key>\n    <array>\n      <string>eacute.alt</string>\n      <string>ebreve.alt</string>\n      <string>ecaron.alt</string>\n      <string>ecircumflex.alt</string>\n      <string>edieresis.alt</string>\n      <string>edotaccent.alt</string>\n      <string>egrave.alt</string>\n      <string>emacron.alt</string>\n      <string>eogonek.alt</string>\n      <string>ae.alt</string>\n      <string>e.alt</string>\n    </array>\n    <key>public.kern1.eight</key>\n    <array>\n      <string>eight</string>\n      <string>three</string>\n      <string>three.alt</string>\n      <string>B</string>\n      <string>germandbls</string>\n    </array>\n    <key>public.kern1.emdash</key>\n    <array>\n      <string>emdash</string>\n      <string>endash</string>\n      <string>hyphen</string>\n    </array>\n    <key>public.kern1.eng</key>\n    <array>\n      <string>eng</string>\n      <string>ij</string>\n      <string>j</string>\n      <string>y.alt</string>\n      <string>g.alt</string>\n      <string>g</string>\n      <string>gcommaaccent.alt</string>\n      <string>gcommaaccent</string>\n      <string>gbreve.alt</string>\n      <string>gcircumflex.alt</string>\n      <string>gdotaccent.alt</string>\n      <string>yacute.alt</string>\n      <string>ycircumflex.alt</string>\n      <string>ydieresis.alt</string>\n      <string>gbreve</string>\n      <string>gcircumflex</string>\n      <string>gdotaccent</string>\n      <string>yacute</string>\n      <string>ycircumflex</string>\n      <string>ydieresis</string>\n      <string>q</string>\n      <string>jcircumflex</string>\n    </array>\n    <key>public.kern1.five</key>\n    <array>\n      <string>five</string>\n      <string>five.alt</string>\n    </array>\n    <key>public.kern1.five.osf</key>\n    <array>\n      <string>five.osf</string>\n      <string>five.osf.alt</string>\n    </array>\n    <key>public.kern1.g</key>\n    <array>\n      <string>g.alt2</string>\n      <string>gbreve.alt2</string>\n      <string>gcircumflex.alt2</string>\n      <string>gcommaaccent.alt2</string>\n      <string>gdotaccent.alt2</string>\n    </array>\n    <key>public.kern1.guillemotleft</key>\n    <array>\n      <string>guillemotleft</string>\n      <string>guilsinglleft</string>\n    </array>\n    <key>public.kern1.guillemotleft.case</key>\n    <array>\n      <string>guilsinglleft.case</string>\n      <string>guillemotleft.case</string>\n    </array>\n    <key>public.kern1.guillemotright</key>\n    <array>\n      <string>guillemotright</string>\n      <string>guilsinglright</string>\n    </array>\n    <key>public.kern1.guillemotright.case</key>\n    <array>\n      <string>guillemotright.case</string>\n      <string>guilsinglright.case</string>\n    </array>\n    <key>public.kern1.h</key>\n    <array>\n      <string>h</string>\n      <string>hbar</string>\n      <string>hcircumflex</string>\n      <string>m</string>\n      <string>n</string>\n      <string>nacute</string>\n      <string>napostrophe</string>\n      <string>ncaron</string>\n      <string>ncommaaccent</string>\n      <string>ntilde</string>\n    </array>\n    <key>public.kern1.hyphen.case</key>\n    <array>\n      <string>emdash.case</string>\n      <string>endash.case</string>\n      <string>hyphen.case</string>\n      <string>plus</string>\n      <string>minus</string>\n    </array>\n    <key>public.kern1.k</key>\n    <array>\n      <string>k</string>\n      <string>kcommaaccent</string>\n      <string>kgreenlandic</string>\n    </array>\n    <key>public.kern1.minute</key>\n    <array>\n      <string>quotedbl</string>\n      <string>quotesingle</string>\n    </array>\n    <key>public.kern1.nine.osf</key>\n    <array>\n      <string>nine.osf</string>\n      <string>nine.osf.alt</string>\n    </array>\n    <key>public.kern1.o</key>\n    <array>\n      <string>o</string>\n      <string>oacute</string>\n      <string>obreve</string>\n      <string>ocircumflex</string>\n      <string>odieresis</string>\n      <string>ograve</string>\n      <string>ohungarumlaut</string>\n      <string>omacron</string>\n      <string>otilde</string>\n    </array>\n    <key>public.kern1.oslash</key>\n    <array>\n      <string>oslash</string>\n      <string>oslashacute</string>\n    </array>\n    <key>public.kern1.question</key>\n    <array>\n      <string>question</string>\n      <string>question.alt</string>\n    </array>\n    <key>public.kern1.quotedblleft</key>\n    <array>\n      <string>quotedblleft</string>\n      <string>quoteleft</string>\n    </array>\n    <key>public.kern1.r</key>\n    <array>\n      <string>r</string>\n      <string>racute</string>\n      <string>rcaron</string>\n      <string>rcommaaccent</string>\n    </array>\n    <key>public.kern1.s</key>\n    <array>\n      <string>s</string>\n      <string>sacute</string>\n      <string>scaron</string>\n      <string>scedilla</string>\n      <string>scircumflex</string>\n      <string>scommaaccent</string>\n    </array>\n    <key>public.kern1.s.alt</key>\n    <array>\n      <string>sacute.alt</string>\n      <string>scaron.alt</string>\n      <string>scedilla.alt</string>\n      <string>scircumflex.alt</string>\n      <string>scommaaccent.alt</string>\n      <string>s.alt</string>\n    </array>\n    <key>public.kern1.t</key>\n    <array>\n      <string>t</string>\n      <string>tbar</string>\n      <string>tcaron</string>\n      <string>tcommaaccent</string>\n      <string>uni021B</string>\n    </array>\n    <key>public.kern1.t.alt</key>\n    <array>\n      <string>tcaron.alt</string>\n      <string>tcommaaccent.alt</string>\n      <string>t.alt</string>\n      <string>uni021B.alt</string>\n    </array>\n    <key>public.kern1.t.alt2</key>\n    <array>\n      <string>tcaron.alt2</string>\n      <string>tcommaaccent.alt2</string>\n      <string>t.alt2</string>\n      <string>uni021B.alt2</string>\n    </array>\n    <key>public.kern1.three.osf</key>\n    <array>\n      <string>three.osf</string>\n      <string>three.osf.alt</string>\n    </array>\n    <key>public.kern1.two</key>\n    <array>\n      <string>two</string>\n      <string>two.alt</string>\n    </array>\n    <key>public.kern1.two.osf</key>\n    <array>\n      <string>two.osf</string>\n      <string>two.osf.alt</string>\n    </array>\n    <key>public.kern1.u</key>\n    <array>\n      <string>u</string>\n      <string>uacute</string>\n      <string>ubreve</string>\n      <string>ucircumflex</string>\n      <string>udieresis</string>\n      <string>ugrave</string>\n      <string>uhungarumlaut</string>\n      <string>umacron</string>\n      <string>uogonek</string>\n      <string>uring</string>\n      <string>utilde</string>\n    </array>\n    <key>public.kern1.v</key>\n    <array>\n      <string>v</string>\n      <string>w</string>\n      <string>wacute</string>\n      <string>wcircumflex</string>\n      <string>wdieresis</string>\n      <string>wgrave</string>\n    </array>\n    <key>public.kern1.y</key>\n    <array>\n      <string>y.alt2</string>\n      <string>yacute.alt2</string>\n      <string>ycircumflex.alt2</string>\n      <string>ydieresis.alt2</string>\n    </array>\n    <key>public.kern1.z</key>\n    <array>\n      <string>z</string>\n      <string>zacute</string>\n      <string>zcaron</string>\n      <string>zdotaccent</string>\n    </array>\n    <key>public.kern2.A</key>\n    <array>\n      <string>A</string>\n      <string>Aacute</string>\n      <string>Abreve</string>\n      <string>Acircumflex</string>\n      <string>Adieresis</string>\n      <string>Agrave</string>\n      <string>Amacron</string>\n      <string>Aogonek</string>\n      <string>Aring</string>\n      <string>Aringacute</string>\n      <string>Atilde</string>\n    </array>\n    <key>public.kern2.AE</key>\n    <array>\n      <string>AE</string>\n      <string>AEacute</string>\n    </array>\n    <key>public.kern2.B</key>\n    <array>\n      <string>B</string>\n      <string>D</string>\n      <string>Dcaron</string>\n      <string>Dcroat</string>\n      <string>E</string>\n      <string>Eacute</string>\n      <string>Ebreve</string>\n      <string>Ecaron</string>\n      <string>Ecircumflex</string>\n      <string>Edieresis</string>\n      <string>Edotaccent</string>\n      <string>Egrave</string>\n      <string>Emacron</string>\n      <string>Eogonek</string>\n      <string>Eth</string>\n      <string>F</string>\n      <string>H</string>\n      <string>Hbar</string>\n      <string>Hcircumflex</string>\n      <string>I</string>\n      <string>IJ</string>\n      <string>Iacute</string>\n      <string>Ibreve</string>\n      <string>Icircumflex</string>\n      <string>Idieresis</string>\n      <string>Idotaccent</string>\n      <string>Igrave</string>\n      <string>Imacron</string>\n      <string>Iogonek</string>\n      <string>Itilde</string>\n      <string>K</string>\n      <string>Kcommaaccent</string>\n      <string>L</string>\n      <string>Lacute</string>\n      <string>Lcaron</string>\n      <string>Lcommaaccent</string>\n      <string>Ldot</string>\n      <string>Lslash</string>\n      <string>P</string>\n      <string>R</string>\n      <string>Racute</string>\n      <string>Rcaron</string>\n      <string>Rcommaaccent</string>\n      <string>Thorn</string>\n      <string>one</string>\n      <string>uni1E9E</string>\n    </array>\n    <key>public.kern2.C</key>\n    <array>\n      <string>C</string>\n      <string>Cacute</string>\n      <string>Ccaron</string>\n      <string>Ccedilla</string>\n      <string>Ccircumflex</string>\n      <string>Cdotaccent</string>\n      <string>G</string>\n      <string>Gbreve</string>\n      <string>Gcircumflex</string>\n      <string>Gcommaaccent</string>\n      <string>Gdotaccent</string>\n      <string>O</string>\n      <string>OE</string>\n      <string>Oacute</string>\n      <string>Obreve</string>\n      <string>Ocircumflex</string>\n      <string>Odieresis</string>\n      <string>Ograve</string>\n      <string>Ohungarumlaut</string>\n      <string>Omacron</string>\n      <string>Otilde</string>\n      <string>Q</string>\n      <string>C</string>\n      <string>G.alt</string>\n      <string>zero</string>\n      <string>six</string>\n      <string>six.alt</string>\n      <string>Cacute.alt</string>\n      <string>Ccaron.alt</string>\n      <string>Ccedilla.alt</string>\n      <string>Ccircumflex.alt</string>\n      <string>Cdotaccent.alt</string>\n      <string>Gbreve.alt</string>\n      <string>Gcircumflex.alt</string>\n      <string>Gcommaaccent.alt</string>\n      <string>Gdotaccent.alt</string>\n    </array>\n    <key>public.kern2.Eng</key>\n    <array>\n      <string>Eng</string>\n      <string>M</string>\n      <string>N</string>\n      <string>Nacute</string>\n      <string>Ncaron</string>\n      <string>Ncommaaccent</string>\n      <string>Ntilde</string>\n      <string>afii61352</string>\n    </array>\n    <key>public.kern2.J</key>\n    <array>\n      <string>J</string>\n      <string>Jcircumflex</string>\n    </array>\n    <key>public.kern2.Oslash</key>\n    <array>\n      <string>Oslashacute</string>\n      <string>Oslash</string>\n    </array>\n    <key>public.kern2.S</key>\n    <array>\n      <string>S</string>\n      <string>Sacute</string>\n      <string>Scaron</string>\n      <string>Scedilla</string>\n      <string>Scircumflex</string>\n      <string>Scommaaccent</string>\n      <string>dollar</string>\n    </array>\n    <key>public.kern2.S.alt</key>\n    <array>\n      <string>Sacute.alt</string>\n      <string>Scaron.alt</string>\n      <string>Scedilla.alt</string>\n      <string>Scircumflex.alt</string>\n      <string>Scommaaccent.alt</string>\n      <string>S.alt</string>\n      <string>dollar.alt</string>\n    </array>\n    <key>public.kern2.T</key>\n    <array>\n      <string>T</string>\n      <string>Tbar</string>\n      <string>Tcaron</string>\n      <string>Tcommaaccent</string>\n      <string>uni021A</string>\n    </array>\n    <key>public.kern2.U</key>\n    <array>\n      <string>U</string>\n      <string>Uacute</string>\n      <string>Ubreve</string>\n      <string>Ucircumflex</string>\n      <string>Udieresis</string>\n      <string>Ugrave</string>\n      <string>Uhungarumlaut</string>\n      <string>Umacron</string>\n      <string>Uogonek</string>\n      <string>Uring</string>\n      <string>Utilde</string>\n    </array>\n    <key>public.kern2.W</key>\n    <array>\n      <string>W</string>\n      <string>Wacute</string>\n      <string>Wcircumflex</string>\n      <string>Wdieresis</string>\n      <string>Wgrave</string>\n    </array>\n    <key>public.kern2.Y</key>\n    <array>\n      <string>Y</string>\n      <string>Yacute</string>\n      <string>Ycircumflex</string>\n      <string>Ydieresis</string>\n    </array>\n    <key>public.kern2.Z</key>\n    <array>\n      <string>Z</string>\n      <string>Zacute</string>\n      <string>Zcaron</string>\n      <string>Zdotaccent</string>\n    </array>\n    <key>public.kern2.a</key>\n    <array>\n      <string>a.alt2</string>\n      <string>aacute.alt2</string>\n      <string>abreve.alt2</string>\n      <string>acircumflex.alt2</string>\n      <string>adieresis.alt2</string>\n      <string>ae.alt2</string>\n      <string>aeacute.alt2</string>\n      <string>agrave.alt2</string>\n      <string>amacron.alt2</string>\n      <string>aogonek.alt2</string>\n      <string>aring.alt2</string>\n      <string>aringacute.alt2</string>\n      <string>atilde.alt2</string>\n    </array>\n    <key>public.kern2.a.alt</key>\n    <array>\n      <string>aacute.alt</string>\n      <string>abreve.alt</string>\n      <string>acircumflex.alt</string>\n      <string>adieresis.alt</string>\n      <string>aeacute.alt</string>\n      <string>agrave.alt</string>\n      <string>amacron.alt</string>\n      <string>aogonek.alt</string>\n      <string>aring.alt</string>\n      <string>aringacute.alt</string>\n      <string>atilde.alt</string>\n      <string>a.alt</string>\n      <string>ae.alt</string>\n    </array>\n    <key>public.kern2.at</key>\n    <array>\n      <string>at</string>\n      <string>at.case</string>\n    </array>\n    <key>public.kern2.b</key>\n    <array>\n      <string>b</string>\n      <string>thorn</string>\n    </array>\n    <key>public.kern2.braceleft</key>\n    <array>\n      <string>braceleft</string>\n      <string>bracketleft</string>\n    </array>\n    <key>public.kern2.braceright</key>\n    <array>\n      <string>braceright</string>\n      <string>bracketright</string>\n    </array>\n    <key>public.kern2.c</key>\n    <array>\n      <string>c</string>\n      <string>cacute</string>\n      <string>ccaron</string>\n      <string>ccedilla</string>\n      <string>ccircumflex</string>\n      <string>cdotaccent</string>\n      <string>d</string>\n      <string>dcaron</string>\n      <string>dcroat</string>\n      <string>e</string>\n      <string>eacute</string>\n      <string>ebreve</string>\n      <string>ecaron</string>\n      <string>ecircumflex</string>\n      <string>edieresis</string>\n      <string>edotaccent</string>\n      <string>egrave</string>\n      <string>emacron</string>\n      <string>eogonek</string>\n      <string>eth</string>\n      <string>o</string>\n      <string>oacute</string>\n      <string>obreve</string>\n      <string>ocircumflex</string>\n      <string>odieresis</string>\n      <string>oe</string>\n      <string>ograve</string>\n      <string>ohungarumlaut</string>\n      <string>omacron</string>\n      <string>oslash</string>\n      <string>oslashacute</string>\n      <string>otilde</string>\n      <string>q</string>\n      <string>a</string>\n      <string>ae</string>\n      <string>c.alt</string>\n      <string>e.alt</string>\n      <string>g.alt</string>\n      <string>cacute.alt</string>\n      <string>ccaron.alt</string>\n      <string>ccedilla.alt</string>\n      <string>ccircumflex.alt</string>\n      <string>cdotaccent.alt</string>\n      <string>eacute.alt</string>\n      <string>ebreve.alt</string>\n      <string>ecaron.alt</string>\n      <string>ecircumflex.alt</string>\n      <string>edieresis.alt</string>\n      <string>edotaccent.alt</string>\n      <string>egrave.alt</string>\n      <string>emacron.alt</string>\n      <string>eogonek.alt</string>\n      <string>gbreve.alt</string>\n      <string>gcircumflex.alt</string>\n      <string>gdotaccent.alt</string>\n      <string>aacute</string>\n      <string>abreve</string>\n      <string>acircumflex</string>\n      <string>adieresis</string>\n      <string>aeacute</string>\n      <string>agrave</string>\n      <string>amacron</string>\n      <string>aogonek</string>\n      <string>aring</string>\n      <string>aringacute</string>\n      <string>atilde</string>\n      <string>gbreve</string>\n      <string>gcircumflex</string>\n      <string>gdotaccent</string>\n      <string>gcommaaccent.alt</string>\n    </array>\n    <key>public.kern2.colon</key>\n    <array>\n      <string>colon</string>\n      <string>semicolon</string>\n    </array>\n    <key>public.kern2.comma</key>\n    <array>\n      <string>comma</string>\n      <string>ellipsis</string>\n      <string>period</string>\n      <string>quotedblbase</string>\n      <string>quotesinglbase</string>\n    </array>\n    <key>public.kern2.copyright</key>\n    <array>\n      <string>copyright</string>\n      <string>copyright.alt</string>\n      <string>registered</string>\n    </array>\n    <key>public.kern2.dotlessi</key>\n    <array>\n      <string>dotlessi</string>\n      <string>i</string>\n      <string>iacute</string>\n      <string>ibreve</string>\n      <string>icircumflex</string>\n      <string>idieresis</string>\n      <string>igrave</string>\n      <string>ij</string>\n      <string>imacron</string>\n      <string>iogonek</string>\n      <string>itilde</string>\n      <string>p</string>\n      <string>eng</string>\n    </array>\n    <key>public.kern2.emdash</key>\n    <array>\n      <string>emdash</string>\n      <string>endash</string>\n      <string>hyphen</string>\n    </array>\n    <key>public.kern2.eng</key>\n    <array>\n      <string>kgreenlandic</string>\n      <string>m</string>\n      <string>n</string>\n      <string>nacute</string>\n      <string>ncaron</string>\n      <string>ncommaaccent</string>\n      <string>ntilde</string>\n      <string>r</string>\n      <string>racute</string>\n      <string>rcaron</string>\n      <string>rcommaaccent</string>\n    </array>\n    <key>public.kern2.f</key>\n    <array>\n      <string>f</string>\n      <string>fi</string>\n      <string>fl</string>\n    </array>\n    <key>public.kern2.g</key>\n    <array>\n      <string>g.alt2</string>\n      <string>gbreve.alt2</string>\n      <string>gcircumflex.alt2</string>\n      <string>gcommaaccent.alt2</string>\n      <string>gdotaccent.alt2</string>\n    </array>\n    <key>public.kern2.guillemotleft</key>\n    <array>\n      <string>guillemotleft</string>\n      <string>guilsinglleft</string>\n    </array>\n    <key>public.kern2.guillemotleft.case</key>\n    <array>\n      <string>guillemotleft.case</string>\n      <string>guilsinglleft.case</string>\n    </array>\n    <key>public.kern2.guillemotright</key>\n    <array>\n      <string>guillemotright</string>\n      <string>guilsinglright</string>\n    </array>\n    <key>public.kern2.guillemotright.case</key>\n    <array>\n      <string>guillemotright.case</string>\n      <string>guilsinglright.case</string>\n    </array>\n    <key>public.kern2.h</key>\n    <array>\n      <string>h</string>\n      <string>hbar</string>\n      <string>hcircumflex</string>\n      <string>k</string>\n      <string>kcommaaccent</string>\n      <string>l</string>\n      <string>lacute</string>\n      <string>lcaron</string>\n      <string>lcommaaccent</string>\n      <string>ldot</string>\n      <string>lslash</string>\n      <string>germandbls</string>\n    </array>\n    <key>public.kern2.hyphen.case</key>\n    <array>\n      <string>emdash.case</string>\n      <string>endash.case</string>\n      <string>hyphen.case</string>\n      <string>plus</string>\n      <string>minus</string>\n    </array>\n    <key>public.kern2.j</key>\n    <array>\n      <string>j</string>\n    </array>\n    <key>public.kern2.minute</key>\n    <array>\n      <string>quotedbl</string>\n      <string>quotesingle</string>\n    </array>\n    <key>public.kern2.onesuperior</key>\n    <array>\n      <string>onesuperior</string>\n      <string>threesuperior</string>\n      <string>twosuperior</string>\n    </array>\n    <key>public.kern2.quotedblleft</key>\n    <array>\n      <string>quotedblleft</string>\n      <string>quoteleft</string>\n    </array>\n    <key>public.kern2.quoteright</key>\n    <array>\n      <string>quotedblright</string>\n      <string>quoteright</string>\n    </array>\n    <key>public.kern2.s</key>\n    <array>\n      <string>s</string>\n      <string>sacute</string>\n      <string>scaron</string>\n      <string>scedilla</string>\n      <string>scircumflex</string>\n      <string>scommaaccent</string>\n    </array>\n    <key>public.kern2.s.alt</key>\n    <array>\n      <string>sacute.alt</string>\n      <string>scaron.alt</string>\n      <string>scedilla.alt</string>\n      <string>scircumflex.alt</string>\n      <string>scommaaccent.alt</string>\n      <string>s.alt</string>\n    </array>\n    <key>public.kern2.t</key>\n    <array>\n      <string>t</string>\n      <string>tbar</string>\n      <string>tcaron</string>\n      <string>tcommaaccent</string>\n      <string>uni021B</string>\n    </array>\n    <key>public.kern2.t.alt</key>\n    <array>\n      <string>tcaron.alt</string>\n      <string>tcommaaccent.alt</string>\n      <string>t.alt</string>\n      <string>uni021B.alt</string>\n    </array>\n    <key>public.kern2.t.alt2</key>\n    <array>\n      <string>tcaron.alt2</string>\n      <string>tcommaaccent.alt2</string>\n      <string>t.alt2</string>\n      <string>uni021B.alt2</string>\n    </array>\n    <key>public.kern2.u</key>\n    <array>\n      <string>u</string>\n      <string>uacute</string>\n      <string>ubreve</string>\n      <string>ucircumflex</string>\n      <string>udieresis</string>\n      <string>ugrave</string>\n      <string>uhungarumlaut</string>\n      <string>umacron</string>\n      <string>uogonek</string>\n      <string>uring</string>\n      <string>utilde</string>\n      <string>yacute.alt</string>\n      <string>ycircumflex.alt</string>\n      <string>ydieresis.alt</string>\n      <string>y.alt</string>\n      <string>y</string>\n      <string>yacute</string>\n      <string>ycircumflex</string>\n      <string>ydieresis</string>\n    </array>\n    <key>public.kern2.v</key>\n    <array>\n      <string>v</string>\n      <string>w</string>\n      <string>wacute</string>\n      <string>wcircumflex</string>\n      <string>wdieresis</string>\n      <string>wgrave</string>\n    </array>\n    <key>public.kern2.y</key>\n    <array>\n      <string>y.alt2</string>\n      <string>yacute.alt2</string>\n      <string>ycircumflex.alt2</string>\n      <string>ydieresis.alt2</string>\n    </array>\n    <key>public.kern2.z</key>\n    <array>\n      <string>z</string>\n      <string>zacute</string>\n      <string>zcaron</string>\n      <string>zdotaccent</string>\n    </array>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/layercontents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <array>\n    <array>\n      <string>foreground</string>\n      <string>glyphs</string>\n    </array>\n  </array>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/lib.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>com.defcon.sortDescriptor</key>\n    <array>\n      <dict>\n        <key>ascending</key>\n        <array>\n          <string>.notdef</string>\n          <string>A</string>\n          <string>B</string>\n          <string>C</string>\n          <string>D</string>\n          <string>E</string>\n          <string>F</string>\n          <string>G</string>\n          <string>H</string>\n          <string>I</string>\n          <string>J</string>\n          <string>K</string>\n          <string>L</string>\n          <string>M</string>\n          <string>N</string>\n          <string>O</string>\n          <string>P</string>\n          <string>Q</string>\n          <string>R</string>\n          <string>S</string>\n          <string>T</string>\n          <string>U</string>\n          <string>V</string>\n          <string>W</string>\n          <string>X</string>\n          <string>Y</string>\n          <string>Z</string>\n          <string>a</string>\n          <string>b</string>\n          <string>c</string>\n          <string>d</string>\n          <string>e</string>\n          <string>f</string>\n          <string>g</string>\n          <string>h</string>\n          <string>i</string>\n          <string>j</string>\n          <string>k</string>\n          <string>l</string>\n          <string>m</string>\n          <string>n</string>\n          <string>o</string>\n          <string>p</string>\n          <string>q</string>\n          <string>r</string>\n          <string>s</string>\n          <string>t</string>\n          <string>u</string>\n          <string>v</string>\n          <string>w</string>\n          <string>x</string>\n          <string>y</string>\n          <string>z</string>\n          <string>Aacute</string>\n          <string>aacute</string>\n          <string>Abreve</string>\n          <string>abreve</string>\n          <string>Acircumflex</string>\n          <string>acircumflex</string>\n          <string>Adieresis</string>\n          <string>adieresis</string>\n          <string>Agrave</string>\n          <string>agrave</string>\n          <string>Amacron</string>\n          <string>amacron</string>\n          <string>Aogonek</string>\n          <string>aogonek</string>\n          <string>Aring</string>\n          <string>aring</string>\n          <string>Aringacute</string>\n          <string>aringacute</string>\n          <string>Atilde</string>\n          <string>atilde</string>\n          <string>AE</string>\n          <string>ae</string>\n          <string>AEacute</string>\n          <string>aeacute</string>\n          <string>Cacute</string>\n          <string>cacute</string>\n          <string>Ccaron</string>\n          <string>ccaron</string>\n          <string>Ccedilla</string>\n          <string>ccedilla</string>\n          <string>Ccircumflex</string>\n          <string>ccircumflex</string>\n          <string>Cdotaccent</string>\n          <string>cdotaccent</string>\n          <string>Dcaron</string>\n          <string>dcaron</string>\n          <string>Dcroat</string>\n          <string>dcroat</string>\n          <string>Eacute</string>\n          <string>eacute</string>\n          <string>Ebreve</string>\n          <string>ebreve</string>\n          <string>Ecaron</string>\n          <string>ecaron</string>\n          <string>Ecircumflex</string>\n          <string>ecircumflex</string>\n          <string>Edieresis</string>\n          <string>edieresis</string>\n          <string>Edotaccent</string>\n          <string>edotaccent</string>\n          <string>Egrave</string>\n          <string>egrave</string>\n          <string>Emacron</string>\n          <string>emacron</string>\n          <string>Eng</string>\n          <string>eng</string>\n          <string>Eogonek</string>\n          <string>eogonek</string>\n          <string>Eth</string>\n          <string>eth</string>\n          <string>fi</string>\n          <string>fl</string>\n          <string>Gbreve</string>\n          <string>gbreve</string>\n          <string>Gcircumflex</string>\n          <string>gcircumflex</string>\n          <string>Gcommaaccent</string>\n          <string>gcommaaccent</string>\n          <string>Gdotaccent</string>\n          <string>gdotaccent</string>\n          <string>Hbar</string>\n          <string>hbar</string>\n          <string>Hcircumflex</string>\n          <string>hcircumflex</string>\n          <string>Iacute</string>\n          <string>iacute</string>\n          <string>Ibreve</string>\n          <string>ibreve</string>\n          <string>Icircumflex</string>\n          <string>icircumflex</string>\n          <string>Idieresis</string>\n          <string>idieresis</string>\n          <string>Idotaccent</string>\n          <string>Igrave</string>\n          <string>igrave</string>\n          <string>IJ</string>\n          <string>ij</string>\n          <string>Imacron</string>\n          <string>imacron</string>\n          <string>Iogonek</string>\n          <string>iogonek</string>\n          <string>Itilde</string>\n          <string>itilde</string>\n          <string>dotlessi</string>\n          <string>Jcircumflex</string>\n          <string>jcircumflex</string>\n          <string>Kcommaaccent</string>\n          <string>kcommaaccent</string>\n          <string>kgreenlandic</string>\n          <string>Lacute</string>\n          <string>lacute</string>\n          <string>Lcaron</string>\n          <string>lcaron</string>\n          <string>Lcommaaccent</string>\n          <string>lcommaaccent</string>\n          <string>Ldot</string>\n          <string>ldot</string>\n          <string>Lslash</string>\n          <string>lslash</string>\n          <string>Nacute</string>\n          <string>nacute</string>\n          <string>napostrophe</string>\n          <string>Ncaron</string>\n          <string>ncaron</string>\n          <string>Ncommaaccent</string>\n          <string>ncommaaccent</string>\n          <string>Ntilde</string>\n          <string>ntilde</string>\n          <string>Oacute</string>\n          <string>oacute</string>\n          <string>Obreve</string>\n          <string>obreve</string>\n          <string>Ocircumflex</string>\n          <string>ocircumflex</string>\n          <string>Odieresis</string>\n          <string>odieresis</string>\n          <string>Ograve</string>\n          <string>ograve</string>\n          <string>Ohungarumlaut</string>\n          <string>ohungarumlaut</string>\n          <string>Omacron</string>\n          <string>omacron</string>\n          <string>Oslash</string>\n          <string>oslash</string>\n          <string>Oslashacute</string>\n          <string>oslashacute</string>\n          <string>Otilde</string>\n          <string>otilde</string>\n          <string>OE</string>\n          <string>oe</string>\n          <string>Racute</string>\n          <string>racute</string>\n          <string>Rcaron</string>\n          <string>rcaron</string>\n          <string>Rcommaaccent</string>\n          <string>rcommaaccent</string>\n          <string>Sacute</string>\n          <string>sacute</string>\n          <string>Scaron</string>\n          <string>scaron</string>\n          <string>Scedilla</string>\n          <string>scedilla</string>\n          <string>Scircumflex</string>\n          <string>scircumflex</string>\n          <string>Scommaaccent</string>\n          <string>scommaaccent</string>\n          <string>Tbar</string>\n          <string>tbar</string>\n          <string>Tcaron</string>\n          <string>tcaron</string>\n          <string>Tcommaaccent</string>\n          <string>tcommaaccent</string>\n          <string>uni021A</string>\n          <string>uni021B</string>\n          <string>Thorn</string>\n          <string>thorn</string>\n          <string>Uacute</string>\n          <string>uacute</string>\n          <string>Ubreve</string>\n          <string>ubreve</string>\n          <string>Ucircumflex</string>\n          <string>ucircumflex</string>\n          <string>Udieresis</string>\n          <string>udieresis</string>\n          <string>Ugrave</string>\n          <string>ugrave</string>\n          <string>Uhungarumlaut</string>\n          <string>uhungarumlaut</string>\n          <string>Umacron</string>\n          <string>umacron</string>\n          <string>Uogonek</string>\n          <string>uogonek</string>\n          <string>Uring</string>\n          <string>uring</string>\n          <string>Utilde</string>\n          <string>utilde</string>\n          <string>Wacute</string>\n          <string>wacute</string>\n          <string>Wcircumflex</string>\n          <string>wcircumflex</string>\n          <string>Wdieresis</string>\n          <string>wdieresis</string>\n          <string>Wgrave</string>\n          <string>wgrave</string>\n          <string>Yacute</string>\n          <string>yacute</string>\n          <string>Ycircumflex</string>\n          <string>ycircumflex</string>\n          <string>Ydieresis</string>\n          <string>ydieresis</string>\n          <string>Zacute</string>\n          <string>zacute</string>\n          <string>Zcaron</string>\n          <string>zcaron</string>\n          <string>Zdotaccent</string>\n          <string>zdotaccent</string>\n          <string>uni1E9E</string>\n          <string>germandbls</string>\n          <string>C.alt</string>\n          <string>Ccedilla.alt</string>\n          <string>Cacute.alt</string>\n          <string>Ccaron.alt</string>\n          <string>Ccircumflex.alt</string>\n          <string>Cdotaccent.alt</string>\n          <string>G.alt</string>\n          <string>Gbreve.alt</string>\n          <string>Gcircumflex.alt</string>\n          <string>Gcommaaccent.alt</string>\n          <string>Gdotaccent.alt</string>\n          <string>S.alt</string>\n          <string>Sacute.alt</string>\n          <string>Scaron.alt</string>\n          <string>Scedilla.alt</string>\n          <string>Scircumflex.alt</string>\n          <string>Scommaaccent.alt</string>\n          <string>a.alt</string>\n          <string>agrave.alt</string>\n          <string>acircumflex.alt</string>\n          <string>aacute.alt</string>\n          <string>abreve.alt</string>\n          <string>amacron.alt</string>\n          <string>aogonek.alt</string>\n          <string>aring.alt</string>\n          <string>aringacute.alt</string>\n          <string>atilde.alt</string>\n          <string>adieresis.alt</string>\n          <string>ae.alt</string>\n          <string>aeacute.alt</string>\n          <string>c.alt</string>\n          <string>ccedilla.alt</string>\n          <string>cacute.alt</string>\n          <string>ccaron.alt</string>\n          <string>ccircumflex.alt</string>\n          <string>cdotaccent.alt</string>\n          <string>e.alt</string>\n          <string>eacute.alt</string>\n          <string>egrave.alt</string>\n          <string>ecircumflex.alt</string>\n          <string>edieresis.alt</string>\n          <string>ebreve.alt</string>\n          <string>ecaron.alt</string>\n          <string>edotaccent.alt</string>\n          <string>emacron.alt</string>\n          <string>eogonek.alt</string>\n          <string>a.alt2</string>\n          <string>agrave.alt2</string>\n          <string>acircumflex.alt2</string>\n          <string>adieresis.alt2</string>\n          <string>aacute.alt2</string>\n          <string>abreve.alt2</string>\n          <string>amacron.alt2</string>\n          <string>aogonek.alt2</string>\n          <string>aring.alt2</string>\n          <string>aringacute.alt2</string>\n          <string>atilde.alt2</string>\n          <string>ae.alt2</string>\n          <string>aeacute.alt2</string>\n          <string>g.alt</string>\n          <string>gbreve.alt</string>\n          <string>gcircumflex.alt</string>\n          <string>gdotaccent.alt</string>\n          <string>gcommaaccent.alt</string>\n          <string>g.alt2</string>\n          <string>gbreve.alt2</string>\n          <string>gcircumflex.alt2</string>\n          <string>gdotaccent.alt2</string>\n          <string>gcommaaccent.alt2</string>\n          <string>s.alt</string>\n          <string>sacute.alt</string>\n          <string>scaron.alt</string>\n          <string>scedilla.alt</string>\n          <string>scircumflex.alt</string>\n          <string>scommaaccent.alt</string>\n          <string>t.alt</string>\n          <string>tbar.alt</string>\n          <string>tcaron.alt</string>\n          <string>tcommaaccent.alt</string>\n          <string>uni021B.alt</string>\n          <string>t.alt2</string>\n          <string>tbar.alt2</string>\n          <string>tcaron.alt2</string>\n          <string>tcommaaccent.alt2</string>\n          <string>uni021B.alt2</string>\n          <string>y.alt</string>\n          <string>yacute.alt</string>\n          <string>ycircumflex.alt</string>\n          <string>ydieresis.alt</string>\n          <string>y.alt2</string>\n          <string>yacute.alt2</string>\n          <string>ycircumflex.alt2</string>\n          <string>ydieresis.alt2</string>\n          <string>zero</string>\n          <string>one</string>\n          <string>two</string>\n          <string>three</string>\n          <string>four</string>\n          <string>five</string>\n          <string>six</string>\n          <string>seven</string>\n          <string>eight</string>\n          <string>nine</string>\n          <string>two.alt</string>\n          <string>three.alt</string>\n          <string>five.alt</string>\n          <string>six.alt</string>\n          <string>nine.alt</string>\n          <string>period</string>\n          <string>comma</string>\n          <string>colon</string>\n          <string>semicolon</string>\n          <string>ellipsis</string>\n          <string>periodcentered</string>\n          <string>periodcentered.case</string>\n          <string>bullet</string>\n          <string>bullet.case</string>\n          <string>ampersand</string>\n          <string>ampersand.alt</string>\n          <string>exclam</string>\n          <string>exclamdown</string>\n          <string>exclamdown.case</string>\n          <string>question</string>\n          <string>question.alt</string>\n          <string>questiondown</string>\n          <string>questiondown.alt</string>\n          <string>questiondown.case</string>\n          <string>questiondown.alt.case</string>\n          <string>quotedblleft</string>\n          <string>quotedblright</string>\n          <string>quoteleft</string>\n          <string>quoteright</string>\n          <string>quotedblbase</string>\n          <string>quotesinglbase</string>\n          <string>guillemotleft</string>\n          <string>guillemotright</string>\n          <string>guillemotleft.case</string>\n          <string>guillemotright.case</string>\n          <string>guilsinglleft</string>\n          <string>guilsinglright</string>\n          <string>guilsinglleft.case</string>\n          <string>guilsinglright.case</string>\n          <string>hyphen</string>\n          <string>endash</string>\n          <string>emdash</string>\n          <string>hyphen.case</string>\n          <string>endash.case</string>\n          <string>emdash.case</string>\n          <string>underscore</string>\n          <string>slash</string>\n          <string>backslash</string>\n          <string>bar</string>\n          <string>brokenbar</string>\n          <string>parenleft</string>\n          <string>parenright</string>\n          <string>parenleft.case</string>\n          <string>parenright.case</string>\n          <string>bracketleft</string>\n          <string>bracketright</string>\n          <string>bracketleft.case</string>\n          <string>bracketright.case</string>\n          <string>braceleft</string>\n          <string>braceright</string>\n          <string>braceleft.case</string>\n          <string>braceright.case</string>\n          <string>at</string>\n          <string>at.case</string>\n          <string>copyright</string>\n          <string>copyright.alt</string>\n          <string>registered</string>\n          <string>trademark</string>\n          <string>asterisk</string>\n          <string>dagger</string>\n          <string>daggerdbl</string>\n          <string>asciicircum</string>\n          <string>asciitilde</string>\n          <string>dollar</string>\n          <string>dollar.alt</string>\n          <string>cent</string>\n          <string>cent.alt</string>\n          <string>sterling</string>\n          <string>sterling.alt</string>\n          <string>yen</string>\n          <string>Euro</string>\n          <string>Euro.alt</string>\n          <string>numbersign</string>\n          <string>paragraph</string>\n          <string>section</string>\n          <string>section.alt</string>\n          <string>ordfeminine</string>\n          <string>ordfeminine.alt</string>\n          <string>ordfeminine.alt2</string>\n          <string>ordmasculine</string>\n          <string>degree</string>\n          <string>percent</string>\n          <string>perthousand</string>\n          <string>quotedbl</string>\n          <string>quotesingle</string>\n          <string>plus</string>\n          <string>minus</string>\n          <string>less</string>\n          <string>greater</string>\n          <string>equal</string>\n          <string>multiply</string>\n          <string>divide</string>\n          <string>zero.osf</string>\n          <string>one.osf</string>\n          <string>two.osf</string>\n          <string>three.osf</string>\n          <string>four.osf</string>\n          <string>five.osf</string>\n          <string>six.osf</string>\n          <string>seven.osf</string>\n          <string>eight.osf</string>\n          <string>nine.osf</string>\n          <string>two.osf.alt</string>\n          <string>three.osf.alt</string>\n          <string>five.osf.alt</string>\n          <string>six.osf.alt</string>\n          <string>nine.osf.alt</string>\n          <string>dollar.osf</string>\n          <string>sterling.osf</string>\n          <string>Euro.osf</string>\n          <string>yen.osf</string>\n          <string>dollar.osf.alt</string>\n          <string>sterling.osf.alt</string>\n          <string>Euro.osf.alt</string>\n          <string>acute</string>\n          <string>hungarumlaut</string>\n          <string>caron.alt</string>\n          <string>grave</string>\n          <string>circumflex</string>\n          <string>caron</string>\n          <string>breve</string>\n          <string>tilde</string>\n          <string>macron</string>\n          <string>dieresis</string>\n          <string>dotaccent</string>\n          <string>ring</string>\n          <string>commaaccent</string>\n          <string>cedilla</string>\n          <string>ogonek</string>\n          <string>baraccent</string>\n          <string>afii61352</string>\n          <string>onesuperior</string>\n          <string>twosuperior</string>\n          <string>threesuperior</string>\n          <string>onequarter</string>\n          <string>onehalf</string>\n          <string>threequarters</string>\n          <string>onehalf.alt</string>\n          <string>threequarters.alt</string>\n          <string>fraction</string>\n          <string>zero.numr</string>\n          <string>one.numr</string>\n          <string>two.numr</string>\n          <string>three.numr</string>\n          <string>four.numr</string>\n          <string>five.numr</string>\n          <string>six.numr</string>\n          <string>seven.numr</string>\n          <string>eight.numr</string>\n          <string>nine.numr</string>\n          <string>two.alt.numr</string>\n          <string>three.alt.numr</string>\n          <string>five.alt.numr</string>\n          <string>six.alt.numr</string>\n          <string>nine.alt.numr</string>\n          <string>zero.dnom</string>\n          <string>one.dnom</string>\n          <string>two.dnom</string>\n          <string>three.dnom</string>\n          <string>four.dnom</string>\n          <string>five.dnom</string>\n          <string>six.dnom</string>\n          <string>seven.dnom</string>\n          <string>eight.dnom</string>\n          <string>nine.dnom</string>\n          <string>two.alt.dnom</string>\n          <string>three.alt.dnom</string>\n          <string>five.alt.dnom</string>\n          <string>six.alt.dnom</string>\n          <string>nine.alt.dnom</string>\n          <string>arrowleft</string>\n          <string>arrowup</string>\n          <string>arrowright</string>\n          <string>arrowdown</string>\n          <string>filledbox</string>\n          <string>space</string>\n          <string>thinspace</string>\n          <string>nbspace</string>\n          <string>Aacute.compact</string>\n        </array>\n        <key>type</key>\n        <string>glyphList</string>\n      </dict>\n    </array>\n    <key>com.loicsander.scaleFast</key>\n    <dict>\n      <key>guides</key>\n      <array>\n        <dict>\n          <key>Height</key>\n          <string>802</string>\n          <key>Name</key>\n          <string>New guide 1</string>\n        </dict>\n      </array>\n      <key>presets</key>\n      <dict/>\n    </dict>\n    <key>com.typemytype.robofont.background.layerStrokeColor</key>\n    <array>\n      <real>1.0</real>\n      <real>0.75</real>\n      <real>0.0</real>\n      <real>0.7</real>\n    </array>\n    <key>com.typemytype.robofont.compileSettings.MacRomanFirst</key>\n    <false/>\n    <key>com.typemytype.robofont.compileSettings.autohint</key>\n    <true/>\n    <key>com.typemytype.robofont.compileSettings.checkOutlines</key>\n    <integer>1</integer>\n    <key>com.typemytype.robofont.compileSettings.createDummyDSIG</key>\n    <true/>\n    <key>com.typemytype.robofont.compileSettings.decompose</key>\n    <integer>1</integer>\n    <key>com.typemytype.robofont.compileSettings.generateFormat</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.compileSettings.layerName</key>\n    <string>foreground</string>\n    <key>com.typemytype.robofont.compileSettings.path</key>\n    <string>/Users/jamesedmondson/Dropbox/Ohno/Fonts/DevObviously_BlackItalic.otf</string>\n    <key>com.typemytype.robofont.compileSettings.releaseMode</key>\n    <false/>\n    <key>com.typemytype.robofont.foreground.layerStrokeColor</key>\n    <array>\n      <real>0.5725</real>\n      <real>0.5725</real>\n      <real>0.9529</real>\n      <real>1.0</real>\n    </array>\n    <key>com.typemytype.robofont.guideline.magnetic.1jMNUxSUou</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.DUaMYzQSQM</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.QhhoCLTuHS</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.V9hiWVV33p</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.d3Nkv4XtBG</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.liIC7QtlqK</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.showMeasurements.1jMNUxSUou</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.DUaMYzQSQM</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.QhhoCLTuHS</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.V9hiWVV33p</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.d3Nkv4XtBG</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.liIC7QtlqK</key>\n    <false/>\n    <key>com.typemytype.robofont.italicSlantOffset</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.segmentType</key>\n    <string>curve</string>\n    <key>com.typemytype.robofont.shouldAddPointsInSplineConversion</key>\n    <integer>1</integer>\n    <key>com.typemytype.robofont.smartSets.uniqueKey</key>\n    <string>4720224272</string>\n    <key>com.typesupply.defcon.sortDescriptor</key>\n    <array>\n      <dict>\n        <key>ascending</key>\n        <array>\n          <string>.notdef</string>\n          <string>A</string>\n          <string>B</string>\n          <string>C</string>\n          <string>D</string>\n          <string>E</string>\n          <string>F</string>\n          <string>G</string>\n          <string>H</string>\n          <string>I</string>\n          <string>J</string>\n          <string>K</string>\n          <string>L</string>\n          <string>M</string>\n          <string>N</string>\n          <string>O</string>\n          <string>P</string>\n          <string>Q</string>\n          <string>R</string>\n          <string>S</string>\n          <string>T</string>\n          <string>U</string>\n          <string>V</string>\n          <string>W</string>\n          <string>X</string>\n          <string>Y</string>\n          <string>Z</string>\n          <string>a</string>\n          <string>b</string>\n          <string>c</string>\n          <string>d</string>\n          <string>e</string>\n          <string>f</string>\n          <string>g</string>\n          <string>h</string>\n          <string>i</string>\n          <string>j</string>\n          <string>k</string>\n          <string>l</string>\n          <string>m</string>\n          <string>n</string>\n          <string>o</string>\n          <string>p</string>\n          <string>q</string>\n          <string>r</string>\n          <string>s</string>\n          <string>t</string>\n          <string>u</string>\n          <string>v</string>\n          <string>w</string>\n          <string>x</string>\n          <string>y</string>\n          <string>z</string>\n          <string>AE</string>\n          <string>AEacute</string>\n          <string>Aacute</string>\n          <string>Abreve</string>\n          <string>Acircumflex</string>\n          <string>Adieresis</string>\n          <string>Agrave</string>\n          <string>Amacron</string>\n          <string>Aogonek</string>\n          <string>Aring</string>\n          <string>Aringacute</string>\n          <string>Atilde</string>\n          <string>C.alt</string>\n          <string>Cacute</string>\n          <string>Ccaron</string>\n          <string>Ccedilla</string>\n          <string>Ccircumflex</string>\n          <string>Cdotaccent</string>\n          <string>Dcaron</string>\n          <string>Dcroat</string>\n          <string>Eacute</string>\n          <string>Ebreve</string>\n          <string>Ecaron</string>\n          <string>Ecircumflex</string>\n          <string>Edieresis</string>\n          <string>Edotaccent</string>\n          <string>Egrave</string>\n          <string>Emacron</string>\n          <string>Eng</string>\n          <string>Eogonek</string>\n          <string>Eth</string>\n          <string>Euro</string>\n          <string>Euro.osf</string>\n          <string>G.alt</string>\n          <string>Gbreve</string>\n          <string>Gcircumflex</string>\n          <string>Gcommaaccent</string>\n          <string>Gdotaccent</string>\n          <string>Hbar</string>\n          <string>Hcircumflex</string>\n          <string>IJ</string>\n          <string>Iacute</string>\n          <string>Ibreve</string>\n          <string>Icircumflex</string>\n          <string>Idieresis</string>\n          <string>Idotaccent</string>\n          <string>Igrave</string>\n          <string>Imacron</string>\n          <string>Iogonek</string>\n          <string>Itilde</string>\n          <string>Jcircumflex</string>\n          <string>Kcommaaccent</string>\n          <string>Lacute</string>\n          <string>Lcaron</string>\n          <string>Lcommaaccent</string>\n          <string>Ldot</string>\n          <string>Lslash</string>\n          <string>Nacute</string>\n          <string>Ncaron</string>\n          <string>Ncommaaccent</string>\n          <string>Ntilde</string>\n          <string>OE</string>\n          <string>Oacute</string>\n          <string>Obreve</string>\n          <string>Ocircumflex</string>\n          <string>Odieresis</string>\n          <string>Ograve</string>\n          <string>Ohungarumlaut</string>\n          <string>Omacron</string>\n          <string>Oslash</string>\n          <string>Oslashacute</string>\n          <string>Otilde</string>\n          <string>Racute</string>\n          <string>Rcaron</string>\n          <string>Rcommaaccent</string>\n          <string>S.alt</string>\n          <string>Sacute</string>\n          <string>Scaron</string>\n          <string>Scedilla</string>\n          <string>Scircumflex</string>\n          <string>Scommaaccent</string>\n          <string>Tbar</string>\n          <string>Tcaron</string>\n          <string>Tcommaaccent</string>\n          <string>Thorn</string>\n          <string>Uacute</string>\n          <string>Ubreve</string>\n          <string>Ucircumflex</string>\n          <string>Udieresis</string>\n          <string>Ugrave</string>\n          <string>Uhungarumlaut</string>\n          <string>Umacron</string>\n          <string>Uogonek</string>\n          <string>Uring</string>\n          <string>Utilde</string>\n          <string>Wacute</string>\n          <string>Wcircumflex</string>\n          <string>Wdieresis</string>\n          <string>Wgrave</string>\n          <string>Yacute</string>\n          <string>Ycircumflex</string>\n          <string>Ydieresis</string>\n          <string>Zacute</string>\n          <string>Zcaron</string>\n          <string>Zdotaccent</string>\n          <string>a.alt</string>\n          <string>aacute</string>\n          <string>abreve</string>\n          <string>acircumflex</string>\n          <string>acute</string>\n          <string>acute.case</string>\n          <string>adieresis</string>\n          <string>ae</string>\n          <string>aeacute</string>\n          <string>afii61352</string>\n          <string>agrave</string>\n          <string>amacron</string>\n          <string>ampersand</string>\n          <string>ampersand.alt</string>\n          <string>ampersand.ss01</string>\n          <string>aogonek</string>\n          <string>aring</string>\n          <string>aringacute</string>\n          <string>arrowboth</string>\n          <string>arrowdown</string>\n          <string>arrowleft</string>\n          <string>arrowright</string>\n          <string>arrowup</string>\n          <string>arrowupdn</string>\n          <string>asciicircum</string>\n          <string>asciitilde</string>\n          <string>asterisk</string>\n          <string>at</string>\n          <string>at.case</string>\n          <string>atilde</string>\n          <string>backslash</string>\n          <string>bar</string>\n          <string>braceleft</string>\n          <string>braceleft.case</string>\n          <string>braceright</string>\n          <string>braceright.case</string>\n          <string>bracketleft</string>\n          <string>bracketleft.case</string>\n          <string>bracketright</string>\n          <string>bracketright.case</string>\n          <string>breve</string>\n          <string>breve.case</string>\n          <string>brokenbar</string>\n          <string>bullet</string>\n          <string>bullet.case</string>\n          <string>c.alt</string>\n          <string>cacute</string>\n          <string>caron</string>\n          <string>caron.alt</string>\n          <string>caron.case</string>\n          <string>ccaron</string>\n          <string>ccedilla</string>\n          <string>ccircumflex</string>\n          <string>cdotaccent</string>\n          <string>cedilla</string>\n          <string>cent</string>\n          <string>circumflex</string>\n          <string>circumflex.case</string>\n          <string>colon</string>\n          <string>comma</string>\n          <string>commaaccent</string>\n          <string>copyright</string>\n          <string>dagger</string>\n          <string>daggerdbl</string>\n          <string>dcaron</string>\n          <string>dcroat</string>\n          <string>degree</string>\n          <string>dieresis</string>\n          <string>dieresis.case</string>\n          <string>divide</string>\n          <string>dollar</string>\n          <string>dollar.osf</string>\n          <string>dotaccent</string>\n          <string>dotaccent.case</string>\n          <string>dotlessi</string>\n          <string>e.alt</string>\n          <string>eacute</string>\n          <string>ebreve</string>\n          <string>ecaron</string>\n          <string>ecircumflex</string>\n          <string>edieresis</string>\n          <string>edotaccent</string>\n          <string>egrave</string>\n          <string>eight</string>\n          <string>eight.dnom</string>\n          <string>eight.numr</string>\n          <string>eight.osf</string>\n          <string>ellipsis</string>\n          <string>emacron</string>\n          <string>emdash</string>\n          <string>emdash.case</string>\n          <string>endash</string>\n          <string>endash.case</string>\n          <string>eng</string>\n          <string>eogonek</string>\n          <string>equal</string>\n          <string>eth</string>\n          <string>exclam</string>\n          <string>exclamdown</string>\n          <string>fi</string>\n          <string>filledbox</string>\n          <string>five</string>\n          <string>five.alt</string>\n          <string>five.dnom</string>\n          <string>five.numr</string>\n          <string>five.osf</string>\n          <string>fl</string>\n          <string>four</string>\n          <string>four.dnom</string>\n          <string>four.numr</string>\n          <string>four.osf</string>\n          <string>fraction</string>\n          <string>g.alt</string>\n          <string>gbreve</string>\n          <string>gcircumflex</string>\n          <string>gcommaaccent</string>\n          <string>gdotaccent</string>\n          <string>germandbls</string>\n          <string>grave</string>\n          <string>grave.case</string>\n          <string>greater</string>\n          <string>guillemotleft</string>\n          <string>guillemotleft.case</string>\n          <string>guillemotright</string>\n          <string>guillemotright.case</string>\n          <string>guilsinglleft</string>\n          <string>guilsinglleft.case</string>\n          <string>guilsinglright</string>\n          <string>guilsinglright.case</string>\n          <string>hbar</string>\n          <string>hcircumflex</string>\n          <string>hungarumlaut</string>\n          <string>hungarumlaut.case</string>\n          <string>hyphen</string>\n          <string>hyphen.case</string>\n          <string>iacute</string>\n          <string>ibreve</string>\n          <string>icircumflex</string>\n          <string>idieresis</string>\n          <string>igrave</string>\n          <string>ij</string>\n          <string>imacron</string>\n          <string>iogonek</string>\n          <string>itilde</string>\n          <string>jcircumflex</string>\n          <string>kcommaaccent</string>\n          <string>kgreenlandic</string>\n          <string>lacute</string>\n          <string>lcaron</string>\n          <string>lcommaaccent</string>\n          <string>ldot</string>\n          <string>less</string>\n          <string>lslash</string>\n          <string>macron</string>\n          <string>macron.case</string>\n          <string>minus</string>\n          <string>multiply</string>\n          <string>nacute</string>\n          <string>napostrophe</string>\n          <string>nbspace</string>\n          <string>ncaron</string>\n          <string>ncommaaccent</string>\n          <string>nine</string>\n          <string>nine.alt</string>\n          <string>nine.dnom</string>\n          <string>nine.numr</string>\n          <string>nine.osf</string>\n          <string>ntilde</string>\n          <string>numbersign</string>\n          <string>oacute</string>\n          <string>obreve</string>\n          <string>ocircumflex</string>\n          <string>odieresis</string>\n          <string>oe</string>\n          <string>ogonek</string>\n          <string>ograve</string>\n          <string>ohungarumlaut</string>\n          <string>omacron</string>\n          <string>one</string>\n          <string>one.dnom</string>\n          <string>one.numr</string>\n          <string>one.osf</string>\n          <string>onehalf</string>\n          <string>onequarter</string>\n          <string>onesuperior</string>\n          <string>ordfeminine</string>\n          <string>ordmasculine</string>\n          <string>oslash</string>\n          <string>oslashacute</string>\n          <string>otilde</string>\n          <string>paragraph</string>\n          <string>parenleft</string>\n          <string>parenleft.case</string>\n          <string>parenright</string>\n          <string>parenright.case</string>\n          <string>percent</string>\n          <string>period</string>\n          <string>periodcentered</string>\n          <string>periodcentered.case</string>\n          <string>perthousand</string>\n          <string>plus</string>\n          <string>question</string>\n          <string>question.alt</string>\n          <string>questiondown</string>\n          <string>quotedbl</string>\n          <string>quotedblbase</string>\n          <string>quotedblleft</string>\n          <string>quotedblright</string>\n          <string>quoteleft</string>\n          <string>quoteright</string>\n          <string>quotesinglbase</string>\n          <string>quotesingle</string>\n          <string>racute</string>\n          <string>rcaron</string>\n          <string>rcommaaccent</string>\n          <string>registered</string>\n          <string>ring</string>\n          <string>ring.case</string>\n          <string>s.alt</string>\n          <string>sacute</string>\n          <string>scaron</string>\n          <string>scedilla</string>\n          <string>scircumflex</string>\n          <string>scommaaccent</string>\n          <string>section</string>\n          <string>semicolon</string>\n          <string>seven</string>\n          <string>seven.dnom</string>\n          <string>seven.numr</string>\n          <string>seven.osf</string>\n          <string>six</string>\n          <string>six.alt</string>\n          <string>six.dnom</string>\n          <string>six.numr</string>\n          <string>six.osf</string>\n          <string>slash</string>\n          <string>space</string>\n          <string>sterling</string>\n          <string>sterling.osf</string>\n          <string>tbar</string>\n          <string>tcaron</string>\n          <string>tcommaaccent</string>\n          <string>thinspace</string>\n          <string>thorn</string>\n          <string>three</string>\n          <string>three.alt</string>\n          <string>three.dnom</string>\n          <string>three.numr</string>\n          <string>three.osf</string>\n          <string>threequarters</string>\n          <string>threesuperior</string>\n          <string>tilde</string>\n          <string>tilde.case</string>\n          <string>trademark</string>\n          <string>two</string>\n          <string>two.alt</string>\n          <string>two.dnom</string>\n          <string>two.numr</string>\n          <string>two.osf</string>\n          <string>twosuperior</string>\n          <string>uacute</string>\n          <string>ubreve</string>\n          <string>ucircumflex</string>\n          <string>udieresis</string>\n          <string>ugrave</string>\n          <string>uhungarumlaut</string>\n          <string>umacron</string>\n          <string>underscore</string>\n          <string>uni021A</string>\n          <string>uni021B</string>\n          <string>uni1E9E</string>\n          <string>uni2196</string>\n          <string>uni2197</string>\n          <string>uni2198</string>\n          <string>uni2199</string>\n          <string>uogonek</string>\n          <string>uring</string>\n          <string>utilde</string>\n          <string>wacute</string>\n          <string>wcircumflex</string>\n          <string>wdieresis</string>\n          <string>wgrave</string>\n          <string>y.alt</string>\n          <string>yacute</string>\n          <string>ycircumflex</string>\n          <string>ydieresis</string>\n          <string>yen</string>\n          <string>yen.osf</string>\n          <string>zacute</string>\n          <string>zcaron</string>\n          <string>zdotaccent</string>\n          <string>zero</string>\n          <string>zero.dnom</string>\n          <string>zero.numr</string>\n          <string>zero.osf</string>\n          <string>t.alt</string>\n          <string>g.alt2</string>\n        </array>\n        <key>type</key>\n        <string>glyphList</string>\n      </dict>\n    </array>\n    <key>public.glyphOrder</key>\n    <array>\n      <string>D</string>\n      <string>E</string>\n      <string>L</string>\n      <string>O</string>\n      <string>P</string>\n      <string>T</string>\n      <string>Y</string>\n      <string>C</string>\n      <string>space</string>\n    </array>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_BlackItalic.ufo/metainfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>creator</key>\n    <string>com.github.fonttools.ufoLib</string>\n    <key>formatVersion</key>\n    <integer>3</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/fontinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>ascender</key>\n    <integer>815</integer>\n    <key>capHeight</key>\n    <integer>750</integer>\n    <key>descender</key>\n    <integer>-185</integer>\n    <key>familyName</key>\n    <string>Coldtype Obviously</string>\n    <key>guidelines</key>\n    <array>\n      <dict>\n        <key>angle</key>\n        <integer>0</integer>\n        <key>identifier</key>\n        <string>6lmnulpnLT</string>\n        <key>name</key>\n        <string>descender</string>\n        <key>x</key>\n        <integer>174</integer>\n        <key>y</key>\n        <integer>-104</integer>\n      </dict>\n    </array>\n    <key>italicAngle</key>\n    <real>-14.0</real>\n    <key>openTypeNameDesigner</key>\n    <string>James Edmondson</string>\n    <key>openTypeNameDesignerURL</key>\n    <string>http://ohnotype.co</string>\n    <key>openTypeNameManufacturer</key>\n    <string>OH no Type Company</string>\n    <key>openTypeNameManufacturerURL</key>\n    <string>http://ohnotype.co</string>\n    <key>openTypeOS2Panose</key>\n    <array>\n      <integer>4</integer>\n      <integer>2</integer>\n      <integer>1</integer>\n      <integer>5</integer>\n      <integer>4</integer>\n      <integer>1</integer>\n      <integer>2</integer>\n      <integer>2</integer>\n      <integer>1</integer>\n      <integer>0</integer>\n    </array>\n    <key>openTypeOS2UnicodeRanges</key>\n    <array>\n      <integer>0</integer>\n      <integer>1</integer>\n      <integer>2</integer>\n    </array>\n    <key>openTypeOS2VendorID</key>\n    <string>OHNO</string>\n    <key>openTypeOS2WeightClass</key>\n    <integer>800</integer>\n    <key>openTypeOS2WidthClass</key>\n    <integer>5</integer>\n    <key>postscriptBlueFuzz</key>\n    <integer>0</integer>\n    <key>postscriptBlueScale</key>\n    <real>0.08333</real>\n    <key>postscriptBlueShift</key>\n    <integer>7</integer>\n    <key>postscriptBlueValues</key>\n    <array>\n      <integer>-10</integer>\n      <integer>0</integer>\n      <integer>658</integer>\n      <integer>667</integer>\n      <integer>749</integer>\n      <integer>758</integer>\n      <integer>774</integer>\n      <integer>779</integer>\n    </array>\n    <key>postscriptFamilyBlues</key>\n    <array>\n      <integer>-14</integer>\n      <integer>2</integer>\n      <integer>604</integer>\n      <integer>618</integer>\n      <integer>750</integer>\n      <integer>763</integer>\n      <integer>772</integer>\n      <integer>784</integer>\n    </array>\n    <key>postscriptFamilyOtherBlues</key>\n    <array>\n      <integer>-153</integer>\n      <integer>-134</integer>\n    </array>\n    <key>postscriptForceBold</key>\n    <false/>\n    <key>postscriptOtherBlues</key>\n    <array>\n      <integer>-111</integer>\n      <integer>-103</integer>\n    </array>\n    <key>postscriptStemSnapH</key>\n    <array>\n      <integer>209</integer>\n      <integer>263</integer>\n    </array>\n    <key>postscriptStemSnapV</key>\n    <array>\n      <integer>86</integer>\n      <integer>95</integer>\n    </array>\n    <key>styleName</key>\n    <string>Compressed Black Italic</string>\n    <key>unitsPerEm</key>\n    <integer>1000</integer>\n    <key>versionMajor</key>\n    <integer>0</integer>\n    <key>versionMinor</key>\n    <integer>0</integer>\n    <key>xHeight</key>\n    <integer>660</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/C_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"C\" format=\"2\">\n  <advance width=\"140\"/>\n  <unicode hex=\"0043\"/>\n  <outline>\n    <contour>\n      <point x=\"140\" y=\"472\" type=\"curve\"/>\n      <point x=\"125\" y=\"472\"/>\n      <point x=\"117\" y=\"477\"/>\n      <point x=\"119\" y=\"488\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"121\" y=\"497\"/>\n      <point x=\"130\" y=\"500\"/>\n      <point x=\"141\" y=\"500\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"154\" y=\"500\"/>\n      <point x=\"168\" y=\"498\"/>\n      <point x=\"177\" y=\"495\" type=\"curve\"/>\n      <point x=\"205\" y=\"606\"/>\n      <point x=\"214\" y=\"636\"/>\n      <point x=\"243\" y=\"744\" type=\"curve\"/>\n      <point x=\"233\" y=\"750\"/>\n      <point x=\"217\" y=\"754\"/>\n      <point x=\"195\" y=\"754\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"131\" y=\"754\"/>\n      <point x=\"105\" y=\"704\"/>\n      <point x=\"31\" y=\"407\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-61\" y=\"41\"/>\n      <point x=\"-54\" y=\"-4\"/>\n      <point x=\"17\" y=\"-4\" type=\"curve\"/>\n      <point x=\"34\" y=\"-4\"/>\n      <point x=\"50\" y=\"2\"/>\n      <point x=\"60\" y=\"7\" type=\"curve\"/>\n      <point x=\"90\" y=\"137\"/>\n      <point x=\"142\" y=\"349\"/>\n      <point x=\"172\" y=\"476\" type=\"curve\"/>\n      <point x=\"164\" y=\"475\"/>\n      <point x=\"157\" y=\"472\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/D_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"D\" format=\"2\">\n  <advance width=\"222\"/>\n  <unicode hex=\"0044\"/>\n  <anchor x=\"68\" y=\"381\" name=\"bar\"/>\n  <outline>\n    <contour>\n      <point x=\"67\" y=\"167\" type=\"line\"/>\n      <point x=\"80\" y=\"228\"/>\n      <point x=\"96\" y=\"292\"/>\n      <point x=\"123\" y=\"397\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"147\" y=\"496\"/>\n      <point x=\"166\" y=\"565\"/>\n      <point x=\"182\" y=\"620\" type=\"curve\"/>\n      <point x=\"163\" y=\"590\" type=\"line\"/>\n      <point x=\"170\" y=\"591\"/>\n      <point x=\"174\" y=\"591\"/>\n      <point x=\"178\" y=\"591\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"190\" y=\"591\"/>\n      <point x=\"193\" y=\"584\"/>\n      <point x=\"149\" y=\"412\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"103\" y=\"231\"/>\n      <point x=\"97\" y=\"220\"/>\n      <point x=\"84\" y=\"220\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"80\" y=\"220\"/>\n      <point x=\"77\" y=\"220\"/>\n      <point x=\"71\" y=\"220\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"38\" y=\"0\" type=\"line\"/>\n      <point x=\"117\" y=\"0\"/>\n      <point x=\"155\" y=\"59\"/>\n      <point x=\"243\" y=\"414\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"318\" y=\"713\"/>\n      <point x=\"280\" y=\"750\"/>\n      <point x=\"208\" y=\"750\" type=\"curve\"/>\n      <point x=\"121\" y=\"750\" type=\"line\"/>\n      <point x=\"96\" y=\"644\"/>\n      <point x=\"69\" y=\"533\"/>\n      <point x=\"29\" y=\"374\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-10\" y=\"215\"/>\n      <point x=\"-38\" y=\"107\"/>\n      <point x=\"-66\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/E_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"E\" format=\"2\">\n  <advance width=\"171\"/>\n  <unicode hex=\"0045\"/>\n  <outline>\n    <contour>\n      <point x=\"89\" y=\"317\" type=\"line\"/>\n      <point x=\"111\" y=\"317\"/>\n      <point x=\"142\" y=\"318\"/>\n      <point x=\"163\" y=\"316\" type=\"curve\"/>\n      <point x=\"178\" y=\"374\"/>\n      <point x=\"202\" y=\"474\"/>\n      <point x=\"216\" y=\"524\" type=\"curve\"/>\n      <point x=\"197\" y=\"522\"/>\n      <point x=\"161\" y=\"521\"/>\n      <point x=\"140\" y=\"521\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"87\" y=\"0\" type=\"line\"/>\n      <point x=\"96\" y=\"36\"/>\n      <point x=\"108\" y=\"89\"/>\n      <point x=\"120\" y=\"136\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"131\" y=\"182\"/>\n      <point x=\"149\" y=\"261\"/>\n      <point x=\"157\" y=\"294\" type=\"curve\"/>\n      <point x=\"127\" y=\"293\"/>\n      <point x=\"94\" y=\"292\"/>\n      <point x=\"76\" y=\"292\" type=\"curve\"/>\n      <point x=\"33\" y=\"68\" type=\"line\"/>\n      <point x=\"57\" y=\"166\"/>\n      <point x=\"84\" y=\"273\"/>\n      <point x=\"113\" y=\"388\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"138\" y=\"488\"/>\n      <point x=\"164\" y=\"593\"/>\n      <point x=\"191\" y=\"702\" type=\"curve\"/>\n      <point x=\"143\" y=\"545\" type=\"line\"/>\n      <point x=\"161\" y=\"545\"/>\n      <point x=\"198\" y=\"544\"/>\n      <point x=\"224\" y=\"543\" type=\"curve\"/>\n      <point x=\"231\" y=\"574\"/>\n      <point x=\"234\" y=\"592\"/>\n      <point x=\"245\" y=\"637\" type=\"curve\"/>\n      <point x=\"255\" y=\"676\"/>\n      <point x=\"266\" y=\"721\"/>\n      <point x=\"274\" y=\"750\" type=\"curve\"/>\n      <point x=\"121\" y=\"750\" type=\"line\"/>\n      <point x=\"94\" y=\"642\"/>\n      <point x=\"68\" y=\"534\"/>\n      <point x=\"28\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-11\" y=\"215\"/>\n      <point x=\"-39\" y=\"108\"/>\n      <point x=\"-66\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/L_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"L\" format=\"2\">\n  <advance width=\"132\"/>\n  <unicode hex=\"004C\"/>\n  <anchor x=\"184\" y=\"440\" name=\"dot\"/>\n  <outline>\n    <contour>\n      <point x=\"54\" y=\"0\" type=\"line\"/>\n      <point x=\"60\" y=\"28\"/>\n      <point x=\"73\" y=\"79\"/>\n      <point x=\"82\" y=\"118\" type=\"curve\"/>\n      <point x=\"91\" y=\"152\"/>\n      <point x=\"100\" y=\"190\"/>\n      <point x=\"106\" y=\"210\" type=\"curve\"/>\n      <point x=\"92\" y=\"210\"/>\n      <point x=\"77\" y=\"208\"/>\n      <point x=\"65\" y=\"208\" type=\"curve\"/>\n      <point x=\"63\" y=\"120\" type=\"line\"/>\n      <point x=\"73\" y=\"161\"/>\n      <point x=\"109\" y=\"309\"/>\n      <point x=\"127\" y=\"383\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"166\" y=\"537\"/>\n      <point x=\"208\" y=\"697\"/>\n      <point x=\"222\" y=\"750\" type=\"curve\"/>\n      <point x=\"120\" y=\"750\" type=\"line\"/>\n      <point x=\"104\" y=\"678\"/>\n      <point x=\"67\" y=\"534\"/>\n      <point x=\"27\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-12\" y=\"215\"/>\n      <point x=\"-53\" y=\"58\"/>\n      <point x=\"-67\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/O_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"O\" format=\"2\">\n  <advance width=\"202\"/>\n  <unicode hex=\"004F\"/>\n  <outline>\n    <contour>\n      <point x=\"218\" y=\"395\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"294\" y=\"697\"/>\n      <point x=\"280\" y=\"757\"/>\n      <point x=\"206\" y=\"757\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"141\" y=\"757\"/>\n      <point x=\"104\" y=\"697\"/>\n      <point x=\"28\" y=\"395\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-51\" y=\"75\"/>\n      <point x=\"-49\" y=\"-7\"/>\n      <point x=\"34\" y=\"-7\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"107\" y=\"-7\"/>\n      <point x=\"139\" y=\"75\"/>\n    </contour>\n    <contour>\n      <point x=\"82\" y=\"228\" type=\"curve\"/>\n      <point x=\"70\" y=\"228\"/>\n      <point x=\"71\" y=\"237\"/>\n      <point x=\"114\" y=\"401\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"160\" y=\"576\"/>\n      <point x=\"161\" y=\"585\"/>\n      <point x=\"169\" y=\"585\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"181\" y=\"585\"/>\n      <point x=\"183\" y=\"576\"/>\n      <point x=\"137\" y=\"401\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"94\" y=\"237\"/>\n      <point x=\"91\" y=\"228\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/P_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"P\" format=\"2\">\n  <advance width=\"211\"/>\n  <unicode hex=\"0050\"/>\n  <outline>\n    <contour>\n      <point x=\"26\" y=\"0\" type=\"line\"/>\n      <point x=\"54\" y=\"146\"/>\n      <point x=\"119\" y=\"407\"/>\n      <point x=\"181\" y=\"655\" type=\"curve\"/>\n      <point x=\"112\" y=\"586\" type=\"line\"/>\n      <point x=\"125\" y=\"588\"/>\n      <point x=\"157\" y=\"589\"/>\n      <point x=\"168\" y=\"589\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"182\" y=\"589\"/>\n      <point x=\"185\" y=\"579\"/>\n      <point x=\"150\" y=\"438\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"126\" y=\"341\"/>\n      <point x=\"122\" y=\"321\"/>\n      <point x=\"103\" y=\"321\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"101\" y=\"321\"/>\n      <point x=\"96\" y=\"322\"/>\n      <point x=\"94\" y=\"322\" type=\"curve\"/>\n      <point x=\"49\" y=\"141\" type=\"line\"/>\n      <point x=\"54\" y=\"140\"/>\n      <point x=\"57\" y=\"140\"/>\n      <point x=\"71\" y=\"140\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"162\" y=\"140\"/>\n      <point x=\"176\" y=\"183\"/>\n      <point x=\"245\" y=\"461\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"307\" y=\"709\"/>\n      <point x=\"288\" y=\"750\"/>\n      <point x=\"187\" y=\"750\" type=\"curve\"/>\n      <point x=\"120\" y=\"750\" type=\"line\"/>\n      <point x=\"94\" y=\"642\"/>\n      <point x=\"66\" y=\"534\"/>\n      <point x=\"26\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"-13\" y=\"215\"/>\n      <point x=\"-39\" y=\"108\"/>\n      <point x=\"-67\" y=\"0\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/T_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"T\" format=\"2\">\n  <advance width=\"157\"/>\n  <unicode hex=\"0054\"/>\n  <anchor x=\"89\" y=\"345\" name=\"bar\"/>\n  <outline>\n    <contour>\n      <point x=\"99\" y=\"579\" type=\"line\"/>\n      <point x=\"37\" y=\"328\"/>\n      <point x=\"-32\" y=\"56\"/>\n      <point x=\"-48\" y=\"0\" type=\"curve\"/>\n      <point x=\"-34\" y=\"1\"/>\n      <point x=\"-13\" y=\"2\"/>\n      <point x=\"3\" y=\"2\" type=\"curve\"/>\n      <point x=\"18\" y=\"2\"/>\n      <point x=\"40\" y=\"1\"/>\n      <point x=\"53\" y=\"0\" type=\"curve\"/>\n      <point x=\"67\" y=\"56\"/>\n      <point x=\"134\" y=\"328\"/>\n      <point x=\"196\" y=\"579\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"115\" y=\"750\" type=\"line\"/>\n      <point x=\"110\" y=\"724\"/>\n      <point x=\"100\" y=\"684\"/>\n      <point x=\"90\" y=\"647\" type=\"curve\"/>\n      <point x=\"82\" y=\"612\"/>\n      <point x=\"71\" y=\"569\"/>\n      <point x=\"63\" y=\"540\" type=\"curve\"/>\n      <point x=\"91\" y=\"540\"/>\n      <point x=\"118\" y=\"541\"/>\n      <point x=\"138\" y=\"541\" type=\"curve\"/>\n      <point x=\"159\" y=\"541\"/>\n      <point x=\"185\" y=\"540\"/>\n      <point x=\"212\" y=\"540\" type=\"curve\"/>\n      <point x=\"219\" y=\"569\"/>\n      <point x=\"230\" y=\"612\"/>\n      <point x=\"238\" y=\"647\" type=\"curve\"/>\n      <point x=\"248\" y=\"684\"/>\n      <point x=\"258\" y=\"724\"/>\n      <point x=\"264\" y=\"750\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/Y_.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"Y\" format=\"2\">\n  <advance width=\"211\"/>\n  <unicode hex=\"0059\"/>\n  <outline>\n    <contour>\n      <point x=\"47\" y=\"315\" type=\"line\"/>\n      <point x=\"8\" y=\"159\"/>\n      <point x=\"-25\" y=\"34\"/>\n      <point x=\"-34\" y=\"0\" type=\"curve\"/>\n      <point x=\"-12\" y=\"1\"/>\n      <point x=\"8\" y=\"1\"/>\n      <point x=\"32\" y=\"1\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"54\" y=\"1\"/>\n      <point x=\"76\" y=\"1\"/>\n      <point x=\"96\" y=\"0\" type=\"curve\"/>\n      <point x=\"103\" y=\"34\"/>\n      <point x=\"134\" y=\"159\"/>\n      <point x=\"173\" y=\"315\" type=\"curve\"/>\n    </contour>\n    <contour>\n      <point x=\"233\" y=\"750\" type=\"line\"/>\n      <point x=\"223\" y=\"710\"/>\n      <point x=\"184\" y=\"569\"/>\n      <point x=\"144\" y=\"431\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"134\" y=\"393\"/>\n      <point x=\"112\" y=\"312\"/>\n      <point x=\"104\" y=\"281\" type=\"curve\"/>\n      <point x=\"121\" y=\"321\" type=\"line\"/>\n      <point x=\"103\" y=\"321\" type=\"line\"/>\n      <point x=\"99\" y=\"281\" type=\"line\"/>\n      <point x=\"106\" y=\"312\"/>\n      <point x=\"125\" y=\"392\"/>\n      <point x=\"133\" y=\"431\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"165\" y=\"569\"/>\n      <point x=\"197\" y=\"710\"/>\n      <point x=\"208\" y=\"750\" type=\"curve\"/>\n      <point x=\"109\" y=\"750\" type=\"line\"/>\n      <point x=\"93\" y=\"652\"/>\n      <point x=\"33\" y=\"270\"/>\n      <point x=\"27\" y=\"221\" type=\"curve\"/>\n      <point x=\"43\" y=\"221\"/>\n      <point x=\"58\" y=\"222\"/>\n      <point x=\"85\" y=\"222\" type=\"curve\"/>\n      <point x=\"100\" y=\"222\"/>\n      <point x=\"127\" y=\"224\"/>\n      <point x=\"144\" y=\"221\" type=\"curve\"/>\n      <point x=\"160\" y=\"266\"/>\n      <point x=\"292\" y=\"654\"/>\n      <point x=\"324\" y=\"750\" type=\"curve\"/>\n    </contour>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.9529,0.9294,0.5725,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/contents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>C</key>\n    <string>C_.glif</string>\n    <key>D</key>\n    <string>D_.glif</string>\n    <key>E</key>\n    <string>E_.glif</string>\n    <key>L</key>\n    <string>L_.glif</string>\n    <key>O</key>\n    <string>O_.glif</string>\n    <key>P</key>\n    <string>P_.glif</string>\n    <key>T</key>\n    <string>T_.glif</string>\n    <key>Y</key>\n    <string>Y_.glif</string>\n    <key>space</key>\n    <string>space.glif</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/layerinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>color</key>\n    <string>1,0.75,0,0.7</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/glyphs/space.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"space\" format=\"2\">\n  <advance width=\"60\"/>\n  <unicode hex=\"0020\"/>\n  <outline>\n  </outline>\n  <lib>\n    <dict>\n      <key>public.markColor</key>\n      <string>0.5725,0.9294,0.9529,1</string>\n    </dict>\n  </lib>\n</glyph>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/groups.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>public.kern1.A</key>\n    <array>\n      <string>A</string>\n      <string>Aacute</string>\n      <string>Abreve</string>\n      <string>Acircumflex</string>\n      <string>Adieresis</string>\n      <string>Agrave</string>\n      <string>Amacron</string>\n      <string>Aogonek</string>\n      <string>Aring</string>\n      <string>Aringacute</string>\n      <string>Atilde</string>\n    </array>\n    <key>public.kern1.AE</key>\n    <array>\n      <string>AE</string>\n      <string>AEacute</string>\n      <string>E</string>\n      <string>Eacute</string>\n      <string>Ebreve</string>\n      <string>Ecaron</string>\n      <string>Ecircumflex</string>\n      <string>Edieresis</string>\n      <string>Edotaccent</string>\n      <string>Egrave</string>\n      <string>Emacron</string>\n      <string>Eogonek</string>\n      <string>OE</string>\n    </array>\n    <key>public.kern1.C</key>\n    <array>\n      <string>C</string>\n      <string>Cacute</string>\n      <string>Ccaron</string>\n      <string>Ccedilla</string>\n      <string>Ccircumflex</string>\n      <string>Cdotaccent</string>\n    </array>\n    <key>public.kern1.C.alt</key>\n    <array>\n      <string>C</string>\n      <string>Cacute.alt</string>\n      <string>Ccaron.alt</string>\n      <string>Ccedilla.alt</string>\n      <string>Ccircumflex.alt</string>\n      <string>Cdotaccent.alt</string>\n    </array>\n    <key>public.kern1.D</key>\n    <array>\n      <string>D</string>\n      <string>Dcaron</string>\n      <string>Dcroat</string>\n      <string>Eth</string>\n      <string>nine</string>\n      <string>nine.alt</string>\n    </array>\n    <key>public.kern1.Eng</key>\n    <array>\n      <string>Eng</string>\n      <string>N</string>\n      <string>Nacute</string>\n      <string>Ncaron</string>\n      <string>Ncommaaccent</string>\n      <string>Ntilde</string>\n    </array>\n    <key>public.kern1.G</key>\n    <array>\n      <string>G</string>\n      <string>Gbreve</string>\n      <string>Gcircumflex</string>\n      <string>Gcommaaccent</string>\n      <string>Gdotaccent</string>\n    </array>\n    <key>public.kern1.G.alt</key>\n    <array>\n      <string>Gbreve.alt</string>\n      <string>Gcircumflex.alt</string>\n      <string>Gcommaaccent.alt</string>\n      <string>Gdotaccent.alt</string>\n      <string>G.alt</string>\n    </array>\n    <key>public.kern1.H</key>\n    <array>\n      <string>H</string>\n      <string>Hbar</string>\n      <string>Hcircumflex</string>\n      <string>I</string>\n      <string>Iacute</string>\n      <string>Ibreve</string>\n      <string>Icircumflex</string>\n      <string>Idieresis</string>\n      <string>Idotaccent</string>\n      <string>Igrave</string>\n      <string>Imacron</string>\n      <string>Iogonek</string>\n      <string>Itilde</string>\n      <string>M</string>\n    </array>\n    <key>public.kern1.IJ</key>\n    <array>\n      <string>IJ</string>\n      <string>J</string>\n      <string>Jcircumflex</string>\n    </array>\n    <key>public.kern1.K</key>\n    <array>\n      <string>K</string>\n      <string>Kcommaaccent</string>\n    </array>\n    <key>public.kern1.L</key>\n    <array>\n      <string>L</string>\n      <string>Lacute</string>\n      <string>Lcommaaccent</string>\n      <string>Lslash</string>\n    </array>\n    <key>public.kern1.O</key>\n    <array>\n      <string>O</string>\n      <string>Oacute</string>\n      <string>Obreve</string>\n      <string>Ocircumflex</string>\n      <string>Odieresis</string>\n      <string>Ograve</string>\n      <string>Ohungarumlaut</string>\n      <string>Omacron</string>\n      <string>Otilde</string>\n      <string>zero</string>\n      <string>eth</string>\n    </array>\n    <key>public.kern1.Oslash</key>\n    <array>\n      <string>Oslash</string>\n      <string>Oslashacute</string>\n    </array>\n    <key>public.kern1.R</key>\n    <array>\n      <string>R</string>\n      <string>Racute</string>\n      <string>Rcaron</string>\n      <string>Rcommaaccent</string>\n    </array>\n    <key>public.kern1.S</key>\n    <array>\n      <string>S</string>\n      <string>Sacute</string>\n      <string>Scaron</string>\n      <string>Scedilla</string>\n      <string>Scircumflex</string>\n      <string>Scommaaccent</string>\n      <string>dollar</string>\n    </array>\n    <key>public.kern1.S.alt</key>\n    <array>\n      <string>Sacute.alt</string>\n      <string>Scaron.alt</string>\n      <string>Scedilla.alt</string>\n      <string>Scircumflex.alt</string>\n      <string>Scommaaccent.alt</string>\n      <string>S.alt</string>\n      <string>dollar.alt</string>\n    </array>\n    <key>public.kern1.T</key>\n    <array>\n      <string>T</string>\n      <string>Tbar</string>\n      <string>Tcaron</string>\n      <string>Tcommaaccent</string>\n      <string>uni021A</string>\n    </array>\n    <key>public.kern1.U</key>\n    <array>\n      <string>U</string>\n      <string>Uacute</string>\n      <string>Ubreve</string>\n      <string>Ucircumflex</string>\n      <string>Udieresis</string>\n      <string>Ugrave</string>\n      <string>Uhungarumlaut</string>\n      <string>Umacron</string>\n      <string>Uogonek</string>\n      <string>Uring</string>\n      <string>Utilde</string>\n    </array>\n    <key>public.kern1.W</key>\n    <array>\n      <string>W</string>\n      <string>Wacute</string>\n      <string>Wcircumflex</string>\n      <string>Wdieresis</string>\n      <string>Wgrave</string>\n    </array>\n    <key>public.kern1.Y</key>\n    <array>\n      <string>Y</string>\n      <string>Yacute</string>\n      <string>Ycircumflex</string>\n      <string>Ydieresis</string>\n    </array>\n    <key>public.kern1.Z</key>\n    <array>\n      <string>Z</string>\n      <string>Zacute</string>\n      <string>Zcaron</string>\n      <string>Zdotaccent</string>\n    </array>\n    <key>public.kern1.a</key>\n    <array>\n      <string>a.alt2</string>\n      <string>aacute.alt2</string>\n      <string>abreve.alt2</string>\n      <string>acircumflex.alt2</string>\n      <string>adieresis.alt2</string>\n      <string>agrave.alt2</string>\n      <string>amacron.alt2</string>\n      <string>aogonek.alt2</string>\n      <string>aring.alt2</string>\n      <string>aringacute.alt2</string>\n      <string>atilde.alt2</string>\n      <string>aacute.alt</string>\n      <string>abreve.alt</string>\n      <string>acircumflex.alt</string>\n      <string>adieresis.alt</string>\n      <string>agrave.alt</string>\n      <string>amacron.alt</string>\n      <string>aogonek.alt</string>\n      <string>aring.alt</string>\n      <string>aringacute.alt</string>\n      <string>atilde.alt</string>\n      <string>a.alt</string>\n    </array>\n    <key>public.kern1.ae</key>\n    <array>\n      <string>ae.alt2</string>\n      <string>aeacute.alt2</string>\n      <string>e</string>\n      <string>eacute</string>\n      <string>ebreve</string>\n      <string>ecaron</string>\n      <string>ecircumflex</string>\n      <string>edieresis</string>\n      <string>edotaccent</string>\n      <string>egrave</string>\n      <string>emacron</string>\n      <string>eogonek</string>\n      <string>oe</string>\n      <string>ae</string>\n      <string>aeacute</string>\n    </array>\n    <key>public.kern1.afii57929</key>\n    <array>\n      <string>quotedblright</string>\n      <string>quoteright</string>\n    </array>\n    <key>public.kern1.at</key>\n    <array>\n      <string>at</string>\n      <string>at.case</string>\n    </array>\n    <key>public.kern1.b</key>\n    <array>\n      <string>b</string>\n      <string>p</string>\n      <string>thorn</string>\n    </array>\n    <key>public.kern1.braceleft</key>\n    <array>\n      <string>braceleft</string>\n      <string>bracketleft</string>\n    </array>\n    <key>public.kern1.braceright</key>\n    <array>\n      <string>braceright</string>\n      <string>bracketright</string>\n    </array>\n    <key>public.kern1.c</key>\n    <array>\n      <string>c</string>\n      <string>cacute</string>\n      <string>ccaron</string>\n      <string>ccedilla</string>\n      <string>ccircumflex</string>\n      <string>cdotaccent</string>\n    </array>\n    <key>public.kern1.c.alt</key>\n    <array>\n      <string>cacute.alt</string>\n      <string>ccaron.alt</string>\n      <string>ccedilla.alt</string>\n      <string>ccircumflex.alt</string>\n      <string>cdotaccent.alt</string>\n      <string>c.alt</string>\n    </array>\n    <key>public.kern1.colon</key>\n    <array>\n      <string>colon</string>\n      <string>semicolon</string>\n    </array>\n    <key>public.kern1.comma</key>\n    <array>\n      <string>comma</string>\n      <string>ellipsis</string>\n      <string>period</string>\n      <string>quotedblbase</string>\n      <string>quotesinglbase</string>\n    </array>\n    <key>public.kern1.copyright</key>\n    <array>\n      <string>copyright</string>\n      <string>copyright.alt</string>\n      <string>registered</string>\n    </array>\n    <key>public.kern1.d</key>\n    <array>\n      <string>d</string>\n      <string>dcroat</string>\n      <string>fl</string>\n      <string>l</string>\n      <string>lacute</string>\n      <string>lcommaaccent</string>\n      <string>lslash</string>\n    </array>\n    <key>public.kern1.dcaron</key>\n    <array>\n      <string>dcaron</string>\n      <string>lcaron</string>\n    </array>\n    <key>public.kern1.dotlessi</key>\n    <array>\n      <string>dotlessi</string>\n      <string>fi</string>\n      <string>i</string>\n      <string>iacute</string>\n      <string>ibreve</string>\n      <string>icircumflex</string>\n      <string>idieresis</string>\n      <string>igrave</string>\n      <string>imacron</string>\n      <string>iogonek</string>\n      <string>itilde</string>\n      <string>aacute</string>\n      <string>abreve</string>\n      <string>acircumflex</string>\n      <string>adieresis</string>\n      <string>agrave</string>\n      <string>amacron</string>\n      <string>aogonek</string>\n      <string>aring</string>\n      <string>aringacute</string>\n      <string>atilde</string>\n    </array>\n    <key>public.kern1.e.alt</key>\n    <array>\n      <string>eacute.alt</string>\n      <string>ebreve.alt</string>\n      <string>ecaron.alt</string>\n      <string>ecircumflex.alt</string>\n      <string>edieresis.alt</string>\n      <string>edotaccent.alt</string>\n      <string>egrave.alt</string>\n      <string>emacron.alt</string>\n      <string>eogonek.alt</string>\n      <string>ae.alt</string>\n      <string>e.alt</string>\n    </array>\n    <key>public.kern1.eight</key>\n    <array>\n      <string>eight</string>\n      <string>three</string>\n      <string>three.alt</string>\n      <string>B</string>\n      <string>germandbls</string>\n    </array>\n    <key>public.kern1.emdash</key>\n    <array>\n      <string>emdash</string>\n      <string>endash</string>\n      <string>hyphen</string>\n    </array>\n    <key>public.kern1.eng</key>\n    <array>\n      <string>eng</string>\n      <string>ij</string>\n      <string>j</string>\n      <string>y.alt</string>\n      <string>g.alt</string>\n      <string>g</string>\n      <string>gcommaaccent.alt</string>\n      <string>gcommaaccent</string>\n      <string>gbreve.alt</string>\n      <string>gcircumflex.alt</string>\n      <string>gdotaccent.alt</string>\n      <string>yacute.alt</string>\n      <string>ycircumflex.alt</string>\n      <string>ydieresis.alt</string>\n      <string>gbreve</string>\n      <string>gcircumflex</string>\n      <string>gdotaccent</string>\n      <string>yacute</string>\n      <string>ycircumflex</string>\n      <string>ydieresis</string>\n      <string>q</string>\n      <string>jcircumflex</string>\n    </array>\n    <key>public.kern1.five</key>\n    <array>\n      <string>five</string>\n      <string>five.alt</string>\n    </array>\n    <key>public.kern1.five.osf</key>\n    <array>\n      <string>five.osf</string>\n      <string>five.osf.alt</string>\n    </array>\n    <key>public.kern1.g</key>\n    <array>\n      <string>g.alt2</string>\n      <string>gbreve.alt2</string>\n      <string>gcircumflex.alt2</string>\n      <string>gcommaaccent.alt2</string>\n      <string>gdotaccent.alt2</string>\n    </array>\n    <key>public.kern1.guillemotleft</key>\n    <array>\n      <string>guillemotleft</string>\n      <string>guilsinglleft</string>\n    </array>\n    <key>public.kern1.guillemotleft.case</key>\n    <array>\n      <string>guilsinglleft.case</string>\n      <string>guillemotleft.case</string>\n    </array>\n    <key>public.kern1.guillemotright</key>\n    <array>\n      <string>guillemotright</string>\n      <string>guilsinglright</string>\n    </array>\n    <key>public.kern1.guillemotright.case</key>\n    <array>\n      <string>guillemotright.case</string>\n      <string>guilsinglright.case</string>\n    </array>\n    <key>public.kern1.h</key>\n    <array>\n      <string>h</string>\n      <string>hbar</string>\n      <string>hcircumflex</string>\n      <string>m</string>\n      <string>n</string>\n      <string>nacute</string>\n      <string>napostrophe</string>\n      <string>ncaron</string>\n      <string>ncommaaccent</string>\n      <string>ntilde</string>\n    </array>\n    <key>public.kern1.hyphen.case</key>\n    <array>\n      <string>emdash.case</string>\n      <string>endash.case</string>\n      <string>hyphen.case</string>\n      <string>plus</string>\n      <string>minus</string>\n    </array>\n    <key>public.kern1.k</key>\n    <array>\n      <string>k</string>\n      <string>kcommaaccent</string>\n      <string>kgreenlandic</string>\n    </array>\n    <key>public.kern1.minute</key>\n    <array>\n      <string>quotedbl</string>\n      <string>quotesingle</string>\n    </array>\n    <key>public.kern1.nine.osf</key>\n    <array>\n      <string>nine.osf</string>\n      <string>nine.osf.alt</string>\n    </array>\n    <key>public.kern1.o</key>\n    <array>\n      <string>o</string>\n      <string>oacute</string>\n      <string>obreve</string>\n      <string>ocircumflex</string>\n      <string>odieresis</string>\n      <string>ograve</string>\n      <string>ohungarumlaut</string>\n      <string>omacron</string>\n      <string>otilde</string>\n    </array>\n    <key>public.kern1.oslash</key>\n    <array>\n      <string>oslash</string>\n      <string>oslashacute</string>\n    </array>\n    <key>public.kern1.question</key>\n    <array>\n      <string>question</string>\n      <string>question.alt</string>\n    </array>\n    <key>public.kern1.quotedblleft</key>\n    <array>\n      <string>quotedblleft</string>\n      <string>quoteleft</string>\n    </array>\n    <key>public.kern1.r</key>\n    <array>\n      <string>r</string>\n      <string>racute</string>\n      <string>rcaron</string>\n      <string>rcommaaccent</string>\n    </array>\n    <key>public.kern1.s</key>\n    <array>\n      <string>s</string>\n      <string>sacute</string>\n      <string>scaron</string>\n      <string>scedilla</string>\n      <string>scircumflex</string>\n      <string>scommaaccent</string>\n    </array>\n    <key>public.kern1.s.alt</key>\n    <array>\n      <string>sacute.alt</string>\n      <string>scaron.alt</string>\n      <string>scedilla.alt</string>\n      <string>scircumflex.alt</string>\n      <string>scommaaccent.alt</string>\n      <string>s.alt</string>\n    </array>\n    <key>public.kern1.t</key>\n    <array>\n      <string>t</string>\n      <string>tbar</string>\n      <string>tcaron</string>\n      <string>tcommaaccent</string>\n      <string>uni021B</string>\n    </array>\n    <key>public.kern1.t.alt</key>\n    <array>\n      <string>tcaron.alt</string>\n      <string>tcommaaccent.alt</string>\n      <string>t.alt</string>\n      <string>uni021B.alt</string>\n    </array>\n    <key>public.kern1.t.alt2</key>\n    <array>\n      <string>tcaron.alt2</string>\n      <string>tcommaaccent.alt2</string>\n      <string>t.alt2</string>\n      <string>uni021B.alt2</string>\n    </array>\n    <key>public.kern1.three.osf</key>\n    <array>\n      <string>three.osf</string>\n      <string>three.osf.alt</string>\n    </array>\n    <key>public.kern1.two</key>\n    <array>\n      <string>two</string>\n      <string>two.alt</string>\n    </array>\n    <key>public.kern1.two.osf</key>\n    <array>\n      <string>two.osf</string>\n      <string>two.osf.alt</string>\n    </array>\n    <key>public.kern1.u</key>\n    <array>\n      <string>u</string>\n      <string>uacute</string>\n      <string>ubreve</string>\n      <string>ucircumflex</string>\n      <string>udieresis</string>\n      <string>ugrave</string>\n      <string>uhungarumlaut</string>\n      <string>umacron</string>\n      <string>uogonek</string>\n      <string>uring</string>\n      <string>utilde</string>\n    </array>\n    <key>public.kern1.v</key>\n    <array>\n      <string>v</string>\n      <string>w</string>\n      <string>wacute</string>\n      <string>wcircumflex</string>\n      <string>wdieresis</string>\n      <string>wgrave</string>\n    </array>\n    <key>public.kern1.y</key>\n    <array>\n      <string>y.alt2</string>\n      <string>yacute.alt2</string>\n      <string>ycircumflex.alt2</string>\n      <string>ydieresis.alt2</string>\n    </array>\n    <key>public.kern1.z</key>\n    <array>\n      <string>z</string>\n      <string>zacute</string>\n      <string>zcaron</string>\n      <string>zdotaccent</string>\n    </array>\n    <key>public.kern2.A</key>\n    <array>\n      <string>A</string>\n      <string>Aacute</string>\n      <string>Abreve</string>\n      <string>Acircumflex</string>\n      <string>Adieresis</string>\n      <string>Agrave</string>\n      <string>Amacron</string>\n      <string>Aogonek</string>\n      <string>Aring</string>\n      <string>Aringacute</string>\n      <string>Atilde</string>\n    </array>\n    <key>public.kern2.AE</key>\n    <array>\n      <string>AE</string>\n      <string>AEacute</string>\n    </array>\n    <key>public.kern2.B</key>\n    <array>\n      <string>B</string>\n      <string>D</string>\n      <string>Dcaron</string>\n      <string>Dcroat</string>\n      <string>E</string>\n      <string>Eacute</string>\n      <string>Ebreve</string>\n      <string>Ecaron</string>\n      <string>Ecircumflex</string>\n      <string>Edieresis</string>\n      <string>Edotaccent</string>\n      <string>Egrave</string>\n      <string>Emacron</string>\n      <string>Eogonek</string>\n      <string>Eth</string>\n      <string>F</string>\n      <string>H</string>\n      <string>Hbar</string>\n      <string>Hcircumflex</string>\n      <string>I</string>\n      <string>IJ</string>\n      <string>Iacute</string>\n      <string>Ibreve</string>\n      <string>Icircumflex</string>\n      <string>Idieresis</string>\n      <string>Idotaccent</string>\n      <string>Igrave</string>\n      <string>Imacron</string>\n      <string>Iogonek</string>\n      <string>Itilde</string>\n      <string>K</string>\n      <string>Kcommaaccent</string>\n      <string>L</string>\n      <string>Lacute</string>\n      <string>Lcaron</string>\n      <string>Lcommaaccent</string>\n      <string>Ldot</string>\n      <string>Lslash</string>\n      <string>P</string>\n      <string>R</string>\n      <string>Racute</string>\n      <string>Rcaron</string>\n      <string>Rcommaaccent</string>\n      <string>Thorn</string>\n      <string>one</string>\n      <string>uni1E9E</string>\n    </array>\n    <key>public.kern2.C</key>\n    <array>\n      <string>C</string>\n      <string>Cacute</string>\n      <string>Ccaron</string>\n      <string>Ccedilla</string>\n      <string>Ccircumflex</string>\n      <string>Cdotaccent</string>\n      <string>G</string>\n      <string>Gbreve</string>\n      <string>Gcircumflex</string>\n      <string>Gcommaaccent</string>\n      <string>Gdotaccent</string>\n      <string>O</string>\n      <string>OE</string>\n      <string>Oacute</string>\n      <string>Obreve</string>\n      <string>Ocircumflex</string>\n      <string>Odieresis</string>\n      <string>Ograve</string>\n      <string>Ohungarumlaut</string>\n      <string>Omacron</string>\n      <string>Otilde</string>\n      <string>Q</string>\n      <string>C</string>\n      <string>G.alt</string>\n      <string>zero</string>\n      <string>six</string>\n      <string>six.alt</string>\n      <string>Cacute.alt</string>\n      <string>Ccaron.alt</string>\n      <string>Ccedilla.alt</string>\n      <string>Ccircumflex.alt</string>\n      <string>Cdotaccent.alt</string>\n      <string>Gbreve.alt</string>\n      <string>Gcircumflex.alt</string>\n      <string>Gcommaaccent.alt</string>\n      <string>Gdotaccent.alt</string>\n    </array>\n    <key>public.kern2.Eng</key>\n    <array>\n      <string>Eng</string>\n      <string>M</string>\n      <string>N</string>\n      <string>Nacute</string>\n      <string>Ncaron</string>\n      <string>Ncommaaccent</string>\n      <string>Ntilde</string>\n      <string>afii61352</string>\n    </array>\n    <key>public.kern2.J</key>\n    <array>\n      <string>J</string>\n      <string>Jcircumflex</string>\n    </array>\n    <key>public.kern2.Oslash</key>\n    <array>\n      <string>Oslashacute</string>\n      <string>Oslash</string>\n    </array>\n    <key>public.kern2.S</key>\n    <array>\n      <string>S</string>\n      <string>Sacute</string>\n      <string>Scaron</string>\n      <string>Scedilla</string>\n      <string>Scircumflex</string>\n      <string>Scommaaccent</string>\n      <string>dollar</string>\n    </array>\n    <key>public.kern2.S.alt</key>\n    <array>\n      <string>Sacute.alt</string>\n      <string>Scaron.alt</string>\n      <string>Scedilla.alt</string>\n      <string>Scircumflex.alt</string>\n      <string>Scommaaccent.alt</string>\n      <string>S.alt</string>\n      <string>dollar.alt</string>\n    </array>\n    <key>public.kern2.T</key>\n    <array>\n      <string>T</string>\n      <string>Tbar</string>\n      <string>Tcaron</string>\n      <string>Tcommaaccent</string>\n      <string>uni021A</string>\n    </array>\n    <key>public.kern2.U</key>\n    <array>\n      <string>U</string>\n      <string>Uacute</string>\n      <string>Ubreve</string>\n      <string>Ucircumflex</string>\n      <string>Udieresis</string>\n      <string>Ugrave</string>\n      <string>Uhungarumlaut</string>\n      <string>Umacron</string>\n      <string>Uogonek</string>\n      <string>Uring</string>\n      <string>Utilde</string>\n    </array>\n    <key>public.kern2.W</key>\n    <array>\n      <string>W</string>\n      <string>Wacute</string>\n      <string>Wcircumflex</string>\n      <string>Wdieresis</string>\n      <string>Wgrave</string>\n    </array>\n    <key>public.kern2.Y</key>\n    <array>\n      <string>Y</string>\n      <string>Yacute</string>\n      <string>Ycircumflex</string>\n      <string>Ydieresis</string>\n    </array>\n    <key>public.kern2.Z</key>\n    <array>\n      <string>Z</string>\n      <string>Zacute</string>\n      <string>Zcaron</string>\n      <string>Zdotaccent</string>\n    </array>\n    <key>public.kern2.a</key>\n    <array>\n      <string>a.alt2</string>\n      <string>aacute.alt2</string>\n      <string>abreve.alt2</string>\n      <string>acircumflex.alt2</string>\n      <string>adieresis.alt2</string>\n      <string>ae.alt2</string>\n      <string>aeacute.alt2</string>\n      <string>agrave.alt2</string>\n      <string>amacron.alt2</string>\n      <string>aogonek.alt2</string>\n      <string>aring.alt2</string>\n      <string>aringacute.alt2</string>\n      <string>atilde.alt2</string>\n    </array>\n    <key>public.kern2.a.alt</key>\n    <array>\n      <string>aacute.alt</string>\n      <string>abreve.alt</string>\n      <string>acircumflex.alt</string>\n      <string>adieresis.alt</string>\n      <string>aeacute.alt</string>\n      <string>agrave.alt</string>\n      <string>amacron.alt</string>\n      <string>aogonek.alt</string>\n      <string>aring.alt</string>\n      <string>aringacute.alt</string>\n      <string>atilde.alt</string>\n      <string>a.alt</string>\n      <string>ae.alt</string>\n    </array>\n    <key>public.kern2.at</key>\n    <array>\n      <string>at</string>\n      <string>at.case</string>\n    </array>\n    <key>public.kern2.b</key>\n    <array>\n      <string>b</string>\n      <string>thorn</string>\n    </array>\n    <key>public.kern2.braceleft</key>\n    <array>\n      <string>braceleft</string>\n      <string>bracketleft</string>\n    </array>\n    <key>public.kern2.braceright</key>\n    <array>\n      <string>braceright</string>\n      <string>bracketright</string>\n    </array>\n    <key>public.kern2.c</key>\n    <array>\n      <string>c</string>\n      <string>cacute</string>\n      <string>ccaron</string>\n      <string>ccedilla</string>\n      <string>ccircumflex</string>\n      <string>cdotaccent</string>\n      <string>d</string>\n      <string>dcaron</string>\n      <string>dcroat</string>\n      <string>e</string>\n      <string>eacute</string>\n      <string>ebreve</string>\n      <string>ecaron</string>\n      <string>ecircumflex</string>\n      <string>edieresis</string>\n      <string>edotaccent</string>\n      <string>egrave</string>\n      <string>emacron</string>\n      <string>eogonek</string>\n      <string>eth</string>\n      <string>o</string>\n      <string>oacute</string>\n      <string>obreve</string>\n      <string>ocircumflex</string>\n      <string>odieresis</string>\n      <string>oe</string>\n      <string>ograve</string>\n      <string>ohungarumlaut</string>\n      <string>omacron</string>\n      <string>oslash</string>\n      <string>oslashacute</string>\n      <string>otilde</string>\n      <string>q</string>\n      <string>a</string>\n      <string>ae</string>\n      <string>c.alt</string>\n      <string>e.alt</string>\n      <string>g.alt</string>\n      <string>cacute.alt</string>\n      <string>ccaron.alt</string>\n      <string>ccedilla.alt</string>\n      <string>ccircumflex.alt</string>\n      <string>cdotaccent.alt</string>\n      <string>eacute.alt</string>\n      <string>ebreve.alt</string>\n      <string>ecaron.alt</string>\n      <string>ecircumflex.alt</string>\n      <string>edieresis.alt</string>\n      <string>edotaccent.alt</string>\n      <string>egrave.alt</string>\n      <string>emacron.alt</string>\n      <string>eogonek.alt</string>\n      <string>gbreve.alt</string>\n      <string>gcircumflex.alt</string>\n      <string>gdotaccent.alt</string>\n      <string>aacute</string>\n      <string>abreve</string>\n      <string>acircumflex</string>\n      <string>adieresis</string>\n      <string>aeacute</string>\n      <string>agrave</string>\n      <string>amacron</string>\n      <string>aogonek</string>\n      <string>aring</string>\n      <string>aringacute</string>\n      <string>atilde</string>\n      <string>gbreve</string>\n      <string>gcircumflex</string>\n      <string>gdotaccent</string>\n      <string>gcommaaccent.alt</string>\n    </array>\n    <key>public.kern2.colon</key>\n    <array>\n      <string>colon</string>\n      <string>semicolon</string>\n    </array>\n    <key>public.kern2.comma</key>\n    <array>\n      <string>comma</string>\n      <string>ellipsis</string>\n      <string>period</string>\n      <string>quotedblbase</string>\n      <string>quotesinglbase</string>\n    </array>\n    <key>public.kern2.copyright</key>\n    <array>\n      <string>copyright</string>\n      <string>copyright.alt</string>\n      <string>registered</string>\n    </array>\n    <key>public.kern2.dotlessi</key>\n    <array>\n      <string>dotlessi</string>\n      <string>i</string>\n      <string>iacute</string>\n      <string>ibreve</string>\n      <string>icircumflex</string>\n      <string>idieresis</string>\n      <string>igrave</string>\n      <string>ij</string>\n      <string>imacron</string>\n      <string>iogonek</string>\n      <string>itilde</string>\n      <string>p</string>\n      <string>eng</string>\n    </array>\n    <key>public.kern2.emdash</key>\n    <array>\n      <string>emdash</string>\n      <string>endash</string>\n      <string>hyphen</string>\n    </array>\n    <key>public.kern2.eng</key>\n    <array>\n      <string>kgreenlandic</string>\n      <string>m</string>\n      <string>n</string>\n      <string>nacute</string>\n      <string>ncaron</string>\n      <string>ncommaaccent</string>\n      <string>ntilde</string>\n      <string>r</string>\n      <string>racute</string>\n      <string>rcaron</string>\n      <string>rcommaaccent</string>\n    </array>\n    <key>public.kern2.f</key>\n    <array>\n      <string>f</string>\n      <string>fi</string>\n      <string>fl</string>\n    </array>\n    <key>public.kern2.g</key>\n    <array>\n      <string>g.alt2</string>\n      <string>gbreve.alt2</string>\n      <string>gcircumflex.alt2</string>\n      <string>gcommaaccent.alt2</string>\n      <string>gdotaccent.alt2</string>\n    </array>\n    <key>public.kern2.guillemotleft</key>\n    <array>\n      <string>guillemotleft</string>\n      <string>guilsinglleft</string>\n    </array>\n    <key>public.kern2.guillemotleft.case</key>\n    <array>\n      <string>guillemotleft.case</string>\n      <string>guilsinglleft.case</string>\n    </array>\n    <key>public.kern2.guillemotright</key>\n    <array>\n      <string>guillemotright</string>\n      <string>guilsinglright</string>\n    </array>\n    <key>public.kern2.guillemotright.case</key>\n    <array>\n      <string>guillemotright.case</string>\n      <string>guilsinglright.case</string>\n    </array>\n    <key>public.kern2.h</key>\n    <array>\n      <string>h</string>\n      <string>hbar</string>\n      <string>hcircumflex</string>\n      <string>k</string>\n      <string>kcommaaccent</string>\n      <string>l</string>\n      <string>lacute</string>\n      <string>lcaron</string>\n      <string>lcommaaccent</string>\n      <string>ldot</string>\n      <string>lslash</string>\n      <string>germandbls</string>\n    </array>\n    <key>public.kern2.hyphen.case</key>\n    <array>\n      <string>emdash.case</string>\n      <string>endash.case</string>\n      <string>hyphen.case</string>\n      <string>plus</string>\n      <string>minus</string>\n    </array>\n    <key>public.kern2.j</key>\n    <array>\n      <string>j</string>\n    </array>\n    <key>public.kern2.minute</key>\n    <array>\n      <string>quotedbl</string>\n      <string>quotesingle</string>\n    </array>\n    <key>public.kern2.onesuperior</key>\n    <array>\n      <string>onesuperior</string>\n      <string>threesuperior</string>\n      <string>twosuperior</string>\n    </array>\n    <key>public.kern2.quotedblleft</key>\n    <array>\n      <string>quotedblleft</string>\n      <string>quoteleft</string>\n    </array>\n    <key>public.kern2.quoteright</key>\n    <array>\n      <string>quotedblright</string>\n      <string>quoteright</string>\n    </array>\n    <key>public.kern2.s</key>\n    <array>\n      <string>s</string>\n      <string>sacute</string>\n      <string>scaron</string>\n      <string>scedilla</string>\n      <string>scircumflex</string>\n      <string>scommaaccent</string>\n    </array>\n    <key>public.kern2.s.alt</key>\n    <array>\n      <string>sacute.alt</string>\n      <string>scaron.alt</string>\n      <string>scedilla.alt</string>\n      <string>scircumflex.alt</string>\n      <string>scommaaccent.alt</string>\n      <string>s.alt</string>\n    </array>\n    <key>public.kern2.t</key>\n    <array>\n      <string>t</string>\n      <string>tbar</string>\n      <string>tcaron</string>\n      <string>tcommaaccent</string>\n      <string>uni021B</string>\n    </array>\n    <key>public.kern2.t.alt</key>\n    <array>\n      <string>tcaron.alt</string>\n      <string>tcommaaccent.alt</string>\n      <string>t.alt</string>\n      <string>uni021B.alt</string>\n    </array>\n    <key>public.kern2.t.alt2</key>\n    <array>\n      <string>tcaron.alt2</string>\n      <string>tcommaaccent.alt2</string>\n      <string>t.alt2</string>\n      <string>uni021B.alt2</string>\n    </array>\n    <key>public.kern2.u</key>\n    <array>\n      <string>u</string>\n      <string>uacute</string>\n      <string>ubreve</string>\n      <string>ucircumflex</string>\n      <string>udieresis</string>\n      <string>ugrave</string>\n      <string>uhungarumlaut</string>\n      <string>umacron</string>\n      <string>uogonek</string>\n      <string>uring</string>\n      <string>utilde</string>\n      <string>yacute.alt</string>\n      <string>ycircumflex.alt</string>\n      <string>ydieresis.alt</string>\n      <string>y.alt</string>\n      <string>y</string>\n      <string>yacute</string>\n      <string>ycircumflex</string>\n      <string>ydieresis</string>\n    </array>\n    <key>public.kern2.v</key>\n    <array>\n      <string>v</string>\n      <string>w</string>\n      <string>wacute</string>\n      <string>wcircumflex</string>\n      <string>wdieresis</string>\n      <string>wgrave</string>\n    </array>\n    <key>public.kern2.y</key>\n    <array>\n      <string>y.alt2</string>\n      <string>yacute.alt2</string>\n      <string>ycircumflex.alt2</string>\n      <string>ydieresis.alt2</string>\n    </array>\n    <key>public.kern2.z</key>\n    <array>\n      <string>z</string>\n      <string>zacute</string>\n      <string>zcaron</string>\n      <string>zdotaccent</string>\n    </array>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/layercontents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <array>\n    <array>\n      <string>foreground</string>\n      <string>glyphs</string>\n    </array>\n  </array>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/lib.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>com.defcon.sortDescriptor</key>\n    <array>\n      <dict>\n        <key>ascending</key>\n        <array>\n          <string>.notdef</string>\n          <string>A</string>\n          <string>B</string>\n          <string>C</string>\n          <string>D</string>\n          <string>E</string>\n          <string>F</string>\n          <string>G</string>\n          <string>H</string>\n          <string>I</string>\n          <string>J</string>\n          <string>K</string>\n          <string>L</string>\n          <string>M</string>\n          <string>N</string>\n          <string>O</string>\n          <string>P</string>\n          <string>Q</string>\n          <string>R</string>\n          <string>S</string>\n          <string>T</string>\n          <string>U</string>\n          <string>V</string>\n          <string>W</string>\n          <string>X</string>\n          <string>Y</string>\n          <string>Z</string>\n          <string>a</string>\n          <string>b</string>\n          <string>c</string>\n          <string>d</string>\n          <string>e</string>\n          <string>f</string>\n          <string>g</string>\n          <string>h</string>\n          <string>i</string>\n          <string>j</string>\n          <string>k</string>\n          <string>l</string>\n          <string>m</string>\n          <string>n</string>\n          <string>o</string>\n          <string>p</string>\n          <string>q</string>\n          <string>r</string>\n          <string>s</string>\n          <string>t</string>\n          <string>u</string>\n          <string>v</string>\n          <string>w</string>\n          <string>x</string>\n          <string>y</string>\n          <string>z</string>\n          <string>Aacute</string>\n          <string>aacute</string>\n          <string>Abreve</string>\n          <string>abreve</string>\n          <string>Acircumflex</string>\n          <string>acircumflex</string>\n          <string>Adieresis</string>\n          <string>adieresis</string>\n          <string>Agrave</string>\n          <string>agrave</string>\n          <string>Amacron</string>\n          <string>amacron</string>\n          <string>Aogonek</string>\n          <string>aogonek</string>\n          <string>Aring</string>\n          <string>aring</string>\n          <string>Aringacute</string>\n          <string>aringacute</string>\n          <string>Atilde</string>\n          <string>atilde</string>\n          <string>AE</string>\n          <string>ae</string>\n          <string>AEacute</string>\n          <string>aeacute</string>\n          <string>Cacute</string>\n          <string>cacute</string>\n          <string>Ccaron</string>\n          <string>ccaron</string>\n          <string>Ccedilla</string>\n          <string>ccedilla</string>\n          <string>Ccircumflex</string>\n          <string>ccircumflex</string>\n          <string>Cdotaccent</string>\n          <string>cdotaccent</string>\n          <string>Dcaron</string>\n          <string>dcaron</string>\n          <string>Dcroat</string>\n          <string>dcroat</string>\n          <string>Eacute</string>\n          <string>eacute</string>\n          <string>Ebreve</string>\n          <string>ebreve</string>\n          <string>Ecaron</string>\n          <string>ecaron</string>\n          <string>Ecircumflex</string>\n          <string>ecircumflex</string>\n          <string>Edieresis</string>\n          <string>edieresis</string>\n          <string>Edotaccent</string>\n          <string>edotaccent</string>\n          <string>Egrave</string>\n          <string>egrave</string>\n          <string>Emacron</string>\n          <string>emacron</string>\n          <string>Eng</string>\n          <string>eng</string>\n          <string>Eogonek</string>\n          <string>eogonek</string>\n          <string>Eth</string>\n          <string>eth</string>\n          <string>fi</string>\n          <string>fl</string>\n          <string>Gbreve</string>\n          <string>gbreve</string>\n          <string>Gcircumflex</string>\n          <string>gcircumflex</string>\n          <string>Gcommaaccent</string>\n          <string>gcommaaccent</string>\n          <string>Gdotaccent</string>\n          <string>gdotaccent</string>\n          <string>Hbar</string>\n          <string>hbar</string>\n          <string>Hcircumflex</string>\n          <string>hcircumflex</string>\n          <string>Iacute</string>\n          <string>iacute</string>\n          <string>Ibreve</string>\n          <string>ibreve</string>\n          <string>Icircumflex</string>\n          <string>icircumflex</string>\n          <string>Idieresis</string>\n          <string>idieresis</string>\n          <string>Idotaccent</string>\n          <string>Igrave</string>\n          <string>igrave</string>\n          <string>IJ</string>\n          <string>ij</string>\n          <string>Imacron</string>\n          <string>imacron</string>\n          <string>Iogonek</string>\n          <string>iogonek</string>\n          <string>Itilde</string>\n          <string>itilde</string>\n          <string>dotlessi</string>\n          <string>Jcircumflex</string>\n          <string>jcircumflex</string>\n          <string>Kcommaaccent</string>\n          <string>kcommaaccent</string>\n          <string>kgreenlandic</string>\n          <string>Lacute</string>\n          <string>lacute</string>\n          <string>Lcaron</string>\n          <string>lcaron</string>\n          <string>Lcommaaccent</string>\n          <string>lcommaaccent</string>\n          <string>Ldot</string>\n          <string>ldot</string>\n          <string>Lslash</string>\n          <string>lslash</string>\n          <string>Nacute</string>\n          <string>nacute</string>\n          <string>napostrophe</string>\n          <string>Ncaron</string>\n          <string>ncaron</string>\n          <string>Ncommaaccent</string>\n          <string>ncommaaccent</string>\n          <string>Ntilde</string>\n          <string>ntilde</string>\n          <string>Oacute</string>\n          <string>oacute</string>\n          <string>Obreve</string>\n          <string>obreve</string>\n          <string>Ocircumflex</string>\n          <string>ocircumflex</string>\n          <string>Odieresis</string>\n          <string>odieresis</string>\n          <string>Ograve</string>\n          <string>ograve</string>\n          <string>Ohungarumlaut</string>\n          <string>ohungarumlaut</string>\n          <string>Omacron</string>\n          <string>omacron</string>\n          <string>Oslash</string>\n          <string>oslash</string>\n          <string>Oslashacute</string>\n          <string>oslashacute</string>\n          <string>Otilde</string>\n          <string>otilde</string>\n          <string>OE</string>\n          <string>oe</string>\n          <string>Racute</string>\n          <string>racute</string>\n          <string>Rcaron</string>\n          <string>rcaron</string>\n          <string>Rcommaaccent</string>\n          <string>rcommaaccent</string>\n          <string>Sacute</string>\n          <string>sacute</string>\n          <string>Scaron</string>\n          <string>scaron</string>\n          <string>Scedilla</string>\n          <string>scedilla</string>\n          <string>Scircumflex</string>\n          <string>scircumflex</string>\n          <string>Scommaaccent</string>\n          <string>scommaaccent</string>\n          <string>Tbar</string>\n          <string>tbar</string>\n          <string>Tcaron</string>\n          <string>tcaron</string>\n          <string>Tcommaaccent</string>\n          <string>tcommaaccent</string>\n          <string>uni021A</string>\n          <string>uni021B</string>\n          <string>Thorn</string>\n          <string>thorn</string>\n          <string>Uacute</string>\n          <string>uacute</string>\n          <string>Ubreve</string>\n          <string>ubreve</string>\n          <string>Ucircumflex</string>\n          <string>ucircumflex</string>\n          <string>Udieresis</string>\n          <string>udieresis</string>\n          <string>Ugrave</string>\n          <string>ugrave</string>\n          <string>Uhungarumlaut</string>\n          <string>uhungarumlaut</string>\n          <string>Umacron</string>\n          <string>umacron</string>\n          <string>Uogonek</string>\n          <string>uogonek</string>\n          <string>Uring</string>\n          <string>uring</string>\n          <string>Utilde</string>\n          <string>utilde</string>\n          <string>Wacute</string>\n          <string>wacute</string>\n          <string>Wcircumflex</string>\n          <string>wcircumflex</string>\n          <string>Wdieresis</string>\n          <string>wdieresis</string>\n          <string>Wgrave</string>\n          <string>wgrave</string>\n          <string>Yacute</string>\n          <string>yacute</string>\n          <string>Ycircumflex</string>\n          <string>ycircumflex</string>\n          <string>Ydieresis</string>\n          <string>ydieresis</string>\n          <string>Zacute</string>\n          <string>zacute</string>\n          <string>Zcaron</string>\n          <string>zcaron</string>\n          <string>Zdotaccent</string>\n          <string>zdotaccent</string>\n          <string>uni1E9E</string>\n          <string>germandbls</string>\n          <string>C.alt</string>\n          <string>Ccedilla.alt</string>\n          <string>Cacute.alt</string>\n          <string>Ccaron.alt</string>\n          <string>Ccircumflex.alt</string>\n          <string>Cdotaccent.alt</string>\n          <string>G.alt</string>\n          <string>Gbreve.alt</string>\n          <string>Gcircumflex.alt</string>\n          <string>Gcommaaccent.alt</string>\n          <string>Gdotaccent.alt</string>\n          <string>S.alt</string>\n          <string>Sacute.alt</string>\n          <string>Scaron.alt</string>\n          <string>Scedilla.alt</string>\n          <string>Scircumflex.alt</string>\n          <string>Scommaaccent.alt</string>\n          <string>a.alt</string>\n          <string>agrave.alt</string>\n          <string>acircumflex.alt</string>\n          <string>aacute.alt</string>\n          <string>abreve.alt</string>\n          <string>amacron.alt</string>\n          <string>aogonek.alt</string>\n          <string>aring.alt</string>\n          <string>aringacute.alt</string>\n          <string>atilde.alt</string>\n          <string>adieresis.alt</string>\n          <string>ae.alt</string>\n          <string>aeacute.alt</string>\n          <string>c.alt</string>\n          <string>ccedilla.alt</string>\n          <string>cacute.alt</string>\n          <string>ccaron.alt</string>\n          <string>ccircumflex.alt</string>\n          <string>cdotaccent.alt</string>\n          <string>e.alt</string>\n          <string>eacute.alt</string>\n          <string>egrave.alt</string>\n          <string>ecircumflex.alt</string>\n          <string>edieresis.alt</string>\n          <string>ebreve.alt</string>\n          <string>ecaron.alt</string>\n          <string>edotaccent.alt</string>\n          <string>emacron.alt</string>\n          <string>eogonek.alt</string>\n          <string>a.alt2</string>\n          <string>agrave.alt2</string>\n          <string>acircumflex.alt2</string>\n          <string>adieresis.alt2</string>\n          <string>aacute.alt2</string>\n          <string>abreve.alt2</string>\n          <string>amacron.alt2</string>\n          <string>aogonek.alt2</string>\n          <string>aring.alt2</string>\n          <string>aringacute.alt2</string>\n          <string>atilde.alt2</string>\n          <string>ae.alt2</string>\n          <string>aeacute.alt2</string>\n          <string>g.alt</string>\n          <string>gbreve.alt</string>\n          <string>gcircumflex.alt</string>\n          <string>gdotaccent.alt</string>\n          <string>gcommaaccent.alt</string>\n          <string>g.alt2</string>\n          <string>gbreve.alt2</string>\n          <string>gcircumflex.alt2</string>\n          <string>gdotaccent.alt2</string>\n          <string>gcommaaccent.alt2</string>\n          <string>s.alt</string>\n          <string>sacute.alt</string>\n          <string>scaron.alt</string>\n          <string>scedilla.alt</string>\n          <string>scircumflex.alt</string>\n          <string>scommaaccent.alt</string>\n          <string>t.alt</string>\n          <string>tbar.alt</string>\n          <string>tcaron.alt</string>\n          <string>tcommaaccent.alt</string>\n          <string>uni021B.alt</string>\n          <string>t.alt2</string>\n          <string>tbar.alt2</string>\n          <string>tcaron.alt2</string>\n          <string>tcommaaccent.alt2</string>\n          <string>uni021B.alt2</string>\n          <string>y.alt</string>\n          <string>yacute.alt</string>\n          <string>ycircumflex.alt</string>\n          <string>ydieresis.alt</string>\n          <string>y.alt2</string>\n          <string>yacute.alt2</string>\n          <string>ycircumflex.alt2</string>\n          <string>ydieresis.alt2</string>\n          <string>zero</string>\n          <string>one</string>\n          <string>two</string>\n          <string>three</string>\n          <string>four</string>\n          <string>five</string>\n          <string>six</string>\n          <string>seven</string>\n          <string>eight</string>\n          <string>nine</string>\n          <string>two.alt</string>\n          <string>three.alt</string>\n          <string>five.alt</string>\n          <string>six.alt</string>\n          <string>nine.alt</string>\n          <string>period</string>\n          <string>comma</string>\n          <string>colon</string>\n          <string>semicolon</string>\n          <string>ellipsis</string>\n          <string>periodcentered</string>\n          <string>periodcentered.case</string>\n          <string>bullet</string>\n          <string>bullet.case</string>\n          <string>ampersand</string>\n          <string>ampersand.alt</string>\n          <string>exclam</string>\n          <string>exclamdown</string>\n          <string>exclamdown.case</string>\n          <string>question</string>\n          <string>question.alt</string>\n          <string>questiondown</string>\n          <string>questiondown.alt</string>\n          <string>questiondown.case</string>\n          <string>questiondown.alt.case</string>\n          <string>quotedblleft</string>\n          <string>quotedblright</string>\n          <string>quoteleft</string>\n          <string>quoteright</string>\n          <string>quotedblbase</string>\n          <string>quotesinglbase</string>\n          <string>guillemotleft</string>\n          <string>guillemotright</string>\n          <string>guillemotleft.case</string>\n          <string>guillemotright.case</string>\n          <string>guilsinglleft</string>\n          <string>guilsinglright</string>\n          <string>guilsinglleft.case</string>\n          <string>guilsinglright.case</string>\n          <string>hyphen</string>\n          <string>endash</string>\n          <string>emdash</string>\n          <string>hyphen.case</string>\n          <string>endash.case</string>\n          <string>emdash.case</string>\n          <string>underscore</string>\n          <string>slash</string>\n          <string>backslash</string>\n          <string>bar</string>\n          <string>brokenbar</string>\n          <string>parenleft</string>\n          <string>parenright</string>\n          <string>parenleft.case</string>\n          <string>parenright.case</string>\n          <string>bracketleft</string>\n          <string>bracketright</string>\n          <string>bracketleft.case</string>\n          <string>bracketright.case</string>\n          <string>braceleft</string>\n          <string>braceright</string>\n          <string>braceleft.case</string>\n          <string>braceright.case</string>\n          <string>at</string>\n          <string>at.case</string>\n          <string>copyright</string>\n          <string>copyright.alt</string>\n          <string>registered</string>\n          <string>trademark</string>\n          <string>asterisk</string>\n          <string>dagger</string>\n          <string>daggerdbl</string>\n          <string>asciicircum</string>\n          <string>asciitilde</string>\n          <string>dollar</string>\n          <string>dollar.alt</string>\n          <string>cent</string>\n          <string>cent.alt</string>\n          <string>sterling</string>\n          <string>sterling.alt</string>\n          <string>yen</string>\n          <string>Euro</string>\n          <string>Euro.alt</string>\n          <string>numbersign</string>\n          <string>paragraph</string>\n          <string>section</string>\n          <string>section.alt</string>\n          <string>ordfeminine</string>\n          <string>ordfeminine.alt</string>\n          <string>ordfeminine.alt2</string>\n          <string>ordmasculine</string>\n          <string>degree</string>\n          <string>percent</string>\n          <string>perthousand</string>\n          <string>quotedbl</string>\n          <string>quotesingle</string>\n          <string>plus</string>\n          <string>minus</string>\n          <string>less</string>\n          <string>greater</string>\n          <string>equal</string>\n          <string>multiply</string>\n          <string>divide</string>\n          <string>zero.osf</string>\n          <string>one.osf</string>\n          <string>two.osf</string>\n          <string>three.osf</string>\n          <string>four.osf</string>\n          <string>five.osf</string>\n          <string>six.osf</string>\n          <string>seven.osf</string>\n          <string>eight.osf</string>\n          <string>nine.osf</string>\n          <string>two.osf.alt</string>\n          <string>three.osf.alt</string>\n          <string>five.osf.alt</string>\n          <string>six.osf.alt</string>\n          <string>nine.osf.alt</string>\n          <string>dollar.osf</string>\n          <string>sterling.osf</string>\n          <string>Euro.osf</string>\n          <string>yen.osf</string>\n          <string>dollar.osf.alt</string>\n          <string>sterling.osf.alt</string>\n          <string>Euro.osf.alt</string>\n          <string>acute</string>\n          <string>hungarumlaut</string>\n          <string>caron.alt</string>\n          <string>grave</string>\n          <string>circumflex</string>\n          <string>caron</string>\n          <string>breve</string>\n          <string>tilde</string>\n          <string>macron</string>\n          <string>dieresis</string>\n          <string>dotaccent</string>\n          <string>ring</string>\n          <string>commaaccent</string>\n          <string>cedilla</string>\n          <string>ogonek</string>\n          <string>baraccent</string>\n          <string>afii61352</string>\n          <string>onesuperior</string>\n          <string>twosuperior</string>\n          <string>threesuperior</string>\n          <string>onequarter</string>\n          <string>onehalf</string>\n          <string>threequarters</string>\n          <string>onehalf.alt</string>\n          <string>threequarters.alt</string>\n          <string>fraction</string>\n          <string>zero.numr</string>\n          <string>one.numr</string>\n          <string>two.numr</string>\n          <string>three.numr</string>\n          <string>four.numr</string>\n          <string>five.numr</string>\n          <string>six.numr</string>\n          <string>seven.numr</string>\n          <string>eight.numr</string>\n          <string>nine.numr</string>\n          <string>two.alt.numr</string>\n          <string>three.alt.numr</string>\n          <string>five.alt.numr</string>\n          <string>six.alt.numr</string>\n          <string>nine.alt.numr</string>\n          <string>zero.dnom</string>\n          <string>one.dnom</string>\n          <string>two.dnom</string>\n          <string>three.dnom</string>\n          <string>four.dnom</string>\n          <string>five.dnom</string>\n          <string>six.dnom</string>\n          <string>seven.dnom</string>\n          <string>eight.dnom</string>\n          <string>nine.dnom</string>\n          <string>two.alt.dnom</string>\n          <string>three.alt.dnom</string>\n          <string>five.alt.dnom</string>\n          <string>six.alt.dnom</string>\n          <string>nine.alt.dnom</string>\n          <string>arrowleft</string>\n          <string>arrowup</string>\n          <string>arrowright</string>\n          <string>arrowdown</string>\n          <string>filledbox</string>\n          <string>space</string>\n          <string>thinspace</string>\n          <string>nbspace</string>\n          <string>Aacute.compact</string>\n        </array>\n        <key>type</key>\n        <string>glyphList</string>\n      </dict>\n    </array>\n    <key>com.loicsander.scaleFast</key>\n    <dict>\n      <key>guides</key>\n      <array/>\n      <key>presets</key>\n      <dict/>\n    </dict>\n    <key>com.typemytype.robofont.background.layerStrokeColor</key>\n    <array>\n      <real>0.3189906881</real>\n      <real>0.3189906881</real>\n      <real>0.3189906881</real>\n      <real>0.21</real>\n    </array>\n    <key>com.typemytype.robofont.binarySource</key>\n    <string>/Users/jamesedmondson/Library/Fonts/QuixoPro.otf</string>\n    <key>com.typemytype.robofont.compileSettings.MacRomanFirst</key>\n    <false/>\n    <key>com.typemytype.robofont.compileSettings.autohint</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.compileSettings.checkOutlines</key>\n    <integer>1</integer>\n    <key>com.typemytype.robofont.compileSettings.createDummyDSIG</key>\n    <true/>\n    <key>com.typemytype.robofont.compileSettings.decompose</key>\n    <integer>1</integer>\n    <key>com.typemytype.robofont.compileSettings.generateFormat</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.compileSettings.layerName</key>\n    <string>foreground</string>\n    <key>com.typemytype.robofont.compileSettings.path</key>\n    <string>/Users/jamesedmondson/Dropbox/Ohno/Fonts/DevObviously_compressed_black.otf</string>\n    <key>com.typemytype.robofont.compileSettings.releaseMode</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.foreground.layerStrokeColor</key>\n    <array>\n      <real>0.3189906881</real>\n      <real>0.3189906881</real>\n      <real>0.3189906881</real>\n      <real>0.26</real>\n    </array>\n    <key>com.typemytype.robofont.guideline.magnetic.6lmnulpnLT</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.MA9AIQ5b3O</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.agp5ZEBBfz</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.hGgdg963dV</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.oeIcVHklWS</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.tBJk483qt3</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.magnetic.uDFof2HFx3</key>\n    <real>5.0</real>\n    <key>com.typemytype.robofont.guideline.showMeasurements.MA9AIQ5b3O</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.agp5ZEBBfz</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.hGgdg963dV</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.tBJk483qt3</key>\n    <false/>\n    <key>com.typemytype.robofont.guideline.showMeasurements.uDFof2HFx3</key>\n    <false/>\n    <key>com.typemytype.robofont.italicSlantOffset</key>\n    <integer>0</integer>\n    <key>com.typemytype.robofont.segmentType</key>\n    <string>curve</string>\n    <key>com.typemytype.robofont.shouldAddPointsInSplineConversion</key>\n    <integer>0</integer>\n    <key>com.typesupply.MetricsMachine4.groupColors</key>\n    <dict>\n      <key>@MMK_L_A</key>\n      <array>\n        <real>1.0</real>\n        <real>0.0</real>\n        <real>0.0</real>\n        <real>0.25</real>\n      </array>\n    </dict>\n    <key>com.typesupply.defcon.sortDescriptor</key>\n    <array>\n      <dict>\n        <key>ascending</key>\n        <array>\n          <string>.notdef</string>\n          <string>A</string>\n          <string>B</string>\n          <string>C</string>\n          <string>D</string>\n          <string>E</string>\n          <string>F</string>\n          <string>G</string>\n          <string>H</string>\n          <string>I</string>\n          <string>J</string>\n          <string>K</string>\n          <string>L</string>\n          <string>M</string>\n          <string>N</string>\n          <string>O</string>\n          <string>P</string>\n          <string>Q</string>\n          <string>R</string>\n          <string>S</string>\n          <string>T</string>\n          <string>U</string>\n          <string>V</string>\n          <string>W</string>\n          <string>X</string>\n          <string>Y</string>\n          <string>Z</string>\n          <string>a</string>\n          <string>b</string>\n          <string>c</string>\n          <string>d</string>\n          <string>e</string>\n          <string>f</string>\n          <string>g</string>\n          <string>h</string>\n          <string>i</string>\n          <string>j</string>\n          <string>k</string>\n          <string>l</string>\n          <string>m</string>\n          <string>n</string>\n          <string>o</string>\n          <string>p</string>\n          <string>q</string>\n          <string>r</string>\n          <string>s</string>\n          <string>t</string>\n          <string>u</string>\n          <string>v</string>\n          <string>w</string>\n          <string>x</string>\n          <string>y</string>\n          <string>z</string>\n          <string>Aacute</string>\n          <string>aacute</string>\n          <string>Abreve</string>\n          <string>abreve</string>\n          <string>Acircumflex</string>\n          <string>acircumflex</string>\n          <string>Adieresis</string>\n          <string>adieresis</string>\n          <string>Agrave</string>\n          <string>agrave</string>\n          <string>Amacron</string>\n          <string>amacron</string>\n          <string>Aogonek</string>\n          <string>aogonek</string>\n          <string>Aring</string>\n          <string>aring</string>\n          <string>Aringacute</string>\n          <string>aringacute</string>\n          <string>Atilde</string>\n          <string>atilde</string>\n          <string>AE</string>\n          <string>ae</string>\n          <string>AEacute</string>\n          <string>aeacute</string>\n          <string>Cacute</string>\n          <string>cacute</string>\n          <string>Ccaron</string>\n          <string>ccaron</string>\n          <string>Ccedilla</string>\n          <string>ccedilla</string>\n          <string>Ccircumflex</string>\n          <string>ccircumflex</string>\n          <string>Cdotaccent</string>\n          <string>cdotaccent</string>\n          <string>Dcaron</string>\n          <string>dcaron</string>\n          <string>Dcroat</string>\n          <string>dcroat</string>\n          <string>Eacute</string>\n          <string>eacute</string>\n          <string>Ebreve</string>\n          <string>ebreve</string>\n          <string>Ecaron</string>\n          <string>ecaron</string>\n          <string>Ecircumflex</string>\n          <string>ecircumflex</string>\n          <string>Edieresis</string>\n          <string>edieresis</string>\n          <string>Edotaccent</string>\n          <string>edotaccent</string>\n          <string>Egrave</string>\n          <string>egrave</string>\n          <string>Emacron</string>\n          <string>emacron</string>\n          <string>Eng</string>\n          <string>eng</string>\n          <string>Eogonek</string>\n          <string>eogonek</string>\n          <string>Eth</string>\n          <string>eth</string>\n          <string>fi</string>\n          <string>fl</string>\n          <string>Gbreve</string>\n          <string>gbreve</string>\n          <string>Gcircumflex</string>\n          <string>gcircumflex</string>\n          <string>Gcommaaccent</string>\n          <string>gcommaaccent</string>\n          <string>Gdotaccent</string>\n          <string>gdotaccent</string>\n          <string>Hbar</string>\n          <string>hbar</string>\n          <string>Hcircumflex</string>\n          <string>hcircumflex</string>\n          <string>Iacute</string>\n          <string>iacute</string>\n          <string>Ibreve</string>\n          <string>ibreve</string>\n          <string>Icircumflex</string>\n          <string>icircumflex</string>\n          <string>Idieresis</string>\n          <string>idieresis</string>\n          <string>Idotaccent</string>\n          <string>Igrave</string>\n          <string>igrave</string>\n          <string>IJ</string>\n          <string>ij</string>\n          <string>Imacron</string>\n          <string>imacron</string>\n          <string>Iogonek</string>\n          <string>iogonek</string>\n          <string>Itilde</string>\n          <string>itilde</string>\n          <string>dotlessi</string>\n          <string>Jcircumflex</string>\n          <string>jcircumflex</string>\n          <string>Kcommaaccent</string>\n          <string>kcommaaccent</string>\n          <string>kgreenlandic</string>\n          <string>Lacute</string>\n          <string>lacute</string>\n          <string>Lcaron</string>\n          <string>lcaron</string>\n          <string>Lcommaaccent</string>\n          <string>lcommaaccent</string>\n          <string>Ldot</string>\n          <string>ldot</string>\n          <string>Lslash</string>\n          <string>lslash</string>\n          <string>Nacute</string>\n          <string>nacute</string>\n          <string>napostrophe</string>\n          <string>Ncaron</string>\n          <string>ncaron</string>\n          <string>Ncommaaccent</string>\n          <string>ncommaaccent</string>\n          <string>Ntilde</string>\n          <string>ntilde</string>\n          <string>Oacute</string>\n          <string>oacute</string>\n          <string>Obreve</string>\n          <string>obreve</string>\n          <string>Ocircumflex</string>\n          <string>ocircumflex</string>\n          <string>Odieresis</string>\n          <string>odieresis</string>\n          <string>Ograve</string>\n          <string>ograve</string>\n          <string>Ohungarumlaut</string>\n          <string>ohungarumlaut</string>\n          <string>Omacron</string>\n          <string>omacron</string>\n          <string>Oslash</string>\n          <string>oslash</string>\n          <string>Oslashacute</string>\n          <string>oslashacute</string>\n          <string>Otilde</string>\n          <string>otilde</string>\n          <string>OE</string>\n          <string>oe</string>\n          <string>Racute</string>\n          <string>racute</string>\n          <string>Rcaron</string>\n          <string>rcaron</string>\n          <string>Rcommaaccent</string>\n          <string>rcommaaccent</string>\n          <string>Sacute</string>\n          <string>sacute</string>\n          <string>Scaron</string>\n          <string>scaron</string>\n          <string>Scedilla</string>\n          <string>scedilla</string>\n          <string>Scircumflex</string>\n          <string>scircumflex</string>\n          <string>Scommaaccent</string>\n          <string>scommaaccent</string>\n          <string>Tbar</string>\n          <string>tbar</string>\n          <string>Tcaron</string>\n          <string>tcaron</string>\n          <string>Tcommaaccent</string>\n          <string>tcommaaccent</string>\n          <string>uni021A</string>\n          <string>uni021B</string>\n          <string>Thorn</string>\n          <string>thorn</string>\n          <string>Uacute</string>\n          <string>uacute</string>\n          <string>Ubreve</string>\n          <string>ubreve</string>\n          <string>Ucircumflex</string>\n          <string>ucircumflex</string>\n          <string>Udieresis</string>\n          <string>udieresis</string>\n          <string>Ugrave</string>\n          <string>ugrave</string>\n          <string>Uhungarumlaut</string>\n          <string>uhungarumlaut</string>\n          <string>Umacron</string>\n          <string>umacron</string>\n          <string>Uogonek</string>\n          <string>uogonek</string>\n          <string>Uring</string>\n          <string>uring</string>\n          <string>Utilde</string>\n          <string>utilde</string>\n          <string>Wacute</string>\n          <string>wacute</string>\n          <string>Wcircumflex</string>\n          <string>wcircumflex</string>\n          <string>Wdieresis</string>\n          <string>wdieresis</string>\n          <string>Wgrave</string>\n          <string>wgrave</string>\n          <string>Yacute</string>\n          <string>yacute</string>\n          <string>Ycircumflex</string>\n          <string>ycircumflex</string>\n          <string>Ydieresis</string>\n          <string>ydieresis</string>\n          <string>Zacute</string>\n          <string>zacute</string>\n          <string>Zcaron</string>\n          <string>zcaron</string>\n          <string>Zdotaccent</string>\n          <string>zdotaccent</string>\n          <string>uni1E9E</string>\n          <string>germandbls</string>\n          <string>zero</string>\n          <string>one</string>\n          <string>two</string>\n          <string>three</string>\n          <string>four</string>\n          <string>five</string>\n          <string>six</string>\n          <string>seven</string>\n          <string>eight</string>\n          <string>nine</string>\n          <string>period</string>\n          <string>comma</string>\n          <string>colon</string>\n          <string>semicolon</string>\n          <string>ellipsis</string>\n          <string>periodcentered</string>\n          <string>periodcentered.case</string>\n          <string>bullet</string>\n          <string>bullet.case</string>\n          <string>ampersand</string>\n          <string>exclam</string>\n          <string>exclamdown</string>\n          <string>question</string>\n          <string>questiondown</string>\n          <string>quotedblleft</string>\n          <string>quotedblright</string>\n          <string>quoteleft</string>\n          <string>quoteright</string>\n          <string>quotedblbase</string>\n          <string>quotesinglbase</string>\n          <string>guillemotleft</string>\n          <string>guillemotright</string>\n          <string>guillemotleft.case</string>\n          <string>guillemotright.case</string>\n          <string>guilsinglleft</string>\n          <string>guilsinglright</string>\n          <string>guilsinglleft.case</string>\n          <string>guilsinglright.case</string>\n          <string>hyphen</string>\n          <string>endash</string>\n          <string>emdash</string>\n          <string>hyphen.case</string>\n          <string>endash.case</string>\n          <string>emdash.case</string>\n          <string>underscore</string>\n          <string>slash</string>\n          <string>backslash</string>\n          <string>bar</string>\n          <string>brokenbar</string>\n          <string>parenleft</string>\n          <string>parenright</string>\n          <string>parenleft.case</string>\n          <string>parenright.case</string>\n          <string>bracketleft</string>\n          <string>bracketright</string>\n          <string>bracketleft.case</string>\n          <string>bracketright.case</string>\n          <string>braceleft</string>\n          <string>braceright</string>\n          <string>braceleft.case</string>\n          <string>braceright.case</string>\n          <string>at</string>\n          <string>at.case</string>\n          <string>copyright</string>\n          <string>registered</string>\n          <string>trademark</string>\n          <string>asterisk</string>\n          <string>dagger</string>\n          <string>daggerdbl</string>\n          <string>asciicircum</string>\n          <string>asciitilde</string>\n          <string>dollar</string>\n          <string>cent</string>\n          <string>sterling</string>\n          <string>yen</string>\n          <string>Euro</string>\n          <string>numbersign</string>\n          <string>paragraph</string>\n          <string>section</string>\n          <string>ordfeminine</string>\n          <string>ordmasculine</string>\n          <string>degree</string>\n          <string>percent</string>\n          <string>perthousand</string>\n          <string>quotedbl</string>\n          <string>quotesingle</string>\n          <string>plus</string>\n          <string>minus</string>\n          <string>less</string>\n          <string>greater</string>\n          <string>equal</string>\n          <string>multiply</string>\n          <string>divide</string>\n          <string>zero.osf</string>\n          <string>one.osf</string>\n          <string>two.osf</string>\n          <string>three.osf</string>\n          <string>four.osf</string>\n          <string>five.osf</string>\n          <string>six.osf</string>\n          <string>seven.osf</string>\n          <string>eight.osf</string>\n          <string>nine.osf</string>\n          <string>dollar.osf</string>\n          <string>sterling.osf</string>\n          <string>Euro.osf</string>\n          <string>yen.osf</string>\n          <string>acute</string>\n          <string>hungarumlaut</string>\n          <string>caron.alt</string>\n          <string>grave</string>\n          <string>circumflex</string>\n          <string>caron</string>\n          <string>breve</string>\n          <string>tilde</string>\n          <string>macron</string>\n          <string>dieresis</string>\n          <string>dotaccent</string>\n          <string>ring</string>\n          <string>commaaccent</string>\n          <string>cedilla</string>\n          <string>ogonek</string>\n          <string>acute.case</string>\n          <string>hungarumlaut.case</string>\n          <string>grave.case</string>\n          <string>circumflex.case</string>\n          <string>caron.case</string>\n          <string>breve.case</string>\n          <string>tilde.case</string>\n          <string>macron.case</string>\n          <string>dieresis.case</string>\n          <string>dotaccent.case</string>\n          <string>ring.case</string>\n          <string>afii61352</string>\n          <string>onesuperior</string>\n          <string>twosuperior</string>\n          <string>threesuperior</string>\n          <string>onequarter</string>\n          <string>onehalf</string>\n          <string>threequarters</string>\n          <string>fraction</string>\n          <string>zero.numr</string>\n          <string>one.numr</string>\n          <string>two.numr</string>\n          <string>three.numr</string>\n          <string>four.numr</string>\n          <string>five.numr</string>\n          <string>six.numr</string>\n          <string>seven.numr</string>\n          <string>eight.numr</string>\n          <string>nine.numr</string>\n          <string>zero.dnom</string>\n          <string>one.dnom</string>\n          <string>two.dnom</string>\n          <string>three.dnom</string>\n          <string>four.dnom</string>\n          <string>five.dnom</string>\n          <string>six.dnom</string>\n          <string>seven.dnom</string>\n          <string>eight.dnom</string>\n          <string>nine.dnom</string>\n          <string>arrowleft</string>\n          <string>arrowup</string>\n          <string>arrowright</string>\n          <string>arrowdown</string>\n          <string>arrowboth</string>\n          <string>arrowupdn</string>\n          <string>uni2196</string>\n          <string>uni2197</string>\n          <string>uni2198</string>\n          <string>uni2199</string>\n          <string>filledbox</string>\n          <string>space</string>\n          <string>thinspace</string>\n          <string>nbspace</string>\n          <string>a.alt</string>\n          <string>c.alt</string>\n          <string>s.alt</string>\n          <string>e.alt</string>\n          <string>g.alt</string>\n          <string>y.alt</string>\n          <string>G.alt</string>\n          <string>S.alt</string>\n          <string>C.alt</string>\n          <string>two.alt</string>\n          <string>nine.alt</string>\n          <string>three.alt</string>\n          <string>five.alt</string>\n          <string>six.alt</string>\n          <string>question.alt</string>\n          <string>ampersand.alt</string>\n          <string>t.alt</string>\n          <string>g.alt2</string>\n        </array>\n        <key>type</key>\n        <string>glyphList</string>\n      </dict>\n    </array>\n    <key>public.glyphOrder</key>\n    <array>\n      <string>D</string>\n      <string>E</string>\n      <string>L</string>\n      <string>O</string>\n      <string>P</string>\n      <string>T</string>\n      <string>Y</string>\n      <string>C</string>\n      <string>space</string>\n    </array>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/ColdtypeObviously_CompressedBlackItalic.ufo/metainfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>creator</key>\n    <string>com.github.fonttools.ufoLib</string>\n    <key>formatVersion</key>\n    <integer>3</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/README.md",
    "content": "fontmake -m assets/ColdtypeObviously.designspace -o variable --output-dir=assets"
  },
  {
    "path": "assets/logos.ufo/fontinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>ascender</key>\n    <integer>750</integer>\n    <key>capHeight</key>\n    <integer>750</integer>\n    <key>descender</key>\n    <integer>-250</integer>\n    <key>guidelines</key>\n    <array/>\n    <key>postscriptBlueValues</key>\n    <array/>\n    <key>postscriptFamilyBlues</key>\n    <array/>\n    <key>postscriptFamilyOtherBlues</key>\n    <array/>\n    <key>postscriptOtherBlues</key>\n    <array/>\n    <key>postscriptStemSnapH</key>\n    <array/>\n    <key>postscriptStemSnapV</key>\n    <array/>\n    <key>unitsPerEm</key>\n    <integer>1000</integer>\n    <key>xHeight</key>\n    <integer>500</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/glyphs/contents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>goodhertz_logo_2019</key>\n    <string>goodhertz_logo_2019.glif</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/glyphs/goodhertz_logo_2019.glif",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<glyph name=\"goodhertz_logo_2019\" format=\"2\">\n  <advance width=\"1917\"/>\n  <outline>\n    <contour>\n      <point x=\"282\" y=\"585\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"261\" y=\"585\"/>\n      <point x=\"230\" y=\"591\"/>\n      <point x=\"205\" y=\"591\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"174\" y=\"591\"/>\n      <point x=\"156\" y=\"568\"/>\n      <point x=\"144\" y=\"499\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"132\" y=\"436\"/>\n      <point x=\"125\" y=\"395\"/>\n      <point x=\"88\" y=\"362\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"32\" y=\"308\"/>\n      <point x=\"26\" y=\"286\"/>\n      <point x=\"26\" y=\"258\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"26\" y=\"225\"/>\n      <point x=\"59\" y=\"180\"/>\n      <point x=\"134\" y=\"107\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"177\" y=\"67\"/>\n      <point x=\"172\" y=\"16\"/>\n      <point x=\"222\" y=\"16\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"266\" y=\"16\"/>\n      <point x=\"269\" y=\"44\"/>\n      <point x=\"324\" y=\"63\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"397\" y=\"90\"/>\n      <point x=\"412\" y=\"102\"/>\n      <point x=\"412\" y=\"137\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"412\" y=\"183\"/>\n      <point x=\"373\" y=\"227\"/>\n      <point x=\"373\" y=\"263\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"373\" y=\"296\"/>\n      <point x=\"400\" y=\"333\"/>\n      <point x=\"422\" y=\"333\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"431\" y=\"333\"/>\n      <point x=\"437\" y=\"327\"/>\n      <point x=\"437\" y=\"319\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"437\" y=\"309\"/>\n      <point x=\"416\" y=\"270\"/>\n      <point x=\"416\" y=\"242\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"416\" y=\"212\"/>\n      <point x=\"462\" y=\"181\"/>\n      <point x=\"516\" y=\"181\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"566\" y=\"181\"/>\n      <point x=\"588\" y=\"238\"/>\n      <point x=\"588\" y=\"298\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"588\" y=\"335\"/>\n      <point x=\"576\" y=\"342\"/>\n      <point x=\"576\" y=\"358\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"576\" y=\"369\"/>\n      <point x=\"586\" y=\"401\"/>\n      <point x=\"598\" y=\"401\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"608\" y=\"401\"/>\n      <point x=\"620\" y=\"363\"/>\n      <point x=\"620\" y=\"342\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"620\" y=\"322\"/>\n      <point x=\"608\" y=\"300\"/>\n      <point x=\"608\" y=\"285\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"608\" y=\"261\"/>\n      <point x=\"645\" y=\"237\"/>\n      <point x=\"684\" y=\"237\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"729\" y=\"237\"/>\n      <point x=\"745\" y=\"284\"/>\n      <point x=\"745\" y=\"305\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"745\" y=\"320\"/>\n      <point x=\"741\" y=\"338\"/>\n      <point x=\"741\" y=\"350\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"741\" y=\"378\"/>\n      <point x=\"756\" y=\"425\"/>\n      <point x=\"768\" y=\"425\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"778\" y=\"425\"/>\n      <point x=\"783\" y=\"419\"/>\n      <point x=\"783\" y=\"410\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"783\" y=\"398\"/>\n      <point x=\"768\" y=\"364\"/>\n      <point x=\"768\" y=\"341\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"768\" y=\"314\"/>\n      <point x=\"790\" y=\"281\"/>\n      <point x=\"818\" y=\"281\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"847\" y=\"281\"/>\n      <point x=\"860\" y=\"336\"/>\n      <point x=\"872\" y=\"336\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"882\" y=\"336\"/>\n      <point x=\"884\" y=\"279\"/>\n      <point x=\"911\" y=\"279\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"935\" y=\"279\"/>\n      <point x=\"957\" y=\"375\"/>\n      <point x=\"973\" y=\"375\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"977\" y=\"375\"/>\n      <point x=\"981\" y=\"372\"/>\n      <point x=\"981\" y=\"367\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"981\" y=\"362\"/>\n      <point x=\"976\" y=\"333\"/>\n      <point x=\"976\" y=\"323\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"976\" y=\"309\"/>\n      <point x=\"988\" y=\"294\"/>\n      <point x=\"1005\" y=\"294\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1026\" y=\"294\"/>\n      <point x=\"1030\" y=\"322\"/>\n      <point x=\"1039\" y=\"393\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1045\" y=\"436\"/>\n      <point x=\"1060\" y=\"472\"/>\n      <point x=\"1073\" y=\"472\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1086\" y=\"472\"/>\n      <point x=\"1092\" y=\"462\"/>\n      <point x=\"1092\" y=\"452\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1092\" y=\"421\"/>\n      <point x=\"1053\" y=\"390\"/>\n      <point x=\"1053\" y=\"357\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1053\" y=\"333\"/>\n      <point x=\"1073\" y=\"288\"/>\n      <point x=\"1103\" y=\"288\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1139\" y=\"288\"/>\n      <point x=\"1155\" y=\"363\"/>\n      <point x=\"1167\" y=\"363\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1184\" y=\"363\"/>\n      <point x=\"1188\" y=\"278\"/>\n      <point x=\"1233\" y=\"278\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1267\" y=\"278\"/>\n      <point x=\"1297\" y=\"359\"/>\n      <point x=\"1315\" y=\"359\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1324\" y=\"359\"/>\n      <point x=\"1326\" y=\"352\"/>\n      <point x=\"1326\" y=\"345\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1326\" y=\"331\"/>\n      <point x=\"1315\" y=\"316\"/>\n      <point x=\"1315\" y=\"300\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1315\" y=\"286\"/>\n      <point x=\"1329\" y=\"281\"/>\n      <point x=\"1339\" y=\"283\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1370\" y=\"286\"/>\n      <point x=\"1403\" y=\"286\"/>\n      <point x=\"1415\" y=\"286\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1429\" y=\"286\"/>\n      <point x=\"1434\" y=\"299\"/>\n      <point x=\"1434\" y=\"308\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1434\" y=\"338\"/>\n      <point x=\"1398\" y=\"372\"/>\n      <point x=\"1398\" y=\"398\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1398\" y=\"421\"/>\n      <point x=\"1413\" y=\"427\"/>\n      <point x=\"1452\" y=\"429\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1486\" y=\"429\"/>\n      <point x=\"1507\" y=\"433\"/>\n      <point x=\"1507\" y=\"458\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1507\" y=\"473\"/>\n      <point x=\"1498\" y=\"488\"/>\n      <point x=\"1497\" y=\"503\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1492\" y=\"524\"/>\n      <point x=\"1496\" y=\"567\"/>\n      <point x=\"1475\" y=\"567\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1440\" y=\"567\"/>\n      <point x=\"1424\" y=\"458\"/>\n      <point x=\"1407\" y=\"458\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1401\" y=\"458\"/>\n      <point x=\"1398\" y=\"462\"/>\n      <point x=\"1398\" y=\"467\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1398\" y=\"480\"/>\n      <point x=\"1413\" y=\"503\"/>\n      <point x=\"1413\" y=\"517\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1413\" y=\"531\"/>\n      <point x=\"1399\" y=\"554\"/>\n      <point x=\"1385\" y=\"554\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1363\" y=\"554\"/>\n      <point x=\"1360\" y=\"501\"/>\n      <point x=\"1339\" y=\"446\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1320\" y=\"390\"/>\n      <point x=\"1302\" y=\"367\"/>\n      <point x=\"1270\" y=\"367\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1240\" y=\"367\"/>\n      <point x=\"1220\" y=\"373\"/>\n      <point x=\"1220\" y=\"384\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1220\" y=\"395\"/>\n      <point x=\"1239\" y=\"402\"/>\n      <point x=\"1264\" y=\"404\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1291\" y=\"405\"/>\n      <point x=\"1321\" y=\"417\"/>\n      <point x=\"1321\" y=\"456\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1321\" y=\"491\"/>\n      <point x=\"1297\" y=\"522\"/>\n      <point x=\"1270\" y=\"522\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1205\" y=\"522\"/>\n      <point x=\"1189\" y=\"390\"/>\n      <point x=\"1154\" y=\"390\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1147\" y=\"390\"/>\n      <point x=\"1137\" y=\"396\"/>\n      <point x=\"1137\" y=\"407\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1137\" y=\"427\"/>\n      <point x=\"1192\" y=\"491\"/>\n      <point x=\"1192\" y=\"529\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1192\" y=\"568\"/>\n      <point x=\"1165\" y=\"595\"/>\n      <point x=\"1137\" y=\"595\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1104\" y=\"595\"/>\n      <point x=\"1058\" y=\"496\"/>\n      <point x=\"1047\" y=\"496\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1040\" y=\"496\"/>\n      <point x=\"1036\" y=\"500\"/>\n      <point x=\"1036\" y=\"508\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1036\" y=\"540\"/>\n      <point x=\"1068\" y=\"551\"/>\n      <point x=\"1097\" y=\"627\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1112\" y=\"667\"/>\n      <point x=\"1154\" y=\"698\"/>\n      <point x=\"1154\" y=\"715\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1154\" y=\"725\"/>\n      <point x=\"1145\" y=\"736\"/>\n      <point x=\"1129\" y=\"734\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1026\" y=\"724\"/>\n      <point x=\"998\" y=\"701\"/>\n      <point x=\"993\" y=\"588\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"987\" y=\"451\"/>\n      <point x=\"966\" y=\"389\"/>\n      <point x=\"949\" y=\"389\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"937\" y=\"389\"/>\n      <point x=\"929\" y=\"412\"/>\n      <point x=\"929\" y=\"441\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"929\" y=\"488\"/>\n      <point x=\"945\" y=\"517\"/>\n      <point x=\"951\" y=\"561\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"958\" y=\"611\"/>\n      <point x=\"981\" y=\"647\"/>\n      <point x=\"981\" y=\"685\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"981\" y=\"706\"/>\n      <point x=\"973\" y=\"720\"/>\n      <point x=\"956\" y=\"720\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"924\" y=\"720\"/>\n      <point x=\"856\" y=\"682\"/>\n      <point x=\"856\" y=\"641\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"856\" y=\"600\"/>\n      <point x=\"892\" y=\"576\"/>\n      <point x=\"892\" y=\"522\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"892\" y=\"511\"/>\n      <point x=\"888\" y=\"504\"/>\n      <point x=\"881\" y=\"504\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"867\" y=\"504\"/>\n      <point x=\"861\" y=\"512\"/>\n      <point x=\"842\" y=\"512\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"808\" y=\"512\"/>\n      <point x=\"785\" y=\"454\"/>\n      <point x=\"770\" y=\"454\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"753\" y=\"454\"/>\n      <point x=\"739\" y=\"542\"/>\n      <point x=\"697\" y=\"542\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"642\" y=\"542\"/>\n      <point x=\"628\" y=\"509\"/>\n      <point x=\"616\" y=\"487\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"606\" y=\"466\"/>\n      <point x=\"593\" y=\"427\"/>\n      <point x=\"579\" y=\"427\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"568\" y=\"427\"/>\n      <point x=\"547\" y=\"468\"/>\n      <point x=\"514\" y=\"468\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"485\" y=\"468\"/>\n      <point x=\"443\" y=\"367\"/>\n      <point x=\"422\" y=\"367\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"374\" y=\"367\"/>\n      <point x=\"310\" y=\"387\"/>\n      <point x=\"241\" y=\"387\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"208\" y=\"387\"/>\n      <point x=\"188\" y=\"370\"/>\n      <point x=\"188\" y=\"342\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"188\" y=\"330\"/>\n      <point x=\"193\" y=\"314\"/>\n      <point x=\"194\" y=\"296\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"194\" y=\"273\"/>\n      <point x=\"199\" y=\"261\"/>\n      <point x=\"217\" y=\"261\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"247\" y=\"261\"/>\n      <point x=\"291\" y=\"303\"/>\n      <point x=\"313\" y=\"303\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"325\" y=\"303\"/>\n      <point x=\"333\" y=\"294\"/>\n      <point x=\"333\" y=\"279\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"333\" y=\"247\"/>\n      <point x=\"300\" y=\"166\"/>\n      <point x=\"258\" y=\"166\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"217\" y=\"166\"/>\n      <point x=\"204\" y=\"226\"/>\n      <point x=\"173\" y=\"268\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"151\" y=\"298\"/>\n      <point x=\"135\" y=\"293\"/>\n      <point x=\"135\" y=\"331\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"135\" y=\"392\"/>\n      <point x=\"219\" y=\"466\"/>\n      <point x=\"262\" y=\"466\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"310\" y=\"466\"/>\n      <point x=\"324\" y=\"392\"/>\n      <point x=\"368\" y=\"392\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"397\" y=\"392\"/>\n      <point x=\"429\" y=\"429\"/>\n      <point x=\"429\" y=\"452\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"429\" y=\"479\"/>\n      <point x=\"404\" y=\"496\"/>\n      <point x=\"395\" y=\"514\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"375\" y=\"554\"/>\n      <point x=\"380\" y=\"595\"/>\n      <point x=\"345\" y=\"595\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"315\" y=\"595\"/>\n      <point x=\"301\" y=\"585\"/>\n    </contour>\n    <contour>\n      <point x=\"503\" y=\"377\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"513\" y=\"377\"/>\n      <point x=\"515\" y=\"365\"/>\n      <point x=\"524\" y=\"358\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"532\" y=\"350\"/>\n      <point x=\"546\" y=\"356\"/>\n      <point x=\"546\" y=\"337\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"546\" y=\"330\"/>\n      <point x=\"535\" y=\"299\"/>\n      <point x=\"518\" y=\"299\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"499\" y=\"299\"/>\n      <point x=\"482\" y=\"321\"/>\n      <point x=\"482\" y=\"340\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"482\" y=\"358\"/>\n      <point x=\"490\" y=\"377\"/>\n    </contour>\n    <contour>\n      <point x=\"684\" y=\"451\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"702\" y=\"451\"/>\n      <point x=\"716\" y=\"394\"/>\n      <point x=\"716\" y=\"374\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"716\" y=\"353\"/>\n      <point x=\"708\" y=\"336\"/>\n      <point x=\"690\" y=\"336\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"671\" y=\"336\"/>\n      <point x=\"648\" y=\"362\"/>\n      <point x=\"648\" y=\"388\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"648\" y=\"415\"/>\n      <point x=\"658\" y=\"451\"/>\n    </contour>\n    <contour>\n      <point x=\"874\" y=\"458\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"883\" y=\"458\"/>\n      <point x=\"887\" y=\"451\"/>\n      <point x=\"887\" y=\"438\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"887\" y=\"424\"/>\n      <point x=\"872\" y=\"377\"/>\n      <point x=\"856\" y=\"377\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"842\" y=\"377\"/>\n      <point x=\"829\" y=\"402\"/>\n      <point x=\"829\" y=\"416\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"829\" y=\"436\"/>\n      <point x=\"856\" y=\"458\"/>\n    </contour>\n    <contour>\n      <point x=\"1259\" y=\"473\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1271\" y=\"473\"/>\n      <point x=\"1275\" y=\"464\"/>\n      <point x=\"1275\" y=\"453\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1275\" y=\"436\"/>\n      <point x=\"1254\" y=\"426\"/>\n      <point x=\"1244\" y=\"426\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1236\" y=\"426\"/>\n      <point x=\"1233\" y=\"430\"/>\n      <point x=\"1233\" y=\"438\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1233\" y=\"452\"/>\n      <point x=\"1244\" y=\"473\"/>\n    </contour>\n    <contour>\n      <point x=\"1611\" y=\"571\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1598\" y=\"571\"/>\n      <point x=\"1586\" y=\"561\"/>\n      <point x=\"1570\" y=\"532\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1555\" y=\"504\"/>\n      <point x=\"1513\" y=\"503\"/>\n      <point x=\"1513\" y=\"477\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1513\" y=\"459\"/>\n      <point x=\"1528\" y=\"453\"/>\n      <point x=\"1528\" y=\"438\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1528\" y=\"416\"/>\n      <point x=\"1472\" y=\"373\"/>\n      <point x=\"1472\" y=\"338\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1472\" y=\"303\"/>\n      <point x=\"1512\" y=\"261\"/>\n      <point x=\"1550\" y=\"261\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1593\" y=\"261\"/>\n      <point x=\"1665\" y=\"387\"/>\n      <point x=\"1708\" y=\"387\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1723\" y=\"387\"/>\n      <point x=\"1731\" y=\"372\"/>\n      <point x=\"1731\" y=\"357\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1731\" y=\"338\"/>\n      <point x=\"1714\" y=\"314\"/>\n      <point x=\"1703\" y=\"314\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1691\" y=\"314\"/>\n      <point x=\"1681\" y=\"322\"/>\n      <point x=\"1671\" y=\"322\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1655\" y=\"322\"/>\n      <point x=\"1627\" y=\"291\"/>\n      <point x=\"1627\" y=\"274\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1627\" y=\"256\"/>\n      <point x=\"1666\" y=\"254\"/>\n      <point x=\"1666\" y=\"244\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1666\" y=\"235\"/>\n      <point x=\"1656\" y=\"227\"/>\n      <point x=\"1627\" y=\"226\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1546\" y=\"220\"/>\n      <point x=\"1517\" y=\"209\"/>\n      <point x=\"1517\" y=\"152\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1517\" y=\"114\"/>\n      <point x=\"1537\" y=\"72\"/>\n      <point x=\"1559\" y=\"72\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1580\" y=\"72\"/>\n      <point x=\"1601\" y=\"80\"/>\n      <point x=\"1614\" y=\"80\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1631\" y=\"80\"/>\n      <point x=\"1653\" y=\"72\"/>\n      <point x=\"1690\" y=\"72\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1724\" y=\"72\"/>\n      <point x=\"1750\" y=\"120\"/>\n      <point x=\"1750\" y=\"205\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1753\" y=\"220\"/>\n      <point x=\"1756\" y=\"230\"/>\n      <point x=\"1773\" y=\"235\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1790\" y=\"241\"/>\n      <point x=\"1835\" y=\"259\"/>\n      <point x=\"1862\" y=\"259\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1909\" y=\"259\"/>\n      <point x=\"1953\" y=\"242\"/>\n      <point x=\"1996\" y=\"242\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"2011\" y=\"242\"/>\n      <point x=\"2018\" y=\"253\"/>\n      <point x=\"2018\" y=\"269\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"2018\" y=\"278\"/>\n      <point x=\"2004\" y=\"358\"/>\n      <point x=\"1964\" y=\"358\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1924\" y=\"358\"/>\n      <point x=\"1895\" y=\"320\"/>\n      <point x=\"1857\" y=\"316\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1819\" y=\"312\"/>\n      <point x=\"1771\" y=\"267\"/>\n      <point x=\"1751\" y=\"267\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1734\" y=\"267\"/>\n      <point x=\"1719\" y=\"274\"/>\n      <point x=\"1719\" y=\"283\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1719\" y=\"295\"/>\n      <point x=\"1838\" y=\"341\"/>\n      <point x=\"1838\" y=\"395\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1838\" y=\"451\"/>\n      <point x=\"1812\" y=\"500\"/>\n      <point x=\"1780\" y=\"500\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1723\" y=\"500\"/>\n      <point x=\"1649\" y=\"351\"/>\n      <point x=\"1588\" y=\"351\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1571\" y=\"351\"/>\n      <point x=\"1560\" y=\"364\"/>\n      <point x=\"1560\" y=\"380\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1560\" y=\"393\"/>\n      <point x=\"1569\" y=\"416\"/>\n      <point x=\"1574\" y=\"416\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1587\" y=\"416\"/>\n      <point x=\"1601\" y=\"398\"/>\n      <point x=\"1617\" y=\"398\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1635\" y=\"398\"/>\n      <point x=\"1657\" y=\"431\"/>\n      <point x=\"1657\" y=\"452\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1657\" y=\"468\"/>\n      <point x=\"1656\" y=\"475\"/>\n      <point x=\"1639\" y=\"474\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1616\" y=\"473\"/>\n      <point x=\"1609\" y=\"478\"/>\n      <point x=\"1609\" y=\"491\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1609\" y=\"503\"/>\n      <point x=\"1619\" y=\"538\"/>\n      <point x=\"1619\" y=\"557\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1619\" y=\"566\"/>\n      <point x=\"1618\" y=\"571\"/>\n    </contour>\n    <contour>\n      <point x=\"1653\" y=\"201\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1664\" y=\"201\"/>\n      <point x=\"1666\" y=\"196\"/>\n      <point x=\"1666\" y=\"189\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1666\" y=\"178\"/>\n      <point x=\"1654\" y=\"152\"/>\n      <point x=\"1638\" y=\"152\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1620\" y=\"152\"/>\n      <point x=\"1606\" y=\"159\"/>\n      <point x=\"1606\" y=\"175\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1606\" y=\"191\"/>\n      <point x=\"1631\" y=\"201\"/>\n    </contour>\n    <contour>\n      <point x=\"417\" y=\"75\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"417\" y=\"95\"/>\n      <point x=\"431\" y=\"107\"/>\n      <point x=\"458\" y=\"126\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"484\" y=\"146\"/>\n      <point x=\"503\" y=\"153\"/>\n      <point x=\"555\" y=\"152\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"608\" y=\"151\"/>\n      <point x=\"687\" y=\"179\"/>\n      <point x=\"750\" y=\"214\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"813\" y=\"248\"/>\n      <point x=\"837\" y=\"257\"/>\n      <point x=\"896\" y=\"241\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"955\" y=\"226\"/>\n      <point x=\"1009\" y=\"214\"/>\n      <point x=\"1052\" y=\"232\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1095\" y=\"248\"/>\n      <point x=\"1140\" y=\"265\"/>\n      <point x=\"1166\" y=\"265\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1192\" y=\"265\"/>\n      <point x=\"1265\" y=\"231\"/>\n      <point x=\"1314\" y=\"231\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1365\" y=\"231\"/>\n      <point x=\"1419\" y=\"273\"/>\n      <point x=\"1452\" y=\"273\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1473\" y=\"273\"/>\n      <point x=\"1508\" y=\"236\"/>\n      <point x=\"1508\" y=\"215\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1508\" y=\"194\"/>\n      <point x=\"1480\" y=\"176\"/>\n      <point x=\"1466\" y=\"162\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1452\" y=\"148\"/>\n      <point x=\"1436\" y=\"126\"/>\n      <point x=\"1409\" y=\"126\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1361\" y=\"126\"/>\n      <point x=\"1288\" y=\"166\"/>\n      <point x=\"1259\" y=\"166\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1234\" y=\"166\"/>\n      <point x=\"1209\" y=\"152\"/>\n      <point x=\"1179\" y=\"152\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1160\" y=\"152\"/>\n      <point x=\"1129\" y=\"162\"/>\n      <point x=\"1103\" y=\"162\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"1075\" y=\"162\"/>\n      <point x=\"1039\" y=\"143\"/>\n      <point x=\"1003\" y=\"143\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"945\" y=\"143\"/>\n      <point x=\"900\" y=\"164\"/>\n      <point x=\"886\" y=\"164\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"871\" y=\"164\"/>\n      <point x=\"864\" y=\"144\"/>\n      <point x=\"827\" y=\"144\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"808\" y=\"144\"/>\n      <point x=\"762\" y=\"153\"/>\n      <point x=\"736\" y=\"153\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"689\" y=\"153\"/>\n      <point x=\"661\" y=\"107\"/>\n      <point x=\"601\" y=\"101\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"505\" y=\"90\"/>\n      <point x=\"446\" y=\"67\"/>\n      <point x=\"425\" y=\"67\" type=\"curve\" smooth=\"yes\"/>\n      <point x=\"420\" y=\"67\"/>\n      <point x=\"417\" y=\"70\"/>\n    </contour>\n  </outline>\n</glyph>\n"
  },
  {
    "path": "assets/logos.ufo/glyphs/layerinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>color</key>\n    <string>1,0.75,0,0.7</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/glyphs.background/contents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict/>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/glyphs.background/layerinfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>color</key>\n    <string>0,0.8,0.2,0.7</string>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/layercontents.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <array>\n    <array>\n      <string>foreground</string>\n      <string>glyphs</string>\n    </array>\n    <array>\n      <string>background</string>\n      <string>glyphs.background</string>\n    </array>\n  </array>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/lib.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>com.defcon.sortDescriptor</key>\n    <array>\n      <dict>\n        <key>ascending</key>\n        <string>Latin-1</string>\n        <key>type</key>\n        <string>characterSet</string>\n      </dict>\n    </array>\n    <key>com.typemytype.robofont.segmentType</key>\n    <string>curve</string>\n    <key>public.glyphOrder</key>\n    <array>\n      <string>goodhertz_logo_2019</string>\n    </array>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/logos.ufo/metainfo.plist",
    "content": "<?xml version='1.0' encoding='UTF-8'?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n  <dict>\n    <key>creator</key>\n    <string>com.github.fonttools.ufoLib</string>\n    <key>formatVersion</key>\n    <integer>3</integer>\n  </dict>\n</plist>\n"
  },
  {
    "path": "assets/noto.py",
    "content": "#!/usr/bin/env python\n\nfrom io import BytesIO\nfrom urllib.request import urlopen\nfrom zipfile import ZipFile\n\nzipurl = \"https://noto-website-2.storage.googleapis.com/pkgs/Noto-unhinted.zip\"\n\nprint(\"> Downloading the noto fonts (this may take a while)...\")\n\nwith urlopen(zipurl) as zipresp:\n    with ZipFile(BytesIO(zipresp.read())) as zfile:\n        zfile.extractall(\"assets/Noto-unhinted\")\n\n"
  },
  {
    "path": "buildenv",
    "content": "export PYTHONUTF8=1"
  },
  {
    "path": "docs/.gitignore",
    "content": "_build\n_static/renders\n*.pdf"
  },
  {
    "path": "docs/tutorials/midi.rst",
    "content": "MIDI\n====\n\nThere are two primary uses for MIDI in Coldtype programs, and they're kind of completely unrelated to each other, though both do use the MIDI protocol. The first is the use of MIDI controllers to set variables and trigger actions on running coldtype scripts. The second is the use of MIDI files (usually exported from audio software) to control animations.\n\nUsing MIDI controllers\n----------------------\n\nIf you launch coldtype with the ``-mi 1`` or ``--midi-info=1`` flag, you should see a list of MIDI controllers/devices currently available on your system.\n\nI always have a `Launch Control XL <https://novationmusic.com/en/launch/launch-control-xl>`_ plugged into my computer, and if you don't already have a MIDI Controller, I highly recommend that one, since it's got faders, which are a lot of fun in combination with real-time dynamic typography, and it's great for mixing in Ableton, which has nothing to do with this.\n\nWith that in mind, I'll use the Launch Control as an example. So with that device plugged in, when I run ``coldtype -mi 1`` in my coldtype virtualenv, I see the following print out in my terminal window:\n\n.. code::txt\n\n    0 IAC Driver Bus 1\n    1 USB Midi \n    2 Launch Control XL\n    3 Launch Control XL HUI\n\nI'm including the unrelated devices because those (or others) might show up on your computer as well, depending on what you have plugged in. Basically, you just want to find the `exact` name of the device you're looking to use with Coldtype. In this case, that’s ``\"Launch Control XL\"`` (not the one with `HUI` in the name).\n\nOnce you know that, create a file at the root of user path (aka ``~``), called ``.coldtype.py``\n\nYou can do that with a command line invocation, like this: ``touch ~/.coldtype.py``, and you can open it in a code editor like VS Code with ``code ~/.coldtype.py``\n\nOnce you’re there, you’ll want to add some Python code to configure the MIDI device of  your choice. Here’s an example:\n\n.. code:: python\n\n    MIDI = {\n        \"Launch Control XL\": {\n            \"note_on\": {\n            }\n        }\n    }\n\nNow save that file and relaunch coldtype with the same invocation for midi-info, i.e. ``coldtype -mi 1``\n\nNow if you hit some buttons on your midi controller, you should see some identifying information about those buttons, like what number they correspond to.\n\nFor instance, if I hit the button labelled 1 on my Launch Control (the button at the bottom left), I see this printed out in my terminal:\n\n``Launch Control XL <NOTE OFF, note: 73 (C#4), channel: 9>``\n\nThe pertinent information there is the note number, 73. Now you can go back to ~/.coldtype.py and assign that button to a Coldtype action, like so:\n\n.. code:: python\n\n    MIDI = {\n        \"Launch Control XL\": {\n            \"note_on\": {\n                73: \"render_all\"\n            }\n        }\n    }\n\nNow if you run an animation (like ``coldtype examples/animations/house.py``), when you hit that same button on the Launch Control, it'll start a sequential render of all the frames in the animation.\n\nN.B. The actions defined in the ``\"note_on\"`` dict are completely optional, but it's a great way to control a Coldtype program without having to rely on app focus on on your computer. That is, if you want to render all the frames of an animation while you have Premiere or VS Code open in the foreground of your application (rather than the coldtype viewer), you can just hit the key that corresponds to midi controller number 73 (for example).\n\n**Faders**: Of course, triggering actions isn't the exciting use of a MIDI controller in Coldtype. The exciting thing is hooking up a knob or fader to a variable, meaning you can quickly and easily modify a design otherwise defined completely in code.\n\nIf you run coldtype again with the ``-mi 1`` flag (``coldtype -mi 1``), and move around a fader or a knob on your controller, you should see print outs like this:\n\n``Launch Control XL <CONTROLLER: 77 (\"Sound Control 8\"), value: 51, channel: 9>``\n\nAgain, the only thing we’re interested in is the 77 displayed there, which is the controller id. But this time we're not going to edit the coldtype config, we're going to target this value directly in a script, by constructing a ``Generic`` midi controller object, then querying it based on the number above, 77 in this case. The 0.5 supplied as the second argument is the default value of the slider, which we have to supply, given that MIDI controllers do not have a \"memory\" of their own, i.e. when the script starts, we have no way of reading current knob/fader positions off of the MIDI device. More on saving state further on down.\n\n.. code:: python\n\n    from coldtype import *\n    from coldtype.midi.controllers import Generic\n\n    @animation(rstate=1)\n    def use_midi(f, rs):\n        controller = Generic(\"Launch Control XL\", rs.midi, channel=9)\n        fader = controller(77, 0.5) # returns a value between 0 and 1\n        return (P()\n            .oval(f.a.r.take(fader, \"mdx\").square())\n            .f(hsl(0.65)))\n    \nNow if you run that code, you should see a blue circle on your screen — and if you move the first fader on a Launch Control XL, you should see the circle change size.\n\n\nReading MIDI files for animations\n---------------------------------\n\nTutorial coming soon... (in the meantime, check out the examples in the sidebar, 808 and house both MIDI for animations extensively)"
  },
  {
    "path": "docs/tutorials/type_design.rst",
    "content": "Type Design\n===========\n\nLive Reload UFOs\n----------------\n\nOne fun thing that coldtype can do out of the box is load ``.ufo`` and ``.designspace`` files, as well as monitor those files for changes.\n\nHere’s an example of creating a somewhat complex text setting using the ``assets/ColdtypeObviously_BlackItalic.ufo`` UFO source, then automatically monitoring the UFO source and refreshing the rendered composition based on any changes saved to the UFO.\n\n.. code:: python\n\n    from coldtype import *\n\n    ufo_ttf = Font(\"assets/ColdtypeObviously_BlackItalic.ufo\")\n\n    @renderable((1200, 300), watch=[ufo_ttf], bg=0)\n    def ufo_monitor(r):\n        return (StSt(\"CDELOPTY\", ufo_ttf, 250, tu=-150, r=1)\n            .fssw(Gradient.H(r, hsl(0.05, s=0.75), hsl(0.8, s=0.75))\n                , 0, 15, 1)\n            .align(r))\n\n.. image:: /_static/renders/type_design_ufo_monitor.png\n    :width: 600\n\nNow if you run the code above (via ``coldtype <your-filename-here>.py``) and then open up the source UFO in RoboFont or another UFO-capable font editor, any changes you save to the source will update automatically in the preview window, if you leave the process hanging.\n\nThis works because the font is passed to ``watch=`` keyword argument of the ``@renderable`` decorator. This instructs the renderer to monitor that font’s source UFO for changes. (This also works for standard fonts, i.e. ``.ttf`` and ``.otf`` files.)\n\nAlso worth noting: because the UFO font is loaded above by compiling it to a ttf (coldtype does this automatically via ``FontGoggles`` when you pass a ``.ufo`` to ``Font``), you can also use a coldtype program as a way to test OT feature code in realtime — simply edit the feature code, hit save, & the coldtype program above with automatically update.\n\nIf you want to address glyphs in a UFO directly by their glyph names, you can also load a ``defcon.Font`` directly, as an alternate representation of the UFO source. (``DefconFont`` is provided by coldtype as an alternate name for ``defcon.Font``) This method skips any typesetting code and uses the glyphs in the UFO as pens, via the helper method ``glyph`` provided by ``P`` (which records a ``defcon.Glyph`` to the given pen).\n\n.. code:: python\n\n    ufo = DefconFont(\"assets/ColdtypeObviously_BlackItalic.ufo\")\n\n    @renderable((500, 500), watch=[ufo.path])\n    def defcon_monitor(r):\n        return (P()\n            .glyph(ufo[\"C\"])\n            .scale(0.5)\n            .align(r)\n            .f(0))\n\n.. image:: /_static/renders/type_design_defcon_monitor.png\n    :width: 250\n    :class: add-border\n\n`N.B.` Rather than passing the ``ufo`` object directly to the ``watch=`` argument, we’ve passed it’s ``.path`` property — in the first example we passed the ``Font`` object directly, but coldtype knows how to handle that natively. For anything other than a ``Font``, you can pass its filesystem representation, meaning you can monitor any file on your computer.\n\n.. code:: python\n\n    generic_txt = Path(\"docs/tutorials/scratch.txt\")\n\n    @renderable((800, 200), watch=[generic_txt])\n    def txt(r):\n        return P(\n            StSt(\n                \"> \" + generic_txt.read_text() + \" <\",\n                \"assets/RecMono-CasualItalic.ttf\", 50)\n                .f(0.25)\n                .align(r))\n\n.. image:: /_static/renders/type_design_txt.png\n    :width: 400\n    :class: add-border"
  },
  {
    "path": "examples/.gitignore",
    "content": "Adobe Premiere Pro Auto-Save"
  },
  {
    "path": "examples/alphabet.py",
    "content": "from coldtype import *\n\nglyphs = \"abcdefghijklmnopqrstuvwxyz0123456789!.,\"\n\n@renderable(\"letter\", bg=1, fmt=\"pdf\")\ndef alphabet(r):\n    s = Scaffold(r.inset(40)).numeric_grid(6, 7)\n    return (P().enumerate(glyphs, lambda x:\n        StSt(x.el, Font.JBMono(), 60, wght=1)\n            .align(s[x.i])\n            .f(0)))\n"
  },
  {
    "path": "examples/animations/808.py",
    "content": "# 808 animation\n# 📽 You can view this code as an animation here: https://vimeo.com/479376752 📽\n\nfrom coldtype import *\nfrom coldtype.fx.skia import phototype\n#from coldtype.warping import warp\n\nfrom fontTools.ufoLib import UFOReader\n\n# This is the \"logo font\" for Coldtype, and it's packaged with the library itself\n\nobvs = Font.ColdtypeObviously()\n\n# Here the `MidiTimeline` comes into play — this is a class that parses midi files and converts the native time values to more useful frame-based time-values, based on a frame-per-second (`fps`) value.\n\n# This is also useful to load before the render function, because this MIDI data doesn’t change once our program is loaded.\n\nwav = download(\"https://coldtype.xyz/examples/media/808.wav\", ººsiblingºº(\"media/808.wav\"))\n\nmidi = MidiTimeline(\n    ººsiblingºº(\"media/808.mid\")\n    , duration=120\n    , bpm=120\n    , fps=30)\n\nar = {\n    \"KD\": [5, 50],\n    \"CW\": [15, 75],\n    \"HT\": [10, 10],\n    \"RS\": [5, 5],\n    \"SD\": [10, 40],\n    \"TM\": [5, 10]\n}\n\n# I like to keep things like logos in UFO source files, since they aren’t really typographic, so you don’t need to load them as fonts. Here we load a ufo of logos via `UFOReader.getGlyphSet`, which makes keyed lookups of vectors very easy.\n\nlogos = UFOReader(\"assets/logos.ufo\").getGlyphSet()\n\n# OK, here’s the main render function. To start this off, we'll define variables for `kick` and `cowbell`, since we'll be referencing those when we build the initial text lockup in the next code block.\n\n# The `fv` method is a little cryptic, but we’re looking for `(f)rame-(v)alues` for given MIDI notes, the `[36]` and `[47]` respectively. (Drumkits in Ableton Live usually begin on 36, so that’s usually where you’ll find the kick when reading a MIDI file generated by Ableton.)\n\n@animation(timeline=midi, audio=wav, bg=0)\ndef drummachine(f):\n    drums = f.t\n    kick = drums.ki(36)\n    cowbell = drums.ki(47)\n\n    # Now we can build the initial `Style` specification, using the MIDI values for kick and cowbell to control the tracking (`tu`), and the `wdth` of the variable font, via the `.ease()` function available on the object returned from an `.fv` call.\n\n    # We can also re-kern the T/Y for this particular use, since the text is so big, and when it gets stroked later on, we can avoid having a too-large visual mass in the composition. (Also it’s fun to demonstrate that you can easily re-kern fonts with the `kp=` keyword and a dictionary of glyph-name pairs. (`kp` stands for kern-pairs.))\n\n    style = Style(obvs,\n        390,\n        tu=cowbell.adsr(ar[\"CW\"], r=(-150, 400)),\n        wdth=cowbell.adsr(ar[\"CW\"], r=(1, 0.75)),\n        ro=1,\n        r=1,\n        kp={\"T/Y\":-25})\n\n    # Now with the `style` variable settled, we can construct a multi-line text lockup with the `StSt` class, by passing in a rectangle to hold the lockup, then the text itself, and the style object we created above.\n\n    # We can also set the leading of the multi-line setting here, by specifying `leading=` as a function of the kick signal.\n    \n    pens = (StSt(\"COLD\\nTYPE\", style,\n        leading=kick.adsr(ar[\"KD\"], r=(10, 50)))\n        .align(f.a.r))\n\n    # So now we’ve got the lockup, and we move from _building_ the text to _messing_ with it, since we converted from the \"text\" realm to the \"vector\" realm with that `.pens()` call above. This is analogous to hitting \"Convert to Outlines\" in Illustrator (except in this case, if we want to change the text later, it’s easy).\n\n    # Anyway, the point is now we have a structured representation of the text that we can query and modify, kind of like manipulating a DOM via css or js if you're familiar with web tech.\n\n    # To start, let’s visualize the snare hits by shearing the line composition & rotating the two letters that correspond to where the snares hit in an 8-count. That's a fancy way of saying, the eight letters here correspond to the 8 eighth-notes in the bar, so we want to modify letters 3 and 7 (aka `P` and `L`), which correspond to the snare hits.\n\n    # A few notes:\n\n    # - `index` allows you to modify a nested pen value in-place as a set of contours with a callback function (aka a `lambda`). Basically, the `index` function first \"explodes\" the glyph into all its component contours (in the P’s case, that’s the outer shape & the counter shape), and then gives you an opportunity to modify just the specified contour (at the \"index\") before reassembling the contours into the letter (so the counter is still a counter and not just another filled-in shape). That’s how we’re able to keep the counter of the P frozen in place. If we got rid of the `index` call and instead rotated the P glyph itself (ala `pens[1].find_(glyphName=\"P\").rotate(rim.ease()*-270)`), then the counter shape would also rotate.\n\n    snare = drums.ki(40)\n    se, si = snare.adsr(ar[\"SD\"], find=1)\n\n    if si == 0: # the first snare hit\n        pens[0].translate(-150*se, 0)\n        pens[1].translate(150*se, 0)\n        pens[0].find_(glyphName=\"L\").rotate(se*-270)\n    else: # the second snare hit\n        pens[0].translate(150*se, 0)\n        pens[1].translate(-150*se, 0)\n        pens[1].find_(glyphName=\"P\").index(0, lambda p: p.rotate(se*270))\n\n    # Whew, ok that was a little complicated. Now let’s do something similar with `index` on the P, but this time rotate just the counter shape when the second rimshot hits (we can ignore the first rimshot b/c it hits at the same time as a hi-hat, which we'll visualize in a second).\n\n    rim = drums.ki(39)\n    re, ri = rim.adsr(ar[\"RS\"], rng=(0, -270), find=1)\n\n    if ri == 1:\n        (pens[1]\n            .find_(glyphName=\"P\")\n            .index(1, lambda p: p.rotate(re)))\n\n    # Wouldn’t it be cool if the letters corresponding to the kicks scaled up whenever the kick hit? That’s what’s happening here, along with a more programmer-y idiom, i.e. unpacking a tuple to the `line, glyph`. This is just a way of abbreviating a longer `if-else` statement that would contain redundant code.\n\n    ke, ki = kick.adsr(ar[\"KD\"], rng=(1, 1.5), find=1)\n    line, glyph = (0, \"C\") if ki == 0 else (1, \"Y\")\n    (pens[line]\n        .find_(glyphName=glyph)\n        .scale(ke))\n\n    # OK, on to the hi-hats. Here we get the hat signal from the midi, with an even preverb-reverb (that’s the `[10, 10]` bit), because we want to mimic the regular action of a drummer hitting a hi-hat.\n\n    hat = drums.ki(43)\n    he, hi = hat.adsr(ar[\"HT\"], find=1)\n\n    # When the first hat hits, let’s move the counter in the O to the right.\n\n    if hi == 0:\n        (pens[0].find_(glyphName=\"O\")\n            .index(1, lambda p: p.translate(80*he, 0)))\n\n    # And when the second hat hits, let’s move the counter of the D in the first line, this time translating it down & then rotating it, to make it seem like it’s falling and then bouncing back up from the bottom of the outer shape.\n\n    elif hi == 1:\n        (pens[0].find_(glyphName=\"D\")\n            .index(1, lambda p: p.translate(-30*he, -100*he).rotate(he*110)))\n\n    # And when the third and fourth hats hit, let’s move the left and right sides of the T crossbar, via the `indices` function, which lets you adjust the x and y values of a certain set of points (at the given indices) directly via a callback.\n\n    elif hi == 2:\n        pens[1].find_(glyphName=\"T\").indices(range(0, 7), lambda p: p.o(-150*he, 0))\n    elif hi == 3:\n        pens[1].find_(glyphName=\"T\").indices(range(26, 35), lambda p: p.o(150*he, 0))\n\n    # Ok last hat! Here we exaggerate the horizontality of the E counters with the same `indices` function.\n\n    elif hi == 4:\n        (pens[1].find_(glyphName=\"E\")\n            .indices(range(10, 15), lambda p: p.o(-35*he, 0))\n            .indices(range(23, 30), lambda p: p.o(-75*he, 0)))\n\n    # The last visualization is the tom-tom hit. Here we can just nudge up the outer contour of the O in the first line.\n\n    tom = (drums.ki(50)\n        .adsr(ar[\"TM\"], rng=(0, -80)))\n\n    (pens[0].find_(glyphName=\"O\").index(0, lambda p: p.translate(0, tom)))\n\n    # And a little branding: load the Goodhertz logo from the ufo via `glyph`\n\n    ghz_logo = (P()\n        .glyph(logos[\"goodhertz_logo_2019\"])\n        .scale(0.2)\n        .align(f.a.r, y=\"mny\")\n        .translate(0, 100)\n        #.ch(warp(None, speed=f.e(\"l\", 1, rng=(0, 3)), rz=3, mult=50))\n        .skew(cowbell.adsr(ar[\"CW\"], rng=(0, 0.5))))\n\n    # Now we return the data we’ve manipulated to the renderer. This is also where we apply the finishing touches to the `COLD\\nTYPE` lockup, by reversing the lines so that the the first line is last (meaning it shows up on top, which is nice for when the C gets really big), and then by applying an `understroke`, which interleaves stroked copies of each letter in the composition, giving us a classic look that we can hit with a high-contrast `phototype` simulation. And then we’re done!\n\n    return P(\n        ghz_logo.f(hsl(0.9, 0.55, 0.5)),\n        (pens.fssw(1, 0, 15, 1)\n            .reverse()\n            .translate(0, 100)\n            .ch(phototype(f.a.r, cut=190, cutw=8))))"
  },
  {
    "path": "examples/animations/_audio.py",
    "content": "from coldtype import *\nfrom coldtype.timing.audio import Wavfile\nfrom coldtype.fx.skia import phototype\n\n\"\"\"\nYou'll need to `pip install soundfile` in yourt virtualenv to get this to work\n\"\"\"\n\naudio = Wavfile(\"examples/animations/media/coldtype.wav\")\nobvs = Font(\"assets/ColdtypeObviously.designspace\")\n\n@animation(timeline=audio.framelength, bg=0, audio=audio.path)\ndef render(f):\n    amp = audio.amp(f.i)\n    return (StSt(\"COLDTYPE\", obvs, 700,\n            tu=-50+150*(0.2+pow(amp,2)*5),\n            rotate=5+10*amp,\n            wdth=0,\n            r=1,\n            ro=1)\n        .align(f.a.r)\n        .fssw(hsl(0.9, s=0.6, l=0.4), 1, 20, 1))"
  },
  {
    "path": "examples/animations/_drumsolo.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\naudio = __sibling__(\"media/68.wav\")\nmidi = MidiTimeline(\n    __sibling__(\"media/68.mid\")\n    , bpm=151)\n\n@animation(timeline=midi, bg=hsl(0.4, 0.8, l=0.2), render_bg=1, audio=audio)\ndef drumsolo(f):\n    d = lambda notes, a, r: f.t.ki(notes).adsr([a, r])\n    lk1 = {\n        \"O\": d([36, 38], 5, 50),\n        \"M\": d([42, 62, 63], 3, 20),\n        \"U\": d([60, 61, 64], 3, 10),\n        \"H\": d([81, 93, 94, 98], 3, 10),\n        \"R\": d([49, 50, 65, 71], 3, 20),\n        \"D\": d([72, 73, 74], 3, 50),\n        \"S\": d([52, 54, 86], 3, 50),\n        \"P\": d([51], 3, 350)\n    }\n\n    return (Glyphwise(\"DRUM\\nSHOP\", lambda g: [\n        Style(Font.MutatorSans(), 350),\n        dict(\n            wdth=lk1.get(g.c, 0),\n            wght=0.25*lk1.get(g.c, 0)\n        )])\n        .lead(20)\n        .xalign(f.a.r, tx=0)\n        .align(f.a.r, tx=0)\n        .f(1)\n        .pen()\n        .ch(phototype(f.a.r,\n            blur=2, cut=190, cutw=25,\n            fill=hsl(0.35, 0.8, l=0.75))))\n\nrelease = drumsolo.export(\"h264\",\n    audio=__sibling__(\"media/68.wav\"),\n    vf=\"eq=brightness=0.0:saturation=1.5\",\n    loops=2)"
  },
  {
    "path": "examples/animations/_simple.py",
    "content": "from coldtype import *\n\n@animation(timeline=Timeline(120, 30))\ndef simple(f):\n    try:\n        x, y = f.rec[\"cursor\"].get(str(f.i))\n    except:\n        x, y = 0, 0\n    \n    out = P().enumerate(f.rec[\"cursor\"], lambda x:\n        P().oval(Rect.FromCenter(x.el, 10)).f(0 if x.i == 0 else hsl(x.i*0.01, 1, 0.8)))\n    \n    return P(\n        #(P().rect(f.a.r.inset(f.e(\"eeio\", r=(250, 500))))\n        #    .f(hsl(0.65))),\n        out,\n        (P().oval(Rect.FromCenter((x, y), 100)).fssw(-1, 0, 1))\n        )\n"
  },
  {
    "path": "examples/animations/access_frame.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\n@animation(Rect(540, 540), bg=1)\ndef numbers(f:Frame):\n    # Do an inline rasterization\n    # which returns a skia.Image, which can do lots\n    # of things\n    # https://github.com/kyamagu/skia-python/blob/main/notebooks/Python-Image-IO.ipynb\n\n    skia_image = (StSt(str(f.i), Font.JBMono(), 300)\n        .align(f.a.r)\n        .chain(rasterized(f.a.r, wrapped=False)))\n    \n    print(type(skia_image)) # skia.Image\n\n    # to return it to the standard coldtype renderer,\n    # you’ll need to wrap it with a SkiaImage (from coldtype.raster)\n    \n    return SkiaImage(skia_image)\n\n\n# alternate method — access disk-rendered frames from first animation (only works if you render all the frames of the first animation, by hitting the 'a' key with the viewer open)\n\n@animation(Rect(540, 540), bg=1)\ndef numbers_from_rendered(f:Frame):\n    path = numbers.pass_path(f.i)\n    if path.exists():\n        print(type(path)) # pathlib.Path\n        return SkiaImage(path)"
  },
  {
    "path": "examples/animations/adsr.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nat = AsciiTimeline(2, 30, \"\"\"\n                               <\n[0       ]\n    [1   ]\n                [2 ]\n                        [3 ]\n            snare\n\"\"\")\n\n@animation((1080, 1080), timeline=at, bg=1, render_bg=1)\ndef adsr(f):\n    # line1 is a \"standard\" Glyphwise application\n    # where the position of the letters is constantly\n    # changing, since the variations are changing\n\n    line1 = (Glyphwise(\"COLD\", lambda g:\n        Style(Font.MutatorSans(), 350\n            , wght=at.ki(f\"{g.i}\").adsr([5, 10], [\"sei\", \"ceo\"])\n            , wdth=at.ki(f\"{g.i}\").adsr([5, 50], [\"eei\", \"eeo\"])))\n        .align(f.a.r.take(0.5, \"N\"), tx=1))\n    \n    # line2 is non-standard, in that two values are\n    # returned in the Glyphwise lambda: a \"base\" style\n    # and a dict of modifications, so that the base\n    # style is used to position the letters, and then\n    # the modifications change the letters without\n    # repositioning them\n    \n    line2 = (Glyphwise(\"TYPE\", lambda g:\n        [Style(Font.MutatorSans(), 350), dict(\n            wght=at.ki(f\"{g.i}\").adsr([5, 30], [\"sei\", \"ceio\"], dv=1, rs=1),\n            wdth=at.ki(f\"{g.i}\").adsr([5, 30], [\"eei\", \"eeio\"], dv=0.25, rs=1))])\n        .align(f.a.r.take(0.5, \"S\"), tx=0)\n        .removeOverlap())\n    \n    # now we can put them together\n    # and add a center line\n\n    return (P(line1, line2)\n        .append(P(f.a.r\n            .take(at\n                .ki(\"snare\")\n                .adsr(rng=(4, 100)), \"CY\")\n            .inset(-20, 0)))\n        .fssw(-1, 0, 2))"
  },
  {
    "path": "examples/animations/adsr_ascii.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(1, 30, \"\"\"\n                           <\nT           T           T\n\"\"\")\n\n@animation((1080, 1080), timeline=at, bg=0)\ndef choreography(f):\n    v = at.ki(\"T\").adsr([8, 110])\n\n    return (StSt(\"T\", Font.MutatorSans(), 500\n        , wght=v)\n        .align(f.a.r)\n        .f(1))"
  },
  {
    "path": "examples/animations/alphabet.py",
    "content": "from coldtype import *\n\ntl = Timeline(26, fps=18)\n\n@animation(rect=(1080, 1080), timeline=tl, bg=0)\ndef render(f):\n    pe = f.e(e:=\"qeio\", 1)\n    return (P(\n        StSt(chr(65+f.i), Font.MutatorSans()\n            , f.e(e, r=(500, 750))\n            , wdth=1-pe\n            , wght=pe)\n            .fssw(-1, hsl(pe, s=0.6, l=0.6), 3)\n            .align(f.a.r, ty=1)\n            .translate(0, 50)\n            .removeOverlap(),\n        StSt(\"{:02d}\".format(f.i), Font.RecursiveMono(), 24, wdth=1)\n            .pen()\n            .align(f.a.r.take(150, \"mny\"), tx=0)\n            .f(hsl((1-pe)+0.5))))"
  },
  {
    "path": "examples/animations/alternate_glyphs.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(3, 30, \"\"\"\n                            <\n    [ss06      ]\n           [ss07        ]\n\"\"\")\n\n@animation((1400, 540), timeline=at, bg=1, render_bg=1)\ndef scratch(f):\n    return (StSt(\"alter-\\nnates\", \"SFCompactItalic\", 200\n        , ss06=at.ki(\"ss06\").on()\n        , ss07=at.ki(\"ss07\").on())\n        .align(f.a.r))\n"
  },
  {
    "path": "examples/animations/ascii_choreography.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nat = AsciiTimeline(3, 30, \"\"\"\n                                                <\n[0     ][1     ][2     ][3     ]\n[0w        ]    [2w        ]\n        [1w        ]    [3w         ]\n                                  [ro   ]\n                                   [tu     ]\n\"\"\")\n\n@animation((1080, 1080), timeline=at, bg=hsl(0.9, 1, 0.9))\ndef choreography(f):\n    letter = at.ki(list(\"0123\"))\n    li, lidx = letter.e(find=1)\n\n    return (Glyphwise(\"TYPE\", lambda g:\n        Style(Font.MutatorSans(), 200,\n            wght=at.ki(g.i).e(),\n            wdth=at.ki(f\"{g.i}w\").e(\"qeio\", 1)))\n        .track(at.ki(\"tu\", f.i).e(r=150))\n        .align(f.a.r)\n        .f(hsl(0.7, 1))\n        .mapv(lambda i, p: p\n            .rotate(at.ki(\"ro\", f.i-i).e(\"eeio\", 0, r=-360)))\n        .centerPoint(f.a.r, (lidx, \"tyC\"), i=li)\n        .scale(letter.e(r=(1,4)), pt=(lidx, \"tyC\")))"
  },
  {
    "path": "examples/animations/ascii_keyframe_positions.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(2, \"\"\"\n                                                         <\nA    A      B     B       C     C         D        D\n        E             F              G                H\n\"\"\")\n\nr = Rect(1000)\ns = Scaffold(r).numeric_grid(4)\n\nrs = dict(\n    keyframes={\n        \"A\": dict(r=s[\"0|3\"].r, ro=0, wght=0),\n        \"B\": dict(r=s[\"2|0\"].r, ro=0, wght=1),\n        \"C\": dict(r=s[\"0|1\"].r, ro=90, wght=0.5),\n        \"D\": dict(r=s[\"3|2\"].r, ro=0, wght=1)})\n\ntxt = dict(\n    keyframes={\n        \"E\": dict(txt=\"A\"),\n        \"F\": dict(txt=\"B\"),\n        \"G\": dict(txt=\"C\"),\n        \"H\": dict(txt=\"D\")})\n\n@animation(r, tl=at, bg=1)\ndef scratch(f):\n    kfs1 = f.t.kf(**rs)\n    kfs2 = f.t.kf(**txt)\n\n    return (StSt(kfs2[\"txt\"], Font.MuSan(), 100\n        , wght=kfs1[\"wght\"])\n        .f(1)\n        .align(kfs1[\"r\"])\n        .insert(0, P(kfs1[\"r\"].inset(10)).f(0))\n        .rotate(kfs1[\"ro\"])) + s.borders()"
  },
  {
    "path": "examples/animations/ascii_keyframes.py",
    "content": "from coldtype import *\nfrom coldtype.css import *\n\nat = AsciiTimeline(1, \"\"\"\n                                            <\n                ~i                   ~o\n    A        A      B            B\n    C     C            D        D\n                ~x                   ~y\n\"\"\", keyframes={\n    \"A\": dict(fontSize=100),\n    \"B\": dict(fontSize=250),\n}, eases={\n    \"i\": cubicBezier(0.25,0.1,0.25,3.5),\n    \"o\": \"qeio\"\n})\n\n@animation(tl=at, bg=0)\ndef css1(f):\n    return [\n        (StSt(\"OK\", Font.MutatorSans(), **{\n            **f.t.kf(),\n            **f.t.kf(\n                keyframes=dict(C=dict(wght=0), D=dict(wght=1)),\n                eases=dict(x=\"eeo\", y=\"eeo\")),\n            **f.t.kf(\n                keyframes=dict(A=dict(wdth=1), B=dict(wdth=0)),\n                eases=dict(i=\"sei\", o=\"eei\"))})\n            .align(f.a.r)\n            .f(1))]"
  },
  {
    "path": "examples/animations/ascii_keyframes2.py",
    "content": "from coldtype import *\nfrom coldtype.css import *\n\nr = Rect(1080)\n\nat = AsciiTimeline(1, \"\"\"\n                                            <\n                ~i                   ~o\n    A        A      B            B\n    C     C            D        D\n                ~x                   ~y\n\"\"\")\n\nr1s = dict(\n    keyframes={\n        \"A\": dict(r1=r.take(200, \"SW\")),\n        \"B\": dict(r1=r.take(300, \"NE\"))},\n    eases={\"i\": \"eeo\", \"o\": \"eei\"})\n\nr2s = dict(\n    keyframes={\n        \"C\": dict(r2=r.take(300, \"NW\"), f=hsl(0)),\n        \"D\": dict(r2=r.take(200, \"SE\"), f=hsl(0.1))},\n    eases={\"x\": \"seio\", \"y\": \"seio\"})\n\n@animation(r, tl=at, bg=0)\ndef kf(f):\n    r1 = f.t.kf(**r1s)\n    r2 = f.t.kf(**r2s)\n    return P(r1[\"r1\"]).f(1) + P(r2[\"r2\"]).f(r2[\"f\"])"
  },
  {
    "path": "examples/animations/ascii_keyframes_entrance.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(2, \"\"\"\n                                        <\nN         W                    W\nA         B         B          A\n   ~i                    ~o\nC           D     D            E\n\"\"\")\n\n@animation((1080, 540), tl=at, bg=0, release=lambda x: x.gifski())\ndef keyframes(f):\n    def variate(x):\n        fi = f.i - x.i\n        wdth = at.kf(fi=fi\n            , keyframes=dict(N=0, W=1)\n            , eases=dict(i=\"eio\", o=\"eei\"))\n        return Style(Font.ColdObvi(), 100, wdth=wdth)\n\n    def animate(i, p):\n        fi = f.i - i*1\n        ty = at.kf(fi=fi\n            , keyframes=dict(A=-360, B=0)\n            , eases=dict(i=\"eeo\", o=\"eeio\"))\n        r = at.kf(fi=fi\n            , keyframes=dict(C=360, D=0, E=-360*2)\n            , eases=dict(i=\"eeio\", o=\"seio\"))\n        p.t(0, ty if i%2 != 0 else -ty).rotate(r)\n\n    return (Glyphwise(\"COLDTYPE\", variate)\n        .align(f.a.r)\n        .mapv(animate)\n        .reverse()\n        .fssw(1, 0, 9, 1))"
  },
  {
    "path": "examples/animations/ascii_pixels.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import precompose\n\nat = AsciiTimeline(1, 18, \"\"\"\n                                <\n0       1       2       3   4\n\"\"\")\n\n@animation((1080, 1080/2), timeline=at, bg=hsl(0.6, 1, 0.7))\ndef pixellation(f):\n    return (StSt(\"PIXEL\", \"Times New Roman\", 460, tu=250)\n        .f(1)\n        .scale(0.5, 1)\n        .align(f.a.r)\n        .map(lambda i, p: p\n            .ch(precompose(f.a.r\n                , scale=at.ki(i).adsr([5, 25], [\"qeio\", \"l\"], r=(0.25, 0.015))))))\n"
  },
  {
    "path": "examples/animations/ascii_simple.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nat = AsciiTimeline(4, \"\"\"\n                                <\n[1   ]    [1       ]\n            [0          ]\n                [2         ]\n                    [wght     ]\n\"\"\")\n\n@animation((1080, 540), timeline=at)\ndef ascii(f):\n    return (Glyphwise(\"AAA\", lambda g:\n        Style(Font.MutatorSans(), 120,\n            wdth=at.ki(g.i).io(8),\n            wght=at.ki(\"wght\").io(10)\n            ))\n        .align(f.a.r, ty=1)\n        .mapv(lambda i, p: p\n            .scale(at.ki(i).io(8, r=(1, 1.35)))))\n"
  },
  {
    "path": "examples/animations/ascii_twostep.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nat = AsciiTimeline(1, \"\"\"\n                                                              <\n    [s                                                    ]\n            [a                               ]\n                      [b                     ]\n                                [c                        ]\n\"\"\")\n\n@animation((1080, 540), timeline=at, bg=1, render_bg=1)\ndef twostep(f):\n    return (Glyphwise(\"COLD\\nTYPE\", lambda g:\n        Style(Font.ColdtypeObviously(), 100,\n            wdth=(at.ki(\"a\" if g.l < 1 else \"b\").io(10)),\n            tu=at.ki(\"c\").io(8, r=(0, 500))))\n        .lead(10)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .scale(at.ki(\"s\").io(20)*2)\n        .f(0)\n        .layer(1,\n            lambda p: P()\n                .rect(p.ambit(tx=1, ty=1).inset(-50))\n                .fssw(-1, 0, 2)\n                .___null()))"
  },
  {
    "path": "examples/animations/ascii_words.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(1, 30, \"\"\"\n                                                                                        <\n            [.big        ]\n*Oh,        hello.        • \n                            *This       ≈some           ≈t  +e  +x  +t +.            •  \n                                  is            timed\n\"\"\")\n\ndef styler(c):\n    if \"big\" in c.styles:\n        return c.text.upper(), Style(Font.MutatorSans(), 100, wght=1)\n    else:\n        return c.text, Style(Font.RecursiveMono(), 100)\n\n@animation((1080, 540), tl=at, offset=0)\ndef timedWords(f):\n    return (f.t.words.currentGroup()\n        .pens(f, styler)\n        #.printh()\n        .cond(f.t.words.styles.ki(\"big\").on(),\n            lambda p: p.f(hsl(0.9)))\n        .lead(30)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .removeFutures())\n\n# RENDERABLES = [\n#     timedWords.viewOffset(30)\n# ]"
  },
  {
    "path": "examples/animations/avoidance.py",
    "content": "from coldtype import *\nimport numpy as np\n\n# after https://editor.p5js.org/creativecoding/sketches/ncNWaEkTw\n\nminMouseDist = 20000\nwords = \"\"\"\nJust getting\nout of the\nway\n\"\"\"\n\n# https://stackoverflow.com/questions/21030391/how-to-normalize-a-numpy-array-to-a-unit-vector\n\ndef normalized(a, axis=-1, order=2):\n    l2 = np.atleast_1d(np.linalg.norm(a, order, axis))\n    l2[l2==0] = 1\n    return a / np.expand_dims(l2, axis)\n\ndef displacer(r, c):\n    txt = (StSt(words, \"Times\", 100)\n        .lead(20)\n        .align(r)\n        .collapse())\n    \n    for g in txt:\n        p = g.ambit(tx=1, ty=1).psw\n        mouseDist = Line(p, c).length()\n        p2 = np.array([p.x - c.x, p.y - c.y])\n        distDifference = minMouseDist - mouseDist\n        \n        p2x, p2y = (normalized(p2) * math.sqrt(distDifference))[0]\n        g.t(p2x, p2y)\n\n    return P(\n        P().oval(Rect.FromCenter(c, 50)).f(1),\n        txt.f(1))\n\n#@ui(bg=0)\ndef avoid_ui(u):\n    return displacer(u.r, u.c)\n\n@animation(tl=Timeline(500, 30), bg=0, render_bg=1)\ndef avoid_anim(f):\n    o = P().oval(f.a.r.take(f.e(\"eeio\", 7, r=(900, 100)), \"CX\").square())\n    c, _ = o.point_t(f.e(\"seio\", 3))\n    return displacer(f.a.r, c)"
  },
  {
    "path": "examples/animations/banner.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nkfs = [\n    dict(wdth=0, rotate=0, tu=300),\n    dict(wdth=1, rotate=15, tu=-150),\n    dict(wdth=0.25, rotate=-15, tu=350),\n    dict(wdth=0.75, rotate=0, tu=-175),\n    dict(wdth=0.5, rotate=25, tu=100),\n]\n\n# Demonstrating slight ambiguity\n# in single-frame vs. block syntax\n# i.e. equivalent when multiplier=1\n# but different at multiplier>1\n\nat = AsciiTimeline(3, 30, \"\"\"\n                                        <\n[0   ]  [1   ]  [2   ]  [3   ]  [4   ]   \nA    A  B    B  C    C  D    D  E    E\n\"\"\", {\n    \"0\": kfs[0], \"1\": kfs[1], \"2\": kfs[2],\n    \"3\": kfs[3], \"4\": kfs[4],\n    \"A\": kfs[0], \"B\": kfs[1], \"C\": kfs[2],\n    \"D\": kfs[3], \"E\": kfs[4],\n})\n\n@animation(timeline=at, bg=1, rect=(1500, 300*2))\ndef render(f):\n    return P(\n        StSt(\"COLDTYPE\", Font.ColdObvi(), 250\n            , **at.kf(\"eeo\", lines=(1,))\n            , r=1 , ro=1)\n            .align(f.a.r.take(0.5, \"N\"), tx=0)\n            .fssw(1, 0, 20)\n            .sf(1)\n            .ch(phototype(f.a.r, 1.5, 200, 30, 0)),\n        StSt(\"COLDTYPE\", Font.ColdObvi(), 250\n            , **at.kf(\"eeo\", lines=(2,))\n            , r=1 , ro=1)\n            .align(f.a.r.take(0.5, \"S\"), tx=0)\n            .fssw(1, 0, 20)\n            .sf(1)\n            .ch(phototype(f.a.r, 1.5, 200, 30, 0)))"
  },
  {
    "path": "examples/animations/bitmap_font.py",
    "content": "from coldtype import *\nfrom coldtype.runon import RunonEnumerable\nfrom coldtype.drawbot import tobp # mac-only\n\n# inspired by https://gist.github.com/connordavenport/12cc057798b175782431a883e63386db\n\n@animation((1080, 540), bg=0, tl=60)\ndef bitmap_font(f):\n    txt = (StSt(\"COLD\\nTYPE\", Font.ColdtypeObviously(), 250\n        , wdth=f.e(\"eeio\")\n        , tu=f.e(\"eeio\", rng=(50, 350))\n        , leading=30)\n        .align(f.a.r)\n        .pen()\n        .chain(tobp))\n\n    def enumerator(x:RunonEnumerable):\n        if txt.pointInside(x.el.r.pc):\n            return P().rect(x.el.r.inset(1))\n    \n    return P().enumerate(f.a.r.grid(50, 25), enumerator).f(1)"
  },
  {
    "path": "examples/animations/blendmode.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n@animation(bg=0, timeline=Timeline(30, 15), render_bg=1)\ndef plus(f):\n    def lockup(adj, fill):\n        return (Glyphwise(\"ABC\", lambda g:\n            Style(Font.MutatorSans(), 750,\n                wght=f.adj(adj-g.i*5).e(\"eeio\", 1),\n                wdth=(fa:=f.adj(adj-5)).e(\"eeio\", 1, rng=(1, 0)),\n                tu=fa.e(\"eeio\", 1, rng=(-250, 0)),\n                ro=1))\n            .mapv(lambda p: p.align(f.a.r, ty=1, tx=1))\n            .pen()\n            .fssw(-1, 1, 10)\n            .ch(phototype(f.a.r,\n                blur=5, cut=f.e(\"seio\", 2, rng=(50, 150)), cutw=15, fill=fill))\n            .blendmode(BlendMode.Plus))\n    \n    return P(\n        lockup(0, hsl(f.e(\"l\"))),\n        lockup(1.25, hsl(f.adj(-5).e(\"l\"))),\n        lockup(3.5, hsl(f.adj(-20).e(\"l\"))))\n\nrelease = plus.export(\"h264\", loops=6)"
  },
  {
    "path": "examples/animations/bounce.py",
    "content": "from coldtype import *\n\n@animation(tl=60, bg=1)\ndef scratch(f):\n    ri = f.a.r.inset(50)\n    \n    a = (StSt(\"COLD\", Font.ColdObvi(), 130, wght=1, wdth=1, fit=ri.w-10, tu=500, tl=500)).scaleToWidth(ri.w).align(ri, \"S\").skew(-1, 0)\n    \n    b = (StSt(\"COLD\", Font.ColdObvi(), 470, wght=1, wdth=0.5, fit=ri.w-10)).scaleToWidth(ri.w).align(ri, \"N\")\n\n    def interp(x):\n        e = f.adj(x.i*-2).e(\"eeo\", 1)\n        return (x.el.copy()\n            .interpolate(e, b[x.i].copy()))\n\n    return P().enumerate(a, interp).f(0)"
  },
  {
    "path": "examples/animations/colrv1_foldit.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(2, 30, \"\"\"\n[fold       ]              <\n              [it        ]\n\"\"\")\n\n@animation((1080, 540/2), timeline=at, bg=0)\ndef test1(f):\n    font = Font.Find(\"Foldit\\[wght\\]\")\n    text = \"Foldit\"\n\n    br = (Glyphwise(text, lambda g: Style(font\n            , fontSize=200\n            , wght=at.ki(\"it\").io(10, [\"eei\", \"eeo\"]) if g.i > 3\n                else at.ki(\"fold\").io(10)))\n            .align(f.a.r, tx=0, ty=0))\n    \n    return P(\n        br,\n        #br.substructure()\n        )\n\nrelease = test1.export(\"h264\", loops=3)"
  },
  {
    "path": "examples/animations/colrv1_nabla.py",
    "content": "from coldtype import *\n\n@animation((1080, 540), tl=30, bg=hsl(0.7, 0.4, 0.4))\ndef nabla1(f):\n    return (Glyphwise(\"COLRv1\", lambda x:\n        Style(\"Nabla-Regular-VariableFont_EDPT,EHLT\", 300\n            , EDPT=f.adj(x.i*20).e(\"eei\", r=(0.1, 1))))\n        .align(f.a.r, tx=0, ty=0)\n        .translate(0, -30))"
  },
  {
    "path": "examples/animations/countdown.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom coldtype.fx.motion import filmjitter\n\nat = AsciiTimeline(3, 18, \"\"\"\n                                <\nC   O   L   D   T   Y   P   E\n\"\"\").inflate()\n\nrs = random_series(seed=8)\n\n@animation((1080, 800)\n    , tl=at\n    , bg=0\n    , composites=1\n    , render_bg=1\n    , release=lambda x: x.export(\"h264\", loops=4))\ndef countdown(f:Frame):\n    c = at.current()\n\n    def postprocess(result):\n        return P(\n            P(f.a.r).f(hsl(0.7, 0.7, 0.8)),\n            result.ch(luma(f.a.r, hsl(0.7, 0.7, 0.4))))\n\n    return (P(f.a.r)\n        .ch(spackle(xs=0.35, ys=0.35, cut=230, fill=bw(0), base=f.i))\n        .ups()\n        .insert(0, P(f.a.r).f(1, 0.1))\n        .insert(0, f.last_render(\n            filmjitter(f.e(\"l\"), speed=(50, 50), scale=(3, 5))))\n        .append(StSt(c.name, Font.MutatorSans()\n            , fontSize=c.e(\"sei\", 0, rng=(100, 1200))\n            , wdth=c.e(\"sei\", 0)\n            , wght=rs[c.idx+1]*0.25\n            , ro=1)\n            .fssw(1, 1, 13)\n            .align(f.a.r, tx=1, ty=1)\n            .blendmode(BlendMode.Xor))\n        .ch(phototype(f.a.r\n            , cut=139, blur=2.5, cutw=20, fill=1))\n        .postprocess(postprocess))"
  },
  {
    "path": "examples/animations/custom_ease.py",
    "content": "from coldtype import *\nfrom coldtype.fx.xray import skeleton\n\n@animation(timeline=60, bg=1)\ndef easer(f):\n    ease_curve = P().withRect(1000, lambda r, p: p\n        .moveTo(r.psw)\n        .ioEaseCurveTo(r.pn, 2, 50)\n        .ioEaseCurveTo(r.pse, 21, 30))\n    \n    return P(\n        ease_curve.copy()\n            .scaleToWidth(f.a.r.w-50)\n            .align(f.a.r)\n            .layer(\n                lambda p: p.fssw(-1, hsl(0.9), 2),\n                lambda p: p.ch(skeleton(scale=1.25)).s(hsl(0.65))),\n        StSt(\"COLD\", Font.ColdtypeObviously()\n            , 300\n            , wdth=f.e(ease_curve, 0))\n            .align(f.a.r)\n            .fssw(-1, (0, 0.5), 2))"
  },
  {
    "path": "examples/animations/custom_output.py",
    "content": "from coldtype import *\n\nclass custom_output_animation(animation):\n    def pass_path(self, index=0):\n        return Path(\"custom_output_folder\") / self.name / f\"{self.pass_prefix()}{self.pass_suffix(index)}.{self.fmt}\"\n\n@custom_output_animation(bg=0)\ndef wght(f):\n    return (StSt(\"CUSTOM\\nOUTPUT\", Font.MuSan(), 200, wght=f.e())\n        .align(f.a.r)\n        .f(1))\n"
  },
  {
    "path": "examples/animations/delay.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import color_phototype\n\n\n@animation((1500, 800), timeline=Timeline(60, fps=23.976))\ndef recur(f, depth=0):\n    cold = (StSt(\"COLDTYPE\", Font.ColdObvi()\n            , fontSize=f.e(\"qeio\", r=(800, 100))\n            , wdth=f.e(\"qeio\")\n            , tu=f.e(\"qeio\", r=(-90, -40))\n            , ro=1\n            , r=1)\n        .align(f.a.r)\n        .fssw(1, 0, 23-depth)\n        .ch(color_phototype(f.a.r\n            , blur=2+depth*5\n            , cut=120+depth*5\n            , rgba=[1, 0, 1, 1]))\n        .ups()\n        .blendmode(BlendMode.Luminosity))\n    \n    if depth < 5:\n        cold.insert(0,\n            recur.func(Frame((f.i-4)%recur.duration, f.a)\n                , depth=depth+1))\n    \n    if depth == 0:\n        return cold.ch(color_phototype(f.a.r, blur=3))\n    else:\n        return cold"
  },
  {
    "path": "examples/animations/drumsolo2.py",
    "content": "from coldtype import *\n\naudio = __sibling__(\"media/c78.wav\")\n\nmidi = MidiTimeline(__sibling__(\"media/c78.mid\")\n    , bpm=120\n    , lookup={\n        0: (36, 41), # kicks\n        1: 37, # snare\n        2: 45, # tom-lo\n        3: 47, # tom-hi\n    })\n\n@animation((1080, 540), timeline=midi, bg=0, render_bg=1)\ndef drumloop(f):\n    kicks = f.a.t.ki(0, f.i).index()\n\n    def styler(g):\n        # return an array\n        # — first is style for metrics\n        # - second is mods to style for animation\n        return [Style(Font.MuSan(), 350, tu=100),\n            dict(wdth=f.a.t.ki(g.i).adsr((10, 130)),\n                 wght=f.a.t.ki(g.i).adsr((5, 20), r=(0, 1)))]\n\n    s = hsl(0.3) if kicks == 0 else hsl(0.8)\n\n    return (Glyphwise(\"DRUM\", styler)\n        .align(f.a.r, tx=0)\n        .fssw(-1, s, 4)\n        .sm(0.5))"
  },
  {
    "path": "examples/animations/dswatch.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype, shake\n\n\"\"\"\nSaving a change to UFOs included in the designspace\nfile should automatically update the coldtype window\n\"\"\"\n\nds = Font(\"assets/ColdtypeObviously.designspace\")\n\n@animation(timeline=(120, 23.976), watch=[ds], bg=0)\ndef dswatch(f):\n    return (StSt(\"COLD\", ds, 510\n        , wdth=f.e(1)\n        , tu=250+-450*(f.e(1))\n        , r=1\n        , ro=1)\n        .align(f.a.r)\n        .fssw(0, 1, 5)\n        .chain(shake(5, 2, seed=f.i))\n        .chain(phototype(f.a.r,\n            blur=3,\n            cut=155,\n            cutw=20,\n            fill=1)))"
  },
  {
    "path": "examples/animations/dvd.py",
    "content": "from coldtype import *\n\nfont, fontSize, txt = [\n    [Font.MutatorSans(), 100, \"ABC\"],\n    [\"MDNichrome-V\", 100, \"DVD\"],\n    [\"OhnoFatfaceV\", 180, \"Aa\"],\n    [\"PeshkaV\", 100, \"vari\"],\n    [\"PlakatoDraw\", 150, \"DVD\"]\n][0]\n\nborder = Rect(500, 250)\nspeed = 5\n\ninitial = dict(x=250, y=250, c=0, xs=speed, ys=speed)\n\n@animation(tl=Timeline(300, 48), memory=initial, bg=0)\ndef scratch(f, m):\n    r = f.a.r.inset(10)\n\n    m.x += m.xs\n    m.y += m.ys\n\n    if m.x <= r.x or (r.x + m.x + border.w) >= f.a.r.mxx:\n        m.xs = -m.xs\n        m.c += random()*0.35\n\n    if m.y <= r.y or (r.y + m.y + border.h >= f.a.r.mxy):\n        m.ys = -m.ys\n        m.c += random()*0.35\n    \n    a, b = (r.drop(border.w, \"E\")\n        .drop(border.h, \"N\")\n        .ipos(Point(m.x, m.y)))\n    \n    c = hsl(m.c, 1, 0.8)\n\n    return P(\n        P().oval(border).t(m.x, m.y).fssw(-1, c, 10),\n        (StSt(txt, font, fontSize\n            , fvar_1=a\n            , fvar_0=b\n            )\n            .f(c)\n            .align(border.offset(m.x, m.y), tx=0)))"
  },
  {
    "path": "examples/animations/ec.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(2, \"\"\"\n                                            <\n[A    ]   [A  ]     [A        ]     [A  ]\n            [B              ]\n\"\"\")\n\n@animation((540, 540), tl=at)\ndef scratch(f):\n    return (StSt(\"I\", Font.MuSan(), 300\n        , wdth=f.t.ki(\"B\").e(\"eeio\")\n        )\n        .align(f.a.r, ty=0)\n        .unframe()\n        .rotate(f.t.ki(\"A\").ec(\"eeio\", rng=(0, 90)))\n        .f(0))\n"
  },
  {
    "path": "examples/animations/flyin.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(2, 30, \"\"\"\n                                        <\n    a        a          b        b\n\"\"\")\n\n@animation((1080, 1080), tl=at, bg=1)\ndef scratch(f):\n    a = (StSt(txt:=\"TEXT\"\n        , font:=Font.MuSan()\n        , fs:=200\n        , wght=0\n        , wdth=1)\n        .align(ri:=f.a.r.inset(110), \"N\"))\n\n    b = (StSt(txt, font, fs-20, wght=1, wdth=1).align(ri, \"S\"))\n\n    def interp(x):\n        e = at.kf(keyframes=dict(a=0, b=1), offset=x.e*4)\n        return (x.el.copy() \n            .interpolate(e, b[x.i].copy())\n            .f(hsl(e, 0.9)))\n    \n    return P(a, b, P().enumerate(a, interp))"
  },
  {
    "path": "examples/animations/glyphwise.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nfnt = Font.MutatorSans()\n\n@animation(timeline=Timeline(90, 24), bg=0, render_bg=1)\ndef glyphwise(f):\n    def styler(g):\n        return [\n            Style(fnt, 250, wdth=0.15, tu=f.e(\"seio\", rng=(-100, 300))), # metrics\n            Style(fnt, 250 # animated\n                , wdth=f.adj(-g.i*2).e(\"eeio\", 2)\n                , wght=f.adj(-g.i*3).e(\"seio\", 3)\n                , ro=1\n                , ty=1\n                )]\n\n    # should also work w/o an \\n in between COLD & TYPE\n    return (Glyphwise(\"COLD\\nTYPE\", styler, multiline=1)\n        .xalign(f.a.r, tx=0)\n        .lead(30)\n        .align(f.a.r, tx=0)\n        .reverse(recursive=True)\n        .fssw(1, 0, 7, 1)\n        .ch(phototype(f.a.r, 3, 190, cutw=15)))"
  },
  {
    "path": "examples/animations/glyphwise2_rtl.py",
    "content": "from coldtype import *\n\nfont_zip_url = \"https://github.com/aminabedi68/Estedad/releases/download/7.3/Estedad-v7.3.zip\"\nestedad_variable = Font.UnzipURL(font_zip_url, \"Estedad-FD[KSHD,wght].ttf\", \"Variable\")\n\n@animation((1080, 540), bg=1, tl=30, release=λ.export(\"h264\", loops=4))\ndef kashida(f:Frame):\n    txt = \"مرحبًا\"\n    rh = random_series(seed=1)\n    fs = 200\n\n    return (Glyphwise2(txt,\n        lambda g: Style(estedad_variable, fs, wght=f.e(\"seio\"), KSHD=f.adj(-g.i*10).e(\"seio\")))\n        .mapv(lambda i, p: p.f(hsl(rh[i])))\n        .align(f.a.r, ty=1))\n"
  },
  {
    "path": "examples/animations/glyphwise_keyframes.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nstates = {\n    \"A\": dict(wdth=0, wght=1, rotate=360),\n    \"B\": dict(wdth=1, wght=0, rotate=0),\n    \"C\": dict(wdth=1, wght=1, rotate=0),\n    \"D\": dict(wdth=0, wght=0, rotate=180),\n}\n\nat = AsciiTimeline(2, 30, \"\"\"\n                                <\n[A     ][B     ][C     ][D     ]\n\"\"\", states).shift(\"end\", -8)\n\n@animation((1080, 520), timeline=at, bg=0)\ndef cheee_wild(f):\n    return (Glyphwise(\"COLD\", lambda g: [\n            Style(Font.MuSan(), 270, tu=50, ty=1),\n            at.kf(\"eeio\", f.i-g.i*10)\n        ])\n        .fssw(1, 0, 8, 1)\n        .align(f.a.r, tx=0)\n        .reverse())"
  },
  {
    "path": "examples/animations/glyphwise_wave.py",
    "content": "from coldtype import *\n\nDEBUG = 0\n\n@animation((1080, 1080/2), timeline=30)\ndef cilati_wave(f:Frame):\n    def styler(g:GlyphwiseGlyph):\n        fa = f.adj(g.i*20)\n        return (Style(Font.MuSan(), 270,\n            show_frames=DEBUG,\n            no_shapes=DEBUG,\n            wdth=fa.e(ease:=\"qeio\", 1),\n            wght=fa.e(ease, 1)))\n\n    return (Glyphwise(\"COLD\\nTYPE\".upper(), styler)\n        .xalign(f.a.r)\n        .lead(50)\n        .f(0)\n        .align(f.a.r, tx=0, ty=1))"
  },
  {
    "path": "examples/animations/glyphwise_wave2.py",
    "content": "from coldtype import *\n\n@animation((1080, 1080/2), timeline=50)\ndef fatface_wave(f):\n    return (Glyphwise(\"COLD\", lambda g:\n        (Style(Font.MuSan(),\n            100+(fa:=f.adj(g.i*4)).e(ease:=\"seio\", 1)*150,\n            wdth=fa.e(ease, 1),\n            wght=fa.e(ease, 1),\n            rotate=-15+30*fa.e(ease, 1))))\n        .align(f.a.r, h=200)\n        .f(0))"
  },
  {
    "path": "examples/animations/house.py",
    "content": "from coldtype import *\n\naudio = ººsiblingºº(\"media/house.wav\")\n\nmidi = MidiTimeline(\n    ººsiblingºº(\"media/house.mid\")\n    , bpm=120\n    , duration=60)\n\n@animation(timeline=midi, bg=0.1, audio=audio, release=λ.export(\"h264\", loops=4))\ndef render(f):\n    k = f.t.ki(36).adsr([12, 10])\n    s = f.t.ki(38).adsr([4, 35])\n    c = f.t.ki(48).adsr([0, 50])\n\n    hat = f.t.ki(42).index()\n    hues = (0.6, 0.05) if hat < 2 else (0.75, 0.9)\n\n    style = dict(font=Font.ColdObvi(), fontSize=500, tu=-150, ro=1)\n    \n    return (P(\n        StSt(\"COLD\", style, wdth=1-s*0.5)\n            .f(hsl(hues[0], 0.75, 0.5))\n            .index(1, lambda p: p.rt((hat+1)*-45)),\n        StSt(\"TYPE\", style, tu=-150-100*k, rotate=-8*k)\n            .f(hsl(hues[1], 0.75, 0.5))\n            .index([2, 1], lambda p: p.t(70*c, 0)))\n        .xalign(f.a.r)\n        .stack(30)\n        .align(f.a.r.inset(0, 150))\n        .map(lambda p: p.rp().ssw(0, 10).sf(1))\n        .rotate(5))"
  },
  {
    "path": "examples/animations/interpolate_roughen.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nr = Rect(1080, 1080)\na = P().oval(r.inset(200)).flatten(10).roughen(10, seed=3)\nb = P().oval(r.inset(200)).flatten(10).roughen(2000, seed=1)\n\n@animation(r, timeline=90, bg=hsl(0.7))\ndef cloud(f):\n    return (a.copy().interpolate(f.e(\"eeio\", 1), b)\n        .f(1)\n        .smooth()\n        .ch(phototype(f.a.r, blur=10, cut=210, cutw=3)))\n\nrelease = cloud.export(\"gif\")"
  },
  {
    "path": "examples/animations/ipa_vowels.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom itertools import chain\n\nmedia = ººsiblingºº(\"media/vowels\")\n\nmt = MidiTimeline(media / \"midi2.mid\")\naudio = media / \"midi2.wav\"\n\n# https://en.wikipedia.org/wiki/IPA_vowel_chart_with_audio\n# https://brill.com/page/BrillFontDownloads/Download-The-Brill-Typeface\n\nfont = Font.Find(\"Brill-Bold\")\n\nvowels = [\n    [[\"i\", \"y\"], [\"ɨ\", \"ʉ\"], [\"ɯ\", \"u\"]],\n    [[\"ɪ\", \"ʏ\"], [\"ʊ\"]],\n    [[\"e\", \"ø\"], [\"ɘ\", \"ɵ\"], [\"ɤ\", \"o\"]],\n    [[\"e̞\", \"ø̞\"], [\"ə\"], [\"ɤ̞\", \"o̞\"]],\n    [[\"ɛ\", \"œ\"], [\"ɜ\", \"ɞ\"], [\"ʌ\", \"ɔ\"]],\n    [[\"æ\"], [\"ɐ\"]],\n    [[\"a\", \"ɶ\"], [\"ä\"], [\"ɑ\", \"ɒ\"]],\n]\n\nflat_vowels = list(chain.from_iterable(chain.from_iterable(vowels)))\n\n\"\"\"\nnot used, but a helpful snippet for processing .ogg's and .opus'es\n\"\"\"\ndef process_wikipedia_audio():\n    from pydub import AudioSegment\n    for idx, vowel in enumerate(flat_vowels):\n        file = Path(f\"~/Downloads/_vowels/{vowel}.ogg\").expanduser()\n        if not file.exists():\n            file = Path(f\"~/Downloads/_vowels/{vowel}.opus\").expanduser()\n\n        output = ººsiblingºº(f\"media/vowels/{idx}_{vowel}.wav\")\n        output.parent.mkdir(exist_ok=True)\n        AudioSegment.from_file(file).export(output, format=\"wav\")\n\n#process_wikipedia_audio()\n\nr = Rect(1080).inset(100)\n\nclose = P().m(r.pnw).l(r.pne).ep()\nopen = P().m(open_front:=r.drop(0.55, \"W\").psw).l(r.pse).ep()\nfront = P().m(r.pnw).l(open_front).ep()\nback = P().m(r.pne).l(r.pse).ep()\ncentral = P().m(r.pn).l(open.point_t(0.5)[0]).ep()\n\ndef xbar(t):\n    return P().m(front.point_t(t)[0]).l(back.point_t(t)[0]).ep()\n\nnear_close = xbar(0.165)\nclose_mid = xbar(0.33)\nmid = xbar(0.5)\nopen_mid = xbar(0.66)\nnear_open = xbar(0.66+0.165)\n\ndef v(c, line, t):\n    return (StSt(\"\".join(c), font, 70)\n        .f(hsl(0.17, 0.80, 0.75))\n        .partition(lambda p: p.data(\"glyphCluster\"))\n        .track(20)\n        .align(Rect.FromCenter(line.point_t(t)[0], 1), tx=1)\n        .t(0, 7)\n        .layer(\n            lambda p: P().rect(p.ambit(tx=1, ty=1).inset(-20)).f(0.9).tag(\"knockout\"),\n            lambda p: p.tag(\"symbols\")\n                .map(lambda i, p: p.tag(\"symbol\").data(symbol=c[i]))))\n\ndef vs(cs, line, ts=(0, 0.5, 1.0)):\n    return P().enumerate(cs, lambda x: v(x.el, line, ts[x.i]))\n\nres = (P(\n    vs(vowels[0], close),\n    vs(vowels[1], near_close, [0.15, 0.85]),\n    vs(vowels[2], close_mid),\n    vs(vowels[3], mid),\n    vs(vowels[4], open_mid),\n    vs(vowels[5], near_open),\n    vs(vowels[6], open)))\n\nlines = (P(close, open, front, back, central, close_mid, open_mid)\n    .outline(1)\n    .difference(P(res.copy().find(\"knockout\"))))\n\n@animation(bg=0, tl=mt, audio=audio, release=λ.export(\"h264\", loops=2))\ndef chart(f:Frame):\n    r = f.a.r.inset(100)\n    \n    highlight = P()\n    active_symbols = []\n    current = 0\n\n    for idx, symbol in enumerate(res.find(\"symbol\")):\n        if mt.ki(idx+36).on():\n            highlight.append(P().oval(symbol.ambit(tx=1, ty=0).square(outside=True).inset(-20).offset(0, -5)))\n            active_symbols.append(symbol.data(\"symbol\"))\n            current = idx\n\n    return (P(\n        lines.f(hsl(0.75, 0.90, 0.58))\n            .chain(filmjitter(f.e(\"l\", 4, cyclic=0), 1, scale=(1, 1))),\n        highlight.fssw(-1, hsl(0.75, 1.00, 0.65, 0.8), 10),\n        P(res.find(\"symbols\"))\n            .copy()\n            .chain(filmjitter(f.e(\"l\", 4, cyclic=0), 2, scale=(1, 1))),\n        StSt(\"IPA\\nvowel\\nchart\\nremix\", font, 50)\n            .align(f.a.r.inset(76, 90), \"SW\")\n            .f(hsl(0.17, 0.80, 0.75))\n            .skew(current/len(flat_vowels)/2, 0),\n        StSt(\"\".join(active_symbols[:1]), font, 920)\n            .align(r.drop(0, \"E\"), \"C\", ty=0)\n            #.fssw(1, hsl(0.75, 0.8, 0.6), 2)\n            #.f(hsl(0.75, 0.8, 0.6))\n            .f(1)\n            #.fssw(-1, 1, 6)\n            .t(0, 80)\n            #.blendmode(BlendMode.Cycle(13))\n            .chain(shake(8, 2, seed=f.i//2))\n            .chain(phototype(f.a.r, 3, 90, fill=hsl(0.75, 0.8, 0.8)))\n            .blendmode(BlendMode.Cycle(20))\n            .chain(filmjitter(f.e(\"l\", 4, cyclic=0), 3))\n            ))\n"
  },
  {
    "path": "examples/animations/ives.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nVERSIONS = {\n    2: dict(),\n    3: dict(),\n    4: dict(),\n    5: dict(),\n    6: dict(),\n    7: dict(),\n    8: dict(),\n    9: dict(),\n    10: dict(),\n    11: dict(),\n    12: dict(),\n    13: dict(),\n    14: dict(),\n    15: dict(),\n    16: dict(),\n    17: dict(),\n    18: dict(),\n    19: dict(),\n    20: dict(),\n    21: dict(),\n    22: dict(),\n    23: dict(),\n    24: dict(),\n    25: dict(),\n    26: dict(),\n} #/VERSIONS\n\nd = __VERSION__[\"key\"]\n\nletters = \"COLDTYPE\"*4000\nrsx = random_series(-80, 80, d)\nrsy = random_series(-80, 80, d)\nrsw = random_series(seed=d)\nrswd = random_series(seed=d)\nrsr = random_series(0, 10, d)\nrsa = random_series(-30, 30, d)\n\n@animation((1080, 1080), bg=1, tl=100)\ndef grid_ƒVERSION(f):\n    s = Scaffold.AspectGrid(f.a.r.inset(30), d, d, \"N\")\n    return (P().enumerate(s, lambda x:\n        StSt(letters[x.i], Font.MuSan(), f.adj(rsa[x.i]).e(\"eeio\", 3, rng=(100, 500)), wght=rsw[x.i], wdth=rswd[x.i])\n            .align(x.el)\n            .rotate(int(rsr[x.i])*180+f.adj(rsa[x.i]).e(\"eeio\", 2, rng=(0, 270)), x.el.pc)\n            .translate(rsx[x.i], rsy[x.i])\n            .intersection(P(x.el))\n            .f(1))\n        .insert(0, s.borders().fssw(-1, 1, 5))\n        .ch(phototype(f.a.r, 2, 127, 18, fill=bw(0))))"
  },
  {
    "path": "examples/animations/letters_easing.py",
    "content": "from coldtype import *\n\n# inspired by https://github.com/coldtype/coldtype/discussions/135\n\nletters = \"\".join([f\"{x} \" for x in \"abcdefg<\"])\nat = AsciiTimeline(20, 30, \"<\\n\"+letters).inflate()\n\nease_curve1 = P().withRect(1000, lambda r, p: p\n    .moveTo(r.psw)\n    .boxCurveTo(r.pc, \"NW\", (.95, .65))\n    .boxCurveTo(r.pne, \"SE\", (.75, .95)))\n\nease_curve2 = P().withRect(1000, lambda r, p: p\n    .moveTo(r.psw)\n    .boxCurveTo(r.pc, \"NW\", (.95, .95))\n    .boxCurveTo(r.pne, \"SE\", (.65, .135)))\n\n@animation((1080, 540), timeline=at, bg=1)\ndef letters_easing(f):\n    l = at.current(0).now()\n    \n    e1 = l.e(ease_curve1, 0)\n    e2 = l.e(ease_curve2, 0, rng=(-360, 360))\n\n    w = f.a.r.w + 140\n\n    return (P(\n        ease_curve1.copy()\n            .fssw(-1, hsl(0.6, a=0.5), 4)\n            .scale(0.5, point=(0,0))\n            .align(f.a.r),\n        ease_curve2.copy()\n            .fssw(-1, hsl(0, a=0.5), 4)\n            .scale(0.5, point=(0,0))\n            .align(f.a.r),\n        StSt(l.name, Font.RecMono(), 20)\n            .align(f.a.r.take(100, \"N\")),\n        StSt(l.name.upper(), Font.RecMono(), 250)\n            .align(f.a.r)\n            .f(0)\n            .insert(0, lambda p: P(p.ambit().inset(2))\n                .f(hsl(0.3, a=0.5)))\n            .t(-w/2+w*e1, 0)\n            .rotate(e2)))"
  },
  {
    "path": "examples/animations/linewise.py",
    "content": "from coldtype import *\n\ntxt = \"COLD\\nTYPE\"\n\n@animation((1080, 540), tl=60)\ndef scratch1(f):\n    return (Glyphwise(txt, lambda x:\n        Style(Font.ColdObvi(), 200\n            , wdth=f.adj(x.l*7).e(\"eeio\")))\n        .lead(10)\n        .xalign(f.a.r)\n        .align(f.a.r))\n\n@animation((1080, 540), tl=60, layer=0)\ndef scratch2(f):\n    return (P().enumerate(txt.splitlines(), lambda x:\n        StSt(x.el, Font.ColdObvi(), 200\n            , wdth=f.adj(x.i*7).e(\"eeio\")))\n        .stack(10)\n        .xalign(f.a.r)\n        .align(f.a.r))\n"
  },
  {
    "path": "examples/animations/midi_cc.py",
    "content": "from coldtype import *\n\nmt = MidiTimeline(ººsiblingºº(\"media/midi_cc.mid\"))\nwav = ººsiblingºº(\"media/midi_cc.wav\")\n\nfnt = Font.MutatorSans()\n\n@animation(tl=Timeline(120, 30), bg=0, audio=wav)\ndef cc(f):\n    mt.hold(f.i)\n    #print(mt.ci(104))\n    return (P(\n        StSt(\"MIDI\", fnt, 200\n            , wght=0, wdth=ez(mt.ci(102), \"sei\", rng=(0.5, 1))),\n        StSt(\"CC\", fnt, 300\n            , wght=1, wdth=ez(mt.ci(103), \"eeo\")),\n        StSt(\"DATA\", fnt, 100),\n        )\n        .stack(20)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .index(2, lambda p: p.scale(ez(mt.ci(104), \"eeo\", rng=(1, 5))))\n        .fssw(1, 0, 4, 1)\n        .reverse())\n"
  },
  {
    "path": "examples/animations/moire1.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom noise import pnoise1\n\nr = Rect(1080)\n\ndef patternmaker():\n    d = 50\n    s = Scaffold(Rect(1920)).numeric_grid(d, int(d))\n    return s.borders().s(1).ch(rasterized(s.r, wrapped=True)).align(r)\n\npattern = freeze(1, 0, patternmaker)\n\ndef postprocess(p):\n    return P(\n        P(r).f(hsl(0.20, 0.68, 0.75)),\n        p.ch(phototype(r, 1.40, 148, 14, fill=hsl(0.60))))\n\n@animation(bg=0, tl=Timeline(240*2, 18), composites=1)\ndef scratch(f):\n    last = f.last_render(λ.align(f.a.r).a(0.945))\n    \n    n = pnoise1(f.e(\"l\", 0, rng=(0, 14)), base=2, octaves=2)\n    ro = n * -150\n    \n    return (P(\n        last,\n        pattern.copy()\n            .align(f.a.r)\n            .rotate(ro, point=r.pc))\n        .postprocess(postprocess))"
  },
  {
    "path": "examples/animations/officehours.py",
    "content": "from coldtype import *\nfrom coldtype.timing.nle.ascii import AsciiTimeline\n\nat = AsciiTimeline(1, \"\"\"\n                                                                <\n        [L                                   ]\n                    [Er             ]\n                     [F                                     ]\n               [H                 ]             \n\"\"\")\n\n@animation(timeline=at)\ndef officehours(f):\n    stx = Style.StretchX(0,\n        L=(730*at.ki(\"L\").io(10, \"eeio\"), 210),\n        F=(1220*at.ki(\"F\").io(10, [\"qeio\", \"eleio\"]), 260),\n        H=(1900*at.ki(\"H\").io(10, \"ceio\"), 250))\n    \n    txt = (StSt(\"Coldtype\\nOffice\\nHours\".upper()\n        , [\"MDNichrome.*Dark\", Font.MutatorSans()]\n        , fontSize=125\n        , ss03=1\n        , mods=stx\n        , leading=20)\n        .f(1)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .t(0, 150))\n\n    bg = (P(txt.ambit().inset(-50))\n            .f(hsl(0.35, 0.8, 0.3)))\n\n    # after bg, so it doesn't effect bounds \n    txt.index([0, -1], lambda p: p\n        .rotate(at.ki(\"Er\").e(\"ceio\", 0, r=(0, -360*2))))\n    \n    date = (StSt(\"X/X, XX:00 UTC\", \"MDNichrome.*R\", 80)\n        .align(f.a.r.take(0.3, \"S\")))\n\n    return P(\n        bg.copy().translate(5, -5).f(0),\n        bg,\n        txt,\n        P(date.ambit().inset(-20)).f(0),\n        date.f(1))"
  },
  {
    "path": "examples/animations/original_demo.py",
    "content": "from coldtype import *\n\nstates = [\n    dict(wdth=0, rotate=0),\n    dict(wdth=1, rotate=15),\n    dict(wdth=0.5, rotate=-210),\n    dict(wdth=1, rotate=-25)\n]\n\nspacings = [\n    dict(tu=300),\n    dict(tu=80),\n    dict(tu=330),\n    dict(tu=150)\n]\n\nat = AsciiTimeline(2, 30, \"\"\"\n                                <\n[0     ][1     ][2     ][3     ]\n\"\"\").shift(\"end\", -10)\n\n@animation((1080, 1080/4), timeline=at, bg=1)\ndef render(f):\n    state = at.kf(\"eeio\", keyframes=states)\n    spacing = at.kf(\"seio\", keyframes=spacings)\n\n    return (StSt(\"COLDTYPE\", Font.ColdtypeObviously(),\n        150, fill=0, **{**state, **spacing}, r=1, leading=80)\n        .align(f.a.r)\n        .f(0))"
  },
  {
    "path": "examples/animations/penangle.py",
    "content": "from coldtype import *\nfrom coldtype.raster import phototype\n\nr = Rect(1080)\nri = r.inset(160)\np = P().m(ri.psw).ioc(ri.pne, 50).fssw(-1, 1, 10)\n\ndef angler(e):\n    return ez(e, \"seio\", 1, rng=(-90, -110))\n\ndef hatch(pt, a=-45, w=100, h=5):\n    return (P()\n        .rect(Rect.FromCenter(pt, w, h))\n        .rotate(a)\n        .f(1))\n\nsamples = p.samples(7)\ncurve = p.enumerate(samples, lambda x: hatch(x.el.pt, angler(x.e))).ch(phototype(r, 5, 90, 13))\n\n@animation(bg=0, tl=Timeline(240, 48))\ndef scratch(f):\n    return (P(\n        curve,\n        hatch(p.point_t(f.e(\"seio\", 1))[0], angler(f.e(\"seio\", 1)), 102, 20)\n            .ch(phototype(f.a.r, 3, 120, 30, hsl(0.07, 0.90, 0.50)))))\n"
  },
  {
    "path": "examples/animations/physics2d.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\nfrom coldtype.physics.pymunk import segments\n\n# pip install pymunk\n\nimport pymunk\nfrom pymunk import Vec2d\nimport random as rnd\n\nr = Rect(1080, 1080)\nri = r.inset(-4, 0)\n\ntxt = (StSt(\"C\", Font.ColdObvi(), 1200, wdth=1)\n    .align(r, ty=1)\n    .fssw(-1, 1, 1))\n\nspace = pymunk.Space()\nspace.gravity = (0.0, -900.0)\n\n# def begin(arbiter, space, data):\n#     print(\"Collision started!\")\n#     return True  # Allow the collision to occur\n\n# def pre_solve(arbiter, space, data):\n#     print(\"Collision is being solved!\")\n#     return True  # Continue processing the collision\n\n# def post_solve(arbiter, space, data):\n#     print(\"Collision solved!\")\n#     # Use arbiter.total_impulse to get collision force if needed\n\n# def separate(arbiter, space, data):\n#     print(\"Collision ended!\")\n\n# Define the collision handler\n#handler = space.add_collision_handler(0, 0)\n\n# Attach callbacks to the handler\n#handler.begin = begin\n# handler.pre_solve = pre_solve\n# handler.post_solve = post_solve\n# handler.separate = separate\n\nstatic_body = space.static_body\nfloor = pymunk.Segment(static_body, *ri.es.splat(), 0.0)\nstatic_lines = [\n    pymunk.Segment(static_body, *ri.ew.splat(), 0.0),\n    pymunk.Segment(static_body, *ri.ee.splat(), 0.0),\n    floor\n]\n\nletter_lines = txt.ch(segments(static_body))\nstatic_lines.extend(letter_lines)\n\nfor line in static_lines:\n    line.elasticity = 1\n    line.friction = 0.1\n\nspace.add(*static_lines)\n\nparticles = []\n\n@animation(tl=450, bg=0, render_bg=1, reset_to_zero=1)\ndef scratch(f):\n    if f.i == 275:\n        space.remove(floor)\n        for idx, s in enumerate(letter_lines):\n            if idx%10 != 0:\n                space.remove(s)\n\n    if f.i <= 275:\n        for _ in range(0, 10):\n            mass = 0.1\n            radius = rnd.randint(7, 13)\n            inertia = pymunk.moment_for_circle(mass, 0, radius, (0, 0))\n            body = pymunk.Body(mass, inertia)\n            x = rnd.randint(10, f.a.r.w-10)\n            body.position = x, rnd.randint(1150, 1300)\n            shape = pymunk.Circle(body, radius, Vec2d(0, 0))\n            space.add(body, shape)\n            particles.append(shape)\n\n    particles_to_remove = []\n\n    for particle in particles:\n        if particle.body.position.y < 0:\n            particles_to_remove.append(particle)\n    \n    for particle in particles_to_remove:\n        space.remove(particle, particle.body)\n        particles.remove(particle)\n\n    ### Update physics\n    # Running in a range since that smaller increments repeated\n    # seems to get better results\n    for x in range(3):\n        space.step(1 / 100.0)\n\n    out = P()\n    for particle in particles:\n        p = Point(particle.body.position.x, particle.body.position.y)\n        out += P().rect(Rect.FromCenter(p, particle.radius)).f(1)\n    \n    return out.ch(phototype(f.a.r.inset(0, 0), blur=1, cut=100, cutw=10))"
  },
  {
    "path": "examples/animations/pixels.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\ndrums = MidiTimeline(ººsiblingºº(\"media/cyber.mid\"), bpm=100, fps=30)\n\nwav = download(\"https://coldtype.xyz/examples/media/cyber.wav\", ººsiblingºº(\"media/cyber.wav\"))\n\n@animation((1080, 1350)\n    , timeline=drums\n    , audio=wav\n    , bg=hsl(0.95, 0.70, 0.55)\n    , release=λ.export(\"h264\", True, 4))\ndef pixels(f):\n    def pixellate(idx, note, i, o, max, min):\n        def _pixellate(p:P):\n            value = drums.ki(note).adsr([i, o]\n                , [\"cei\", \"ceo\"]\n                , r=(max, min))\n            return p.index(idx, lambda _p: _p\n                .ch(precompose(f.a.r, scale=value)))\n        return _pixellate\n    \n    return (P(\n        StSt(\"pixels\\npixels\\npixels\", Font.JBMono()\n            , fontSize=160\n            , wght=0.75\n            , wdth=1\n            , opsz=0)\n            .f(1)\n            .lead(60)\n            .align(f.a.r, \"C\", ty=1)\n            .mape(lambda e, line: line\n                .declare(m:=e*0.0025)\n                .index([1, 1], lambda p: p.t(0, drums.ki(42).adsr(r=(0, 40))))\n                .ch(pixellate(0, 36, 3, 40, 0.15-m, 0.01-m))\n                .ch(pixellate(2, 38, 3, 30, 0.15-m, 0.02-m))\n                .ch(pixellate(1, 42, 5, 20, 0.35-m, 0.05-m))\n                .ch(pixellate(3, 47, 5, 20, 0.15-m, 0.0125-m))\n                .ch(pixellate(4, 45, 5, 20, 0.15-m, 0.0125-m))\n                .ch(pixellate(5, 39, 5, 20, 0.15-m, 0.0125-m)))\n            .index(1, λ.ch(phototype(f.a.r, 1, 90, 60, fill=1)))\n            .index(2, λ.ch(phototype(f.a.r, 5, 150, 30, fill=1)))))"
  },
  {
    "path": "examples/animations/pseudomorph.py",
    "content": "from coldtype import *\n\nr = Rect(1440, 540)\n\n@animation(r, tl=70)\ndef pseudomorph(f):\n    return (StSt(\"HELLO\" if f.e() < 0.5 else \"WORLD\"\n        , Font.MutatorSans()\n        , f.e(rng=(300, 100))\n        , wght=f.e()\n        , wdth=f.e()\n        , rotate=f.e(rng=(0, 360))\n        )\n        .align(f.a.r, tx=0))"
  },
  {
    "path": "examples/animations/recursive_shape.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\n@animation((1080, 1080)\n    , timeline=90\n    , composites=1\n    , bg=0\n    , release=lambda x: x.export(\"h264\", loops=4))\ndef recursive_composite(f):\n    def postprocess(result):\n        return P(\n            P(f.a.r).f(1),\n            P().gridlines(f.a.r, 30, 30)\n                .fssw(-1, hsl(0.65, 0.65, 0.95), 1),\n            result.ch(luma(f.a.r, hsl(0.93, 1.00, 0.65))))\n\n    return (P(\n        f.lastRender(lambda img: img\n            .resize(0.997)\n            .align(f.a.r)\n            .translate(1, -3)\n            ),\n        (P(Rect(200, 200))\n            .align(f.a.r.inset(100, 100), \"NW\")\n            .rotate(f.e(\"eeio\", 0)*-360)\n            .translate(f.a.r.w*0.6*f.e(\"ceio\", 1), 0)\n            .fssw(0, 1, 10) # invert for phototype\n            ))\n        .ch(phototype(f.a.r,\n            fill=1, blur=3, cut=133, cutw=30))\n        .postprocess(postprocess))"
  },
  {
    "path": "examples/animations/recursive_text.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype, luma\n\n@animation(timeline=80, bg=0\n    , composites=1\n    , render_bg=1)\ndef recursive(f:Frame):\n    last = f.last_render(lambda p: p.resize(0.95).align(f.a.r))\n\n    def postprocess(p):\n        fill = hsl(f.e(1, rng=(0.95, 0.75)), 0.6, 0.6)\n        return P(\n            P(f.a.r).f(1),\n            p.ch(luma(f.a.r, fill)))\n\n    return (P(\n        StSt(\"COLDTYPE\", Font.ColdtypeObviously()\n            , font_size=f.e(1, rng=(250, 20))\n            , wdth=f.e(\"ceio\", 1, rng=(1, 0))\n            , tu=f.e(1, rng=(-150, 0))\n            , r=1)\n            .align(f.a.r)\n            .fssw(1, 0, 15, 1),\n        StSt(\"Recursive\", Font.RecursiveMono()\n            , font_size=f.e(\"ceio\", 1, rng=(1, 200))\n            , tu=f.e(\"ceio\", 1, rng=(0, -100))\n            , r=1)\n            .align(f.a.r)\n            .fssw(1, 0, 15, 1)\n            .visible(f.e(1) > 0.5))\n        .translate(0, f.e(\"eeio\", 1, rng=(y:=390, -y)))\n        .insert(0, last)\n        .ch(phototype(f.a.r, blur=1, cut=123, cutw=35, fill=1))\n        .postprocess(postprocess))\n\n\nrelease = recursive.export(\"h264\", loops=4)"
  },
  {
    "path": "examples/animations/retails/casual.py",
    "content": "from coldtype import *\n\nat = AsciiTimeline(6, 30, \"\"\"\n                                              <\n[0   ][1   ][2     ][3  ][4         ]\n  [0w                                  ]\n        [1w                            ]\n               [2w                     ]\n                      [3w              ]\n                              [4w      ]\n                                      [z    ]\n                                      [o   ]\n\"\"\")\n\n@animation((1080, 1080), timeline=at, bg=1, render_bg=1)\ndef casual1(f):\n    letter = at.ki(list(\"012345\"))\n    li, lidx = letter.e(find=1)\n    \n    z = at.ki(\"z\")\n    o = at.ki(\"o\")\n\n    return (Glyphwise(\"Dicey\", lambda g:\n        Style(\"Casual\", 100\n            , opsz=o.e(\"eeo\", 1, r=(1, 0))\n                if o.on()\n                    else at.ki(g.i).e(\"eeio\", 1, r=(1, 0))\n            , wght=z.e(\"eeo\", 0, r=(1, 0))\n                if z.on()\n                    else at.ki(f\"{g.i}w\").io([8, 8], \"eeo\")))\n        .align(f.a.r)\n        .centerPoint(f.a.r, (lidx, \"txtyC\"), i=li)\n        .cond(True,\n            lambda p: p\n                .scale(letter.io([15, 5], r=(1,10)), pt=(lidx, \"tyC\"))\n                .scale(z.io([10, 15], [\"eeo\", \"eei\"], r=(1, 5))),\n            lambda p: p\n                .scale(letter.e(r=(1,10)), pt=(lidx, \"tyC\"))\n                .scale(z.e(\"eeio\", r=(1, 5))))\n        .f(0))\n\nrelease = casual1.export(\"h264\", loops=3)"
  },
  {
    "path": "examples/animations/retails/chopper.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\nfrom functools import partial\n\ndef Chopper(**kwargs):\n    d = {}\n    \n    def chopper(n, s, e, w, i, p):\n        amb = p.ambit(tx=0, ty=0)\n        return p.intersection(P(amb.drop(n, \"N\", forcePixel=1).drop(s, \"S\", forcePixel=1).drop(e, \"E\", forcePixel=1).drop(w, \"W\", forcePixel=1))).translate(-w, 0)#.record(P(amb).outline(2).reverse())\n    \n    for k, v in kwargs.items():\n        d[k] = (-(v[2]+v[3]), partial(chopper, v[0], v[1], v[2], v[3]))\n    \n    return d\n\nrsc = random_series()\n\n@animation((1080, 1080), tl=160, bg=hsl(0.7, 0.6))\ndef chopper(f):\n    def word(f):\n        e = f.io([20, 20])\n        ##d = 140*f.e(\"eeo\")\n        stx = Chopper(\n            O=(0,0,120*e,120*e),\n            C=(0,0,140*e,110*e),\n            M=(0,0,100*e,80*e),\n            P=(0,0,140*e,117*e),\n            R=(0,0,120*e,180*e),\n            E=(0,0,80*e,140*e),\n            S=(0,0,140*e,140*e),\n            )\n\n        return (StSt(\"COMPRESS\".upper()\n            , \"Hex Franklin v0.3 Tyght V\"\n            , fontSize=f.io([50, 40], [\"eeio\", \"eeio\"], rng=(180, 900))\n            , NOTC=1\n            , TYTE=0\n            , mods=stx\n            , tu=f.io([60, 60], [\"eeio\", \"eeio\"], rng=(300, 10))\n            , kp={\n                \"O/M\":-10*e,\n                \"M/P\":-11*e,\n                \"R/E\":-7*e,\n                \"P/R\":-6*e,\n                \"E/S\":9*e\n            }\n            #, wght=0.75\n            , wdth=0\n            #, tu=10\n            )\n            .mapv(lambda i, p: p.f(hsl(rsc[i], 0.5)).up().___insert(0, lambda x: P(x.ambit()).fssw(hsl(rsc[i], 0.5, 0.8, 0.3), 0, 1)))\n            #.track(10)\n            #.align(f.a.r)\n            .f(1)\n            #.ch(shake(2, 1, seed=f.i//4))\n            )\n        \n    return (P(\n        word(f),\n        word(f.adj(-(d:=0))),\n        word(f.adj(-d*2)),\n        word(f.adj(-d*3)),\n        word(f.adj(-d*4)),\n        )\n        .xalign(f.a.r)\n        .stack(f.e(\"eeio\", rng=(60, 24)))\n        .align(f.a.r)\n        .ch(filmjitter(f.e(\"l\"), scale=(1,1)))\n        .ch(phototype(f.a.r, 1.5, 180, 40, fill=1)))\n\nrelease = chopper.export(\"h264\", True, 4)"
  },
  {
    "path": "examples/animations/retails/colorfont.py",
    "content": "from coldtype import *\n\nppvf = Font.Find(\"PappardelleParty-VF\")\n\ncustom_palette = [\n    hsl(0.35, 0.7),\n    hsl(0.5, 0.7),\n    hsl(0.1, 0.7),\n    hsl(0.9, 0.7)\n]\n\ndef spin(fa, g):\n    y = 100\n    # address color font layers individually\n    g[2].translate(0, fa.e(1, rng=(0, y)))\n    g[0].translate(0, fa.e(1, rng=(0, -y)))\n    g[1].rotate(fa.e(0, rng=(0, -360*2)))\n\n@animation((1080, 1080), timeline=120)\ndef pappardelle(f):\n    wave = (StSt(\"SPIN\", ppvf, 500,\n        palette=custom_palette,\n        #palette=1,\n        SPIN=f.e(\"l\", 0))\n        .align(f.a.r))\n\n    r_wave = wave.ambit(tx=1, ty=1)\n    \n    return P(\n        P(r_wave.inset(-20, -15)).f(None).s(custom_palette[2]).sw(3),\n        (wave.copy()\n            .map(lambda i, p: spin(f.adj(-i*4), p))\n            .rotate(f.e(0, to1=1)*360, point=r_wave.pc)))"
  },
  {
    "path": "examples/animations/retails/digestive_snake.py",
    "content": "from coldtype import *\n\nr = Rect(1920, 500)\n\ntrack = (P()\n    .vl([\n        ('moveTo', ((-342, 68),)),\n        ('curveTo', ((-162, 68), (-108, 217), (140, 217.0))),\n        ('curveTo', ((381, 217), (454, 98), (639, 98))),\n        ('curveTo', ((843, 98), (925, 217), (1106, 217))),\n        ('curveTo', ((1322, 217), (1426, 68.0), (1656, 68))),\n        ('endPath', ())])\n    .scale(0.25)\n    .fssw(None, 1, 1)\n    .repeat(3)\n    .align(r)\n    .translate(0, -20))\n\ndef ds(e1):\n    # 52.98 is a magic number for this string\n    # uncomment the 119-rendered static at the bottom\n    # to calibrate for a different string/font\n    return StSt(\"Digestive\", \"Digestive\", 52.98, wdth=e1, ro=1)\n\nminw = ds(0).ambit(tx=1).point(\"SE\").x\nmaxw = ds(1).ambit(tx=1).point(\"SE\").x\n\ndef render_snake(f):\n    e, l = f.e(\"eeio\", 2, loop_info=1)\n    dps = ds(e)\n\n    offset = 0\n    if l in [1, 3]:\n        offset = maxw - dps.ambit(tx=1).point(\"SE\").x\n    \n    offset += math.floor(l/2)*(maxw-minw)\n    dps.distributeOnPath(track, offset=offset)\n    return dps\n\n@animation(rect=(1920,500), timeline=120, bg=hsl(0, l=0.97))\ndef render(f):\n    now = render_snake(f)\n    return (P(\n            P(f.a.r).scale(0.3).fssw(-1, -1, 2),\n            P(f.a.r).scale(0.25).fssw(-1, -1, 2),\n            (track.copy()\n                .fssw(None, hsl(0.65, l=0.9), 15)\n                .translate(0, -8)),\n            #render_snake(Frame(119, f.a)).f(0),\n            now.f(hsl(0.9, l=0.6, s=0.7)))\n        .translate(0, -30)\n        .scale(4.1)\n        .align(f.a.r))"
  },
  {
    "path": "examples/animations/retails/digestive_wind.py",
    "content": "from coldtype import *\nimport noise\n\n# available from https://ohnotype.co/fonts/digestive\n# though other variable-wdth faces can be substituted\ndf = Font.Find(\"DigestiveVariable\")\nt = Timeline(180, storyboard=[0])\n\n# TODO must be a way to speed this way up by inferring a height axis from the width\n\ndef style_a(f, hit):\n    ps:PS = (StSt(\"Digestive\", df, 300+30*(1-hit),\n        wdth=0, ro=1, t=-10*(1-hit))\n        .align(f.a.r))\n    \n    def alter(idx, p):\n        fr = p.ambit()\n        rng = 10+45*hit\n        factor = 0.05\n        x_seed = (f.i+idx)*factor\n        fs = (200-rng)+noise.pnoise1(x_seed, repeat=int(t.duration*factor))*rng\n        if p.glyphName != \"space\":\n            return StSt(p.glyphName, df, fs, wdth=1, ro=1, fit=fr.w).align(fr)[0]\n        else:\n            return P()\n    \n    return ps.map(alter)\n\n@animation(rect=(1200,300), timeline=t, bg=0)\ndef render(f):\n    return style_a(f, 1).f(1)"
  },
  {
    "path": "examples/animations/retails/gridsystems.py",
    "content": "from coldtype import *\n\nauthor = \"Josef Müller-Brockmann\"\npublisher = \"Niggli\"\n\ntxt_en = [\n    \"Grid systems\",\n    \"in graphic design\",\n    \"A visual communcation manual\\nfor graphic designers,\\ntypographers and\\nthree dimensional designers\"\n]\n\ntxt_de = [\n    \"Raster systeme\",\n    \"für die\\nvisuelle Gestaltung\",\n    \"Ein Handbuch für\\nGrafiker, Typografen und\\nAusstellungsgestalter\"\n]\n\n@renderable(Rect(215*5, 300*5), bg=hsl(0.015, 0.6, 0.555))\ndef cover(r):\n    s = Scaffold(r.inset(40)).numeric_grid(4, 8, 30, 30)\n    s1 = Style(\"GrossV\", 160, wght=0.55, wdth=0.91)\n    s2 = Style(\"GrossV\", 37, wght=0.25, wdth=0.91)\n    return (P(\n        s.borders().fssw(-1, 1, 0.5),\n        P(s).fssw(-1, 1, 0.25),\n        s.view(fill=False, vectors=True).f(bw(1, 0.25)) if 1 else None,\n        P(\n            StSt(author, s2).f(0).align(s[\"2|7\"], \"NW\"),\n            StSt(txt_en[0], s1).align(s[\"0|5\"], \"NW\"),\n            StSt(txt_en[1], s2).align(s[\"0|4\"], \"NW\"),\n            StSt(txt_en[2], s2).align(s[\"2|4\"], \"NW\"),\n            StSt(txt_de[0], s1).align(s[\"0|3\"], \"NW\"),\n            StSt(txt_de[1], s2).align(s[\"0|2\"], \"NW\"),\n            StSt(txt_de[2], s2).align(s[\"2|2\"], \"NW\"),\n            StSt(publisher, s2).align(s[\"2|0\"], \"SW\", ty=1)\n        ).f(0)))"
  },
  {
    "path": "examples/animations/retails/hansjorg.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom string import ascii_lowercase\nfrom random import Random\n\n# adapted from Maurice Meilleur’s adaptation of a 1964 piece by Hansjörg Mayer\n\nfutura = Font.Find(\"PolymathV\")\n\nln = len(ascii_lowercase)-2\n\ndef scrambled(seed, split):\n    r = Random(seed)\n    xs = ''.join(r.sample(ascii_lowercase, len(ascii_lowercase)))\n    return f\"{xs[:-split]}\\n{xs[-split:]}\"\n\n@animation(1920\n    , bg=hsl(0.11, 0.70, 0.65)\n    , tl=Timeline(ln*8, 12)\n    , release=λ.export(\"h264\", loops=2))\ndef hj(f:Frame):\n    s = Scaffold(f.a.r.inset(80)).numeric_grid(1, 17)\n    \n    e1 = \"l\"\n    e2 = \"ceio\"\n\n    factor = f.e(\"seio\", 2, rng=(1, 2))\n\n    def row(x):\n        right = round(f.adj(x.i*factor).e(e2, 4, rng=(len(ascii_lowercase)-1, 1)))\n\n        a = f.adj(-x.i*factor)\n        xs = scrambled(x.i-f.i, right)\n        \n        return (StSt(xs, futura\n            , fontSize=a.e(e1, rng=(50, 150))\n            , tu=a.e(e1, rng=(120, -150))\n            , wght=a.e(e1, rng=(0.65, 1))\n            , opsz=a.e(e1, rng=(0, 1))\n            , liga=0\n            , slig=0)\n            .î(0, λ.align(x.el, \"W\", tx=0))\n            .î(1, λ.align(x.el, \"E\", tx=0))\n            .ch(filmjitter(f.e(\"l\")\n                , scale=(10, 10)\n                , base=x.i)))\n\n    return (P().enumerate(s, row)\n        .f(1)\n        .ch(phototype(f.a.r\n            , blur=1.5\n            , cut=f.e(e1, rng=(140, 50))\n            , cutw=40\n            , fill=0)))\n\n@animation(1080\n    , tl=hj.timeline\n    , solo=1\n    , release=λ.export(\"h264\", loops=2))\ndef hj_resize(f):\n    return hj.pass_img(f.i).resize(0.5625)"
  },
  {
    "path": "examples/animations/retails/montreuil.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom functools import partial\nfrom random import Random\n\nfnt = Font.Find(\"MontreuilPlay\")\n\nimport numpy as np\nimport random\n\ntxt = \"CLAWHAMMER\"\n\noptions = [\n    [1, 2],\n    [1, 2, 3, 4, 5],\n    [3, 4, 5],\n    [3, 4, 5, 2],\n    [3, 4, 5],\n    [3, 4, 5, 6],\n    [3, 4, 5],\n    [3, 4, 5],\n    [3, 4, 5],\n    [3, 4, 5, 6, 7],\n    [6, 7]\n]\n\nrepeats = len(options)\n\ndef generate_matrix_sequence(changes_per_step):\n    np.random.seed(1)\n    random.seed(1)\n    \n    current_matrix = np.random.randint(1, 3, size=(repeats, len(txt)))\n\n    for idx, x in enumerate(current_matrix):\n        for jdx, _ in enumerate(x):\n            choices = options[idx]\n            weights = np.array([0.01] + [0.95/(len(choices)-1)] * (len(choices)-1))\n            current_matrix[idx, jdx] = random.choices(options[idx], weights=weights)[0]\n            #if random.random() < 0.05:\n            #    current_matrix[idx, jdx] = 4\n\n    unvisited = set((i, j) for i in range(repeats) for j in range(len(txt)))\n    matrices = [current_matrix.copy()]\n    \n    while unvisited:\n        num_changes = min(changes_per_step, len(unvisited))\n        cells_to_change = random.sample(list(unvisited), num_changes)\n        new_matrix = current_matrix.copy()\n        \n        for i, j in cells_to_change:\n            choices = options[i]\n            weights = np.array([0.01] + [0.95/(len(choices)-1)] * (len(choices)-1))\n            current_val = current_matrix[i, j]\n            new_val = random.choice([x for x in choices if x != current_val])\n            if random.random() < 0.01:\n                new_val = 0\n            new_matrix[i, j] = new_val\n            unvisited.remove((i, j))\n        \n        matrices.append(new_matrix)\n        current_matrix = new_matrix\n    \n    return matrices\n\n\nmatrices = generate_matrix_sequence(2)\nmatrices.append(matrices[-1].copy())\nmatrices.append(matrices[-1].copy())\nmatrices.append(matrices[-1].copy())\nmatrices.append(matrices[-1].copy())\nmatrices.insert(0, matrices[0].copy())\nmatrices.insert(0, matrices[0].copy())\nmatrices.insert(0, matrices[0].copy())\n\n@animation(bg=0, tl=Timeline(len(matrices)*2, 24))\ndef scratch(f:Frame):\n    _r = Rect(1000)\n    io = P().m(_r.psw).l(_r.pse.o(-400, 0)).ioc(_r.pne.o(-100, 0), 0).l(_r.pne).fssw(-1, 1, 2)\n    #return io\n\n    def mp(line):\n        def character(x):\n            style = matrices[int(f.e(\"l\", 1, (0, len(matrices)-1)))][line.i][x.i]\n            return (StSt(x.el, fnt, 100, features={f\"ss0{style}\":1}))\n\n        return P().enumerate(txt, character).spread(0)\n    \n    #_mp = partial(mp, 100, \"GOODHERTZ\")\n    return (P(\n        # _mp(0, [0, 1, 2]),\n        # _mp(1, [5, 3, 4]),\n        # _mp(2, [5, 3, 4]),\n        # #_mp([6]),\n        # _mp(7, [0, 3, 4, 5]),\n        # #_mp([0]),\n        # _mp(8, [0, 3, 4]),\n        # _mp(10, [0, 3, 4]),\n        # _mp(11, [0, 3, 4]),\n        # #_mp([3, 4]),\n        # #_mp([3, 4]),\n        # _mp(9, [0, 3, 4, 5]),\n        # #_mp([3, 4, 5]),\n        # _mp(3, [6, 7]),\n    )\n    .enumerate(range(0, repeats), mp)\n    #.f(hsl(0.3, 0.90, 0.70))\n    #.map(lambda p: p.insert(0, P(p.ambit(tx=0, ty=0)).f(hsl(0.70, 0.90, 0.70))))\n    #.index(2, lambda p: p.t(-10, 0))\n    #.stack(f.e(io, 1, (18, 22)), ty=0)\n    .stack(18, ty=0)\n    .align(f.a.r, tx=0, ty=0)\n    .collapse()\n    #.pen().ro().fssw(-1, 1, 4)\n    .f(1)\n    #.fssw(-1, 1, 1)\n    .scale(0.9)\n    .ch(phototype(f.a.r, 1.5 , 150, 50))\n    )\n\nrelease = scratch.gifski(open=True)"
  },
  {
    "path": "examples/animations/retails/stacked_and_justified.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nfatface = Font.Find(\"OhnoFatfaceV\")\n\n@animation(timeline=Timeline(100, storyboard=[0]), bg=0)\ndef render(f):\n    c1, c2 = (f.a.r\n        .inset(0, 50)\n        .divide(f.e(1, rng=(0.15, 0.85)), \"N\")\n        .map(lambda p: p.inset(20, 5)))\n\n    s = Style(fatface, t=-25, wdth=1, wght=1, ro=1, r=1)\n\n    return (P(\n            (StSt(\"STACKED &\",\n                s.mod(fitHeight=c1.h, opsz=f.e(1))\n                , fit=c1)\n                .align(c1)\n                .trackToRect(c1.inset(f.e(1, rng=(30, 0)), 0), pullToEdges=1, r=1)),\n            (StSt(\"JUSTIFIED\",\n                s.mod(fitHeight=c2.h, opsz=f.e(1, rng=(1, 0)))\n                , fit=c1)\n                .align(c2)\n                .trackToRect(c2, pullToEdges=1, r=1)))\n        .fssw(1, 0, 11, 1)\n        .sm(0.99)\n        .ch(phototype(f.a.r, blur=2, cut=150, cutw=25)))"
  },
  {
    "path": "examples/animations/retails/vulfbach.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import color_phototype\n\n\"\"\"\nRun as `coldtype examples/animation/vulfbach.py`\nTo multiplex, add ` -m` to the end of that call\n(then when you hit `a` in the viewer app, the frames\nwill render in parallel in random-order)\n\nRendered with organ.wav as the backing track:\n    https://vimeo.com/489013931/cd77ab7e4d\n\"\"\"\n\nmidi = MidiTimeline(\n    \"examples/animations/media/organ.mid\"\n    , bpm=183, fps=30)\n\nnote_width = 3\nr = Rect(1440, 1080)\n\ndef pos(x, y):\n    y = int(y)\n    return (x*note_width, (y-midi.min)*(r.h-200)/midi.spread+100)\n\ndef build_line():\n    dp = P().f(None).s(rgb(1, 0, 0.5)).sw(3)\n    last:Timeable = None\n\n    for t in midi.timeables:\n        if last and (t.start - last.end > 3 or last.name == t.name):\n            dp.lineTo((pos(last.end, last.name)))\n            dp.endPath()\n            last = None\n        \n        if last:\n            if last.end < t.start:\n                dp.lineTo((pos(last.end, last.name)))\n            else:\n                dp.lineTo((pos(t.start, last.name)))\n            dp.lineTo((pos(t.start, t.name)))\n        else:\n            dp.moveTo((pos(t.start, t.name)))\n        \n        last = t\n    \n    if last:\n        dp.lineTo((pos(last.end, int(last.name))))\n    dp.endPath()\n    return dp\n\nline = build_line()\n\n@animation(timeline=midi, rect=r)\ndef render(f):\n    time_offset = -f.i * note_width + r.w - note_width * 3\n    time_offset += 10 # fudge\n    looped_line = P(\n        (line.copy()\n            .translate(\n                time_offset - f.t.duration * note_width,\n                0)),\n        (line.copy()\n            .translate(time_offset, 0)))\n\n    return (P(\n        P().rect(f.a.r).f(0),\n        (looped_line.pen()\n            .ch(color_phototype(f.a.r, blur=20, cut=215, cutw=40))),\n        (looped_line.pen()\n            .ch(color_phototype(f.a.r, blur=3, cut=200, cutw=25)))))"
  },
  {
    "path": "examples/animations/retails/wavinghand.py",
    "content": "from coldtype import *\n\n@animation()\ndef peace(f):\n    txtfont = \"Degular-Black\"\n    return (StSt(\"Peace ✌ !\", txtfont, 100, space=230)\n        .replaceGlyph(\".notdef\", StSt(\"✌\", \"Gooper\", 100))\n        .align(f.a.r)\n        .findGlyph(\"uni270C\", lambda p: p\n            .translate(3, -5)\n            .rotate(f.e(\"seio\", r=(-20, 20))))\n        .f(0))"
  },
  {
    "path": "examples/animations/retails/welcome.py",
    "content": "from coldtype import *\n\n@animation((1080, 290), timeline=Timeline(90), render_bg=True, bg=hsl(0.65))\ndef welcome(f):\n    return (Glyphwise(\"ABC\", lambda g:\n        Style(\"CheeeVar\", 250,\n            tu=f.e(\"eeio\", 1, rng=(0, -350)),\n            yest=f.e(\"ceio\", 1),\n            grvt=f.adj(g.i*10).e(\"seio\", 3)))\n        .fssw(-1, 1, 3)\n        .align(f.a.r, ty=1))\n\nrelease = welcome.export(\"gif\")"
  },
  {
    "path": "examples/animations/rgbsplit.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\n@animation(bg=0, tl=60)\ndef rgbsplit(f):\n    return (StSt(\"COLD\\nTYPE\", Font.ColdObvi()\n        , multiline=1\n        , fontSize=f.e(rng=(600, 360))\n        , ro=1\n        , rotate=f.e(\"eei\", rng=(10, 0))\n        , wdth=f.e(\"eei\")\n        , leading=f.e(\"eeo\", rng=(10, 50))\n        , tu=f.e(\"eeio\", rng=(-70, 0)))\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .reverse(recursive=1)\n        .layer(\n            lambda p: p.t(d:=f.e(rng=(20, 30)),-d).f(\"g\"),\n            lambda p: p.fssw(-1, \"b\", 20),\n            lambda p: p.fssw(\"r\", \"b\", 6))\n        .ch(rgbmod(f.a.r\n            , r=lambda x: x\n                .ch(filmjitter(f.e(\"l\", 0), 0, scale=(5, 6)))\n                .ch(phototype(f.a.r, 1.5, 120, 45, fill=hsl(1.90,0.90,0.75)))\n            , g=lambda x: x\n                .ch(filmjitter(f.e(\"l\", 0), 1, scale=(5, 6)))\n                .ch(phototype(f.a.r, 3, 170, 15, fill=hsl(0.37,0.8,0.75))))))\n"
  },
  {
    "path": "examples/animations/roundandround.py",
    "content": "from coldtype import *\nfrom coldtype.raster import phototype, filmjitter\n\ne1 = (P().withRect(Rect(1000), lambda r, p: p\n    .m(r.psw)\n    .ioc(r.pc, 10, 30)\n    .ioc(r.pne, 10, 30)\n    .ep()))\n\ne2 = (P().withRect(Rect(1000), lambda r, p: p\n    .m(r.psw)\n    .ioc(r.pn, 10, 30)\n    .ioc(r.pse, 10, 30)\n    .ep()))\n\ne3 = (P().withRect(Rect(1000), lambda r, p: p\n    .m(r.psw)\n    .ioc(r.pc, 30, 30)\n    .ioc(r.pne, 30, 30)\n    .ep()))\n\n\n@renderable(1000, bg=1, solo=-1)\ndef easer(r):\n    return P(e1, e2, e3).fssw(-1, 0, 1)\n\n\n@animation(bg=hsl(0.07, 0.8, 0.50), tl=Timeline(180, 18), release=λ.export(\"h264\", loops=2))\ndef rounder(f):\n    j = f.e(\"seio\", 1, rng=(7, 6))\n\n    h = 500\n    def setter(x):\n        nonlocal h\n        fs = 32 - x.i*0.58\n        h -= (fs)\n\n        #el = StSt(\"S\", Font.MuSan(), fs+12, wght=1, wdth=1-x.e).layer(21)\n        el = P(Rect(fs*(1-(x.e*0.9)), fs)).layer(21)\n\n        return (el\n            .align(f.a.r)\n            .t(0, h)\n            .f(0)\n            .unframe()\n            .map(lambda i, p: p\n                .rotate(-i * 360/len(el), point=f.a.r.pc)\n                .ch(filmjitter(f.adj(-x.i).e(\"l\", 0), x.i+i, scale=(j,j))))\n            .align(f.a.r)\n            .rotate(f.e(e1, 0, rng=(0, f.e(e2, 0, rng=(0, -x.i*85.10))))))\n            \n    \n    return (P().enumerate(range(0, 14), setter)\n        .f(1)\n        .rotate(f.e(e3, 0, rng=(0, -360)))\n        .ch(phototype(f.a.r\n            , blur=f.e(e2, 0, rng=(12, 1))\n            , cut=f.e(e2, 0, rng=(60, 183))\n            , cutw=f.e(e2, 0, rng=(3, 43))\n            , fill=hsl(0.17, 1.00, 0.70))))"
  },
  {
    "path": "examples/animations/separation.py",
    "content": "from coldtype import *\n\n# variation on a design by @mjmeilleur\n\n@animation(tl=240, bg=1)\ndef separation(f):\n    e, info = f.e(\"eeio\", 4, loop_info=True)\n    seed = info//2\n    extent = 160 + 100*seed\n    \n    rx = random_series(-extent, extent, seed=1+seed)\n    ry = random_series(-extent, extent, seed=2+seed)\n    rs = random_series(0, seed, seed=4+seed)\n    rr = random_series(-360*2, 360*2, seed=3+seed)\n\n    s = Scaffold(f.a.r.inset(300)).numeric_grid(4)\n    \n    return (P().enumerate(s, lambda x: P()\n        .rect(x.el.r.inset(12))\n        .outline(4))\n        .layer(\n            lambda p: p.f(hsl(0.9, 0.8)),\n            lambda p: p.f(hsl(0.17, 0.8, 0.6)),\n            lambda p: p.f(hsl(0.65, 0.8, 0.6)))\n        .collapse()\n        .map(lambda i, p: p\n            .t(rx[i]*e, ry[i]*e)\n            .scale(1+rs[i]*e)\n            .rotate(rr[i]*e))\n        .blendmode(BlendMode.Cycle(13)))"
  },
  {
    "path": "examples/animations/simple_recording.json",
    "content": "{\"cursor\": {\"0\": [576, 78], \"1\": [549, 84], \"2\": [510, 84], \"3\": [453, 96], \"4\": [405, 124], \"5\": [397, 146], \"6\": [406, 170], \"7\": [441, 188], \"8\": [477, 196], \"9\": [511, 198], \"10\": [554, 211], \"11\": [609, 242], \"12\": [624, 285], \"13\": [601, 326], \"14\": [550, 334], \"15\": [480, 313], \"16\": [425, 299], \"17\": [400, 293], \"18\": [330, 306], \"19\": [301, 348], \"20\": [300, 383], \"21\": [330, 411], \"22\": [377, 435], \"23\": [433, 447], \"24\": [460, 450], \"25\": [535, 468], \"26\": [575, 508], \"27\": [584, 549], \"28\": [529, 570], \"29\": [452, 559], \"30\": [378, 538], \"31\": [298, 544], \"32\": [278, 593], \"33\": [314, 641], \"34\": [374, 674], \"35\": [445, 678], \"36\": [511, 673], \"37\": [556, 686], \"38\": [547, 740], \"39\": [504, 795], \"40\": [453, 808], \"41\": [391, 808], \"42\": [280, 802], \"43\": [246, 837], \"44\": [249, 864], \"45\": [303, 925], \"46\": [427, 987], \"47\": [592, 974], \"48\": [687, 854], \"49\": [685, 772], \"50\": [675, 718], \"51\": [723, 656], \"52\": [804, 654], \"53\": [827, 718], \"54\": [812, 780], \"55\": [760, 770], \"56\": [727, 712], \"57\": [730, 589], \"58\": [763, 454], \"59\": [842, 369], \"103\": [948, 199], \"104\": [943, 172], \"105\": [916, 139], \"106\": [884, 115], \"107\": [821, 93], \"108\": [783, 87], \"109\": [747, 84], \"110\": [711, 82], \"111\": [685, 83], \"112\": [669, 83], \"113\": [654, 82], \"114\": [639, 80], \"115\": [626, 79], \"116\": [610, 79], \"117\": [597, 79], \"118\": [590, 78], \"119\": [581, 78], \"60\": [891, 398], \"61\": [908, 446], \"62\": [886, 505], \"63\": [862, 530], \"64\": [839, 533], \"65\": [820, 500], \"66\": [803, 448], \"67\": [798, 378], \"68\": [838, 331], \"69\": [890, 317], \"70\": [937, 364], \"71\": [959, 489], \"72\": [893, 669], \"73\": [741, 750], \"74\": [565, 760], \"75\": [369, 694], \"76\": [315, 611], \"77\": [330, 564], \"78\": [407, 518], \"79\": [520, 492], \"80\": [631, 501], \"81\": [685, 557], \"82\": [673, 624], \"83\": [639, 655], \"84\": [577, 661], \"85\": [537, 645], \"86\": [510, 595], \"87\": [517, 537], \"88\": [575, 426], \"89\": [676, 382], \"90\": [771, 384], \"91\": [798, 440], \"92\": [769, 481], \"93\": [728, 470], \"94\": [718, 421], \"95\": [728, 369], \"96\": [769, 333], \"97\": [771, 332], \"98\": [813, 311], \"99\": [859, 290], \"100\": [895, 269], \"101\": [922, 247], \"102\": [939, 229]}}"
  },
  {
    "path": "examples/animations/simplevarfont.py",
    "content": "from coldtype import *\n\n\n@animation((1920, 540), timeline=Timeline(60, 30), bg=1)\ndef unfold(f):\n    return (StSt(\"Coldtype\".upper()\n        , Font.ColdObvi()\n        , fontSize=f.e(\"eeio\", rng=(100, 300))\n        , wdth=f.e(\"eeio\")\n        , tu=f.e(\"eeio\", rng=(-130, 100))\n        , ro=1)\n        .align(f.a.r)\n        .mapv(lambda i, p: p\n            .rotate(360*f.adj(-i*0.25).e(\"eeio\", 1)))\n        .reverse()\n        .fssw(hsl(0.7, a=0.75), 0, 10, 1))\n"
  },
  {
    "path": "examples/animations/slicer.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nrs = random_series(-(r:=50), r, seed=0)\n\n@animation((1080, 1080), bg=0, tl=120)\ndef slicer(f):\n    s = Scaffold(f.a.r.inset(-500, 0)).grid(21, 1)\n    \n    txt = (StSt(\"COLD\\nTYPE\", Font.ColdObvi(), f.e(r=(180, 440)), wght=1, leading=50)\n        .xalign(f.a.r)\n        .align(f.a.r, ty=1)\n        .pen()\n        .removeOverlap())\n\n    skew = 0.25\n    \n    return (P().enumerate(s, lambda x:\n        P(x.el.rect.inset(2))\n            .skew(skew, 0, pt=(0, 0))\n            .intersection(txt)\n            .translate(rs[x.i]*skew, rs[x.i])\n            .f(1)\n            .ch(phototype(f.a.r, 1.5, 180, 35))))"
  },
  {
    "path": "examples/animations/sonification.py",
    "content": "from coldtype import *\nimport wave, struct\n\nVERSIONS = {\n    \"C\": dict(text=\"C\", font=\"ObviouslyV\"),\n    \"O\": dict(text=\"O\", font=\"ObviouslyV\"),\n    \"L\": dict(text=\"L\", font=\"ObviouslyV\"),\n    \"D\": dict(text=\"D\", font=\"ObviouslyV\"),\n} #/VERSIONS\n\n\"\"\"\nRun in terminal: `coldtype examples/animations/sonification.py`\n\nAfter a build call (aka hitting the `b` key in the viewer app),\nthis code will render individual wave files for each letter,\nto the examples/animations/renders/sonification folder\n\nThose waves can then be played back in any DAW and should\nbe visible on an x/y scope (like this one http://goodhertz.com/midside-matrix)\n\"\"\"\n\nclass sonification(animation):\n    def __init__(self, timeline, filename, samples_per_frame=1, **kwargs):\n        self.filename = filename\n        self.samples_per_frame = samples_per_frame\n        super().__init__(fmt=\"pickle\", timeline=timeline, **kwargs)\n    \n    def build_wav(self):\n        sampleRate = 48000.0 # hertz\n        obj = wave.open(str(self.output_folder.parent / self.filename), 'w')\n        obj.setnchannels(2)\n        obj.setsampwidth(2)\n        obj.setframerate(sampleRate)\n\n        for i in range(0, tl.duration):\n            res = (self.func(Frame(i, self))\n                .scale(-1, 1)\n                .rotate(-45)\n                .translate(-500, -500)\n                .removeOverlap()\n                .flatten(1))\n            \n            left, right = [], []\n            for (_, pts) in res._val.value:\n                if len(pts) > 0:\n                    left.append(pts[0][0])\n                    right.append(pts[0][1])\n            \n            for _ in range(0, self.samples_per_frame):\n                for idx, l in enumerate(left):\n                    data = struct.pack('<h', int(l)*24)\n                    obj.writeframesraw(data)\n                    data = struct.pack('<h', int(right[idx])*24)\n                    obj.writeframesraw(data)\n            \n        obj.close()\n        print(\"/wrote-wav:\", self.name, self.filename)\n\n\ntl = Timeline(60)\nl = __VERSION__[\"text\"]\n\n@sonification(tl, f\"_{l}.wav\")\ndef letter(f):\n    return (StSt(l, Font.ColdtypeObviously()\n        , fontSize=f.e(\"seio\", 2, r=(750, 1000))\n        , wdth=f.e(\"eeio\", 2, r=(1, 0))\n        , wght=f.e(\"ceio\", 2))\n        .align(f.a.r)\n        .fssw(-1, 0, 2)\n        .pen()\n        .removeOverlap()\n        #.explode()[0] # do this to knock out counters\n        )\n\n\ndef build():\n    letter.build_wav()"
  },
  {
    "path": "examples/animations/spreadstack.py",
    "content": "from coldtype import *\n\n@animation((1080, 540), 60, bg=1)\ndef scratch(f):\n    ex = f.e(\"cei\", r=(0, 60))\n    rs = random_series(-ex, ex, f.i)\n\n    return (P()\n        .rect(Rect(100, 100))\n        .difference(P(Rect(100, 100))\n            .t(-50, -50)\n            .rotate(20))\n        .layer(5).spread(spacing:=-20)\n        .layer(3).stack(spacing)\n        .fssw(hsl(0.8, 1, a=0.3), 0, 1)\n        .align(f.a.r)\n        .mapv(lambda i, p: p.rotate(rs[i])))\n"
  },
  {
    "path": "examples/animations/superoutline.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\nfrom coldtype.warping import warp\n\nfnt = Font.ColdtypeObviously()\nrs = random_series(0, 1000)\n\n@animation(bg=1, timeline=Timeline(92, 23.976))\ndef outline(f):\n    return (StSt(\"COLD\\nTYPE\", fnt, 330,\n            ro=1, rotate=10, leading=45,\n            tu=f.e(1, rng=(500, 70)),\n            wdth=f.e(1))\n        .align(f.a.r)\n        .pen()\n        .ch(warp(-1, rs[f.i//4+10], mult=5))\n        .layer(\n            lambda p: p.fssw(hsl(0.3), hsl(0.3, 1, 0.75), 30),\n            lambda p: p.layer(\n                lambda p: p.fssw(1, 1, 100).ch(warp(-1, rs[f.i//4], mult=10)),\n                lambda p: p.fssw(0, 0, 17))\n                .ch(phototype(f.a.r,\n                    blur=3, cut=200, cutw=20,\n                    fill=hsl(0.75, 1, 0.605))),\n            lambda p: p.f(1)\n                .ch(phototype(f.a.r,\n                    blur=3, cutw=10,\n                    cut=230+f.e(1, rng=(-30, 5)),\n                    fill=hsl(0.65, 0.7, 0.55)))))"
  },
  {
    "path": "examples/animations/tapered_shadow.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\nfrom coldtype.warping import warp\n\nfnt = Font.ColdtypeObviously()\nrs = random_series(0, 1000)\n\n# tx, ty, tw, th\n\n@animation(bg=0, timeline=Timeline(92, 24))\ndef taper(f):\n    txt = (StSt(\"COLD\\nTYPE\", fnt, 330\n        , wdth=f.e(1)\n        , leading=f.e(1, rng=(45, 75))\n        , tu=70+f.e(1, rng=(80, 0)))\n        .mapv(lambda i, p: p.rotate(f.adj(-i).e(1, rng=(5, 15))))\n        .align(f.a.r)\n        .pen()\n        .ch(warp(-1, rs[f.i//4+10], mult=5)))\n\n    return (txt\n        .ch(warp(-1, rs[f.i//4+10], mult=5))\n        .layer(\n            lambda p: p.layer(\n                lambda p: p.f(1)\n                    .t(o:=15+f.e(1, rng=(0, 10)), -o) \n                    .ch(warp(-1, rs[f.i//4], mult=5)),\n                lambda p: p\n                    .fssw(0, 0, f.e(1, rng=(7, 11))))\n                .ch(phototype(f.a.r,\n                    blur=5, cut=183, cutw=8,\n                    fill=hsl(0.75, 0.94, 0.68)))\n                .___null(),\n            lambda p: p.f(1)\n                .ch(phototype(f.a.r,\n                    blur=3, cutw=15,\n                    cut=230+f.e(1, rng=(-30, 5)),\n                    fill=hsl(0.11, 0.86, 0.63)))\n                .___null()))"
  },
  {
    "path": "examples/animations/texttopoints.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n# inspired by https://p5js.org/reference/#/p5.Font/textToPoints\n\n@animation(timeline=126, bg=hsl(0.6, 1, 0.33))\ndef texttopoints(f):\n    return (StSt(\"COLD\", Font.ColdObvi(), 1000, wdth=0)\n        .align(f.a.r)\n        .pen()\n        .removeOverlap()\n        .flatten(10)\n        .nonlinear_transform(lambda x, y: (x+math.sin(f.i+(y*0.05))*10, y))\n        .f(1)\n        .ch(phototype(f.a.r, fill=hsl(0.6, 1, 0.7), cutw=10)))"
  },
  {
    "path": "examples/animations/transparent_gifski.py",
    "content": "from coldtype import *\n#from coldtype.renderable.animation import gifski\n\n@animation((1080, 540), timeline=30, bg=1)\ndef scratch(f):\n    return (StSt(\"COLD\", Font.ColdObvi(), 500\n        , wdth=f.e(\"eeio\"))\n        .align(f.a.r)\n        .f(hsl(0.7)))\n\nrelease = scratch.gifski(open=True)"
  },
  {
    "path": "examples/animations/transparent_understroke.py",
    "content": "from coldtype import *\nfrom functools import partial\n\nr = Rect(1080, 680)\n\ndef cut(line, i, p):\n    if i > 0:\n        return p.difference(line[i-1].copy().outline(10, drawOuter=False))\n\nletters = (StSt(\"COLD\\nTYPE\", Font.ColdObvi(), 300\n    , tu=-200\n    , ro=1)\n    .map(lambda p: p.map(partial(cut, p))))\n\ncurve = (P().withRect(1000, lambda r, p: p\n    .m(r.psw)\n    .ioc(r.pn, 30, -10)\n    .ioc(r.pse, 0, 50)\n    .ep()))\n\n@animation(r, tl=Timeline(60), bg=0)\ndef understroke_cut(f):\n    return (letters\n        .copy()\n        .map(lambda p: p\n            .track(f.e(curve, 0, rng=(0, 150))))\n        .align(f.a.r)\n        .f(1))"
  },
  {
    "path": "examples/animations/truchet.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n# inspired by https://mauricemeilleur.net/truchet_tiles\n\nat = AsciiTimeline(8, 30, \"\"\"\n                            <\n[0 ]        [0 ]  \n[1  ]          [1  ]\n[2 ]              [2 ]  \n\"\"\")\n\neases = [\"beo\", \"eeo\", \"ceo\"]\ncolors = [hsl(0.17, 0.8), hsl(0.6, 0.8), hsl(0.95, 0.8)]\n\nrs = random_series(0, 3)\nrs2 = random_series()\n\n\n@animation(Rect(1000, 1000), tl=at, bg=0)\ndef truchet1(f):\n    s = Scaffold(f.a.r).numeric_grid(8)\n\n    def rotate(i, p):\n        (p.rotate(90*int(rs[i])) # initial\n            .rotate(f.t.ki(i%3).ec(eases[i%3], rng=(0, 90))))\n    \n    return (P(cr:=s[0].r)\n        .difference(P().oval(cr).t(+cr.w/2).outline(1))\n        .difference(P().oval(cr).t(-cr.w/2).outline(1))\n        .xor(P(cr))\n        .f(1)\n        .replicate(s.cells())\n        .map(rotate)\n        .ch(phototype(f.a.r, blur=5, cut=20, cutw=6)))\n\n\ndef release(passes):\n    from coldtype.renderable.animation import gifski\n    gifski(truchet1, passes)\n    print(\"/release\")"
  },
  {
    "path": "examples/animations/truchet3.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom random import Random\n\n# inspired by https://mauricemeilleur.net/truchet_tiles\n\nrs = random_series(0, 3, seed=0)\nrs2 = random_series()\nrs3 = random_series(0.5, 3.5)\n\ntn = 8\n\nat = AsciiTimeline(10, 30, \"\"\"\n<\n[0 ]                           [1 ]\n  [1    ]           [0  ]\n             [2  ]             [2  ]\n                     [3 ]        [3  ]\n                      [4 ]    [4 ]\n            [5         ]           [5  ]   <\n             [6  ]               [6  ]\n    [7  ]                [7  ]\n      [8  ]                     [8  ]\n        [9  ]      [9  ]\n\"\"\")\n\nspins = []\nfor t in at.timeables:\n    spins.append(Timeable(t.start+6, t.end-6, name=f\"{t.name}_spin\"))\n\nt2 = Timeline(timeables=[*at.timeables, *spins])\n\nrnd = Random()\nrnd.seed(4)\nridxs = list(range(0, tn*tn))\nrnd.shuffle(ridxs)\n\n@b3d_runnable()\ndef setup(bw:BpyWorld):\n    (bw.deletePrevious(materials=False))\n\n@b3d_animation(Rect(1000), tl=at, bg=None)\ndef truchet1(f):\n    t2.hold(f.i)\n\n    def rotate(i, p):\n        ri = ridxs[i]//6\n        (p.rotate(90*int(rs[i]))\n            .rotate(t2.ki(f\"{ri}_spin\")\n                .ec(\"eeio\", (0, 90)))\n            .ch(b3d(lambda bp: bp\n                .extrude(0.25)\n                .locate(z=t2.ki(f\"{ri}\")\n                    .e(\"eeio\", rng=(0, rs3[i]))))))\n    \n    s = Scaffold(f.a.r).numeric_grid(tn)\n\n    return (P(tr:=s[0].r.inset(0.05, 0.05))\n        .difference(P()\n            .append(P().oval(tr).t(tr.w/2))\n            .append(P().oval(tr).t(-tr.w/2)))\n        .f(0)\n        .replicate(s.cells())\n        .map(rotate))"
  },
  {
    "path": "examples/animations/twister.py",
    "content": "from coldtype import *\nfrom functools import partial\n\ndef pair(tx, f, x):\n    fa = f.adj(-x.i*3)\n    ro = fa.e(\"eeio\", 0, rng=(0, -360))\n    p = (P(f.a.r\n            .take(350, \"mdx\")\n            .take(30, \"mny\"))\n        .fssw(1, 0, 5)\n        .translate(0, x.i*10))\n\n    return P(\n        p.copy().rotate(ro),\n        p.copy()\n            .rotate(-ro+270)\n            .translate(tx, 0))\n\n@animation((1080, 1080), timeline=120)\ndef twister(f:Frame):\n    tx = 250\n    return (P().enumerate(range(0, 30),\n        partial(pair, tx, f))\n        .translate(-tx*0.5, 300)\n        .reversePens())"
  },
  {
    "path": "examples/animations/ulrich_e.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom coldtype.timing.easing import all_eases\n\n# e stands for easing\n# adapted from Maurice Meilleur’s adaption of a 1968 piece by Tim Ulrich\n\nr = Rect(1080)\ns = Scaffold(r.inset(20)).numeric_grid(29, gap=4, annotate_rings=True)\n\n\nimg = (StSt(\"e\", \"neuehaas\", 85)\n    .f(1)\n    .align(s[0].r, tx=1, ty=1)\n    .insert(0, P(s[0].r)\n        .f(hsl(0.08, 0.8, 0.6, a=0.0)))\n    .ch(rasterized(s[0].r.inset(-10), wrapped=True)))\n\n@animation(1080, tl=60, bg=hsl(0.11, 0.80, 0.88), mute=0)\ndef manye_live(f):\n    return (P().enumerate(s.cells(), lambda x: img.copy()\n            .declare(\n                ring:=x.el.data(\"ring\"),\n                ring_e:=x.el.data(\"ring_e\"),\n                easer:=all_eases[ring])\n            .align(x.el.r, tx=1, ty=1)\n            .rotate(ring_e*360+f.adj(-ring*8).e(easer, 0, r=(0, -360))))\n        .ch(phototype(f.a.r, 1.5, 120, 30, fill=0.1)))\n\n\n@animation(1080, tl=60, bg=0, mute=1)\ndef manye_live2(f):\n    def letter(x):\n        ring = x.el.data(\"ring\")\n        ring_e = x.el.data(\"ring_e\")\n        easer = all_eases[ring]\n        easer = \"ceio\"\n\n        return (StSt(\"e\", \"PolymathV\", 215, wght=f.adj(-ring*8).e(easer), opsz=1)\n            .f(1)\n            .align(x.el.r, tx=1, ty=1)\n            .rotate(ring_e*360+f.adj(-ring*8).e(easer, 0, r=(0, -360))))\n\n\n    return (P().enumerate(s.cells(), letter)\n        .ch(phototype(f.a.r, 1.5, 120, 30, fill=1)))"
  },
  {
    "path": "examples/animations/versioned.py",
    "content": "from coldtype import *\n\nVERSIONS = {\n    \"A\": dict(text=\"COLD\", font=\"ObviouslyV\"),\n    \"B\": dict(text=\"TYPE\", font=\"ObviouslyV\"),\n} #/VERSIONS\n\n@animation((1080, 1080/4), bg=1, tl=45, release=lambda a: a.gifski())\ndef versioned_ƒVERSION(f):\n    return (StSt(__VERSION__[\"text\"].upper()\n        , __VERSION__[\"font\"]\n        , 100\n        , wght=f.e(\"eeio\", 2)\n        , wdth=f.e(\"eeio\", 1))\n        .align(f.a.r))"
  },
  {
    "path": "examples/animations/versioned_with_sidecar.py",
    "content": "from coldtype import *\n\nroot = ººsiblingºº(\"../..\").resolve()\n\n\"\"\"\n__VERSION__ is populated by VERSIONS\ndefined in <filename>_versions.py versions of\nthis <filename>.py\n\"\"\"\n\n@animation(bg=0)\ndef scratch_ƒVERSION(f):\n    return (P(\n        StSt(__VERSION__[\"key\"], Font.RecMono(), 72),\n        StSt(str(__VERSION__[\"file\"].relative_to(root)), Font.RecMono(), 24),\n        )\n        .stack(20)\n        .align(f.a.r)\n        .rotate(f.e(\"l\", 0, r=(0, 360))))\n"
  },
  {
    "path": "examples/animations/versioned_with_sidecar_versions.py",
    "content": "from coldtype import *\n\nVERSIONS = {}\nfor file in sorted(ººsiblingºº(\".\").glob(\"*.py\")):\n    if not file.stem.startswith(\"_\"):\n        VERSIONS[file.stem] = dict(file=file)"
  },
  {
    "path": "examples/animations/vertical_scale.py",
    "content": "from coldtype import *\n\n@animation(tl=50, bg=1)\ndef scratch(f):\n    ri = f.a.r.inset(30)\n    rng = (1, 3)\n    fs = 110\n\n    hello = (StSt(\"Hello\", Font.MuSan(), fs, case=\"upper\", wght=1, wdth=1, fit=ri.w)\n        .align(ri, \"N\", ty=1, tx=0)\n        .map(lambda i, p: p.scale(1, f.adj(i).e(\"eeio\", rng=rng), pt=p.ambit(ty=1).pn)))\n    \n    there = (StSt(\"There\", Font.MuSan(), fs+100, case=\"upper\", wght=0.5, wdth=1, fit=ri.w)\n        .align(ri, \"C\", ty=1, tx=0)\n        .map(lambda i, p: p.scale(1, f.adj(i).e(\"eeio\", rng=(3, 0.65)), pt=p.ambit(ty=1).pc)))\n\n    world = (StSt(\"World\", Font.MuSan(), fs, case=\"upper\", wght=1, wdth=1, fit=ri.w)\n        .align(ri, \"S\", ty=1, tx=0)\n        .map(lambda i, p: p.scale(1, f.adj(i).e(\"eeio\", rng=rng), pt=p.ambit(ty=1).ps)))\n    \n    return hello + there + world"
  },
  {
    "path": "examples/animations/warpblur.py",
    "content": "from coldtype import *\nfrom coldtype.fx.warping import warp\nfrom coldtype.fx.skia import phototype\n\nkeyframes = [\n    dict(wdth=0, wght=0, rotate=-15, leading=200,\n        font_size=700, warp=0, blur=15),\n    dict(wdth=1, wght=1, rotate=0, leading=10,\n        font_size=50, warp=200, blur=5),\n    dict(wdth=0, wght=1, rotate=15, leading=100,\n        font_size=320, warp=50, blur=3),\n    dict(wdth=0.5, wght=0.5, rotate=0, leading=-470,\n        font_size=250, warp=0, blur=1)]\n\nat = AsciiTimeline(8, 30, \"\"\"\n                <\n0   1   2   3   \n\"\"\", keyframes).shift(\"end\", +10)\n\n@animation(timeline=at, bg=0)\ndef warp_blur(f):\n    state = f.t.kf(\"eeio\")\n    return (StSt(\"WARP\\nBLUR\", Font.MuSan(), ro=1, **state)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .pen()\n        .f(1)\n        .ch(warp(None, # can be a number like 5 to preserve curves\n            f.i*30, f.i, mult=int(state[\"warp\"])))\n        .ch(phototype(f.a.r, state[\"blur\"], cutw=50)))"
  },
  {
    "path": "examples/animations/wheee.py",
    "content": "from coldtype import *\n\n# keyboard shortcut backslash to clear visual buffer\n\n@animation((1080, 1080), timeline=120, bg=0, composites=1)\ndef wheee(f):\n    return P(\n        f.last_render(lambda img: img.rotate(0)),\n        (StSt(\"TYPE\", Font.MuSan(), f.e(\"qeio\", 1, r=(210, 70))\n            , wdth=f.e(\"qeio\", r=(1, 0))\n            , wght=f.e(\"qeio\"))\n            .align(f.a.r)\n            .rotate(f.e(\"l\", 2, cyclic=0, r=(0, 360)))\n            .fssw(hsl(f.e(\"l\", 2, cyclic=0), s=0.6), 0, 4, 1)))"
  },
  {
    "path": "examples/apkjr.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\nfonts = [f for f in Font.List(r\".*\", r\"_wood|_historical\") if \"Catchwords\" not in f.name and \"cmu\" not in f.name and \"AmericanStars\" not in f.name and \"BordersOne\" not in f.name and \"BookJacketAlts\" not in f.name]\n\n@animation((1080, 1080/3), bg=0, tl=Timeline(60, 12))\ndef options(f):\n    rsi = random_series(0, len(fonts), f.i, 10000, mod=int)\n\n    p = P()\n    txt = \"HELLO\"\n    idx = 0\n    last = None\n    total_width = 0\n    for c in txt:\n        while True:\n            #print(idx)\n            fnt = fonts[rsi[idx]]\n            if fnt == last:\n                idx += 1\n                continue\n            last = fnt\n            idx += 1\n            try:\n                candidate = StSt(c, fnt, 200)[0]\n                idx += 1\n                if \"notdef\" in candidate.data(\"glyphName\"):\n                    #print(\"! notdef\")\n                    pass\n                else:\n                    candidate.scaleToRect(f.a.r.take(200, \"CY\")).zero(tx=1, ty=1).unframe()\n                    w = candidate.ambit(tx=1).w\n                    if idx < 5000 and (total_width + w) > 900:\n                        #print(\"! too wide\")\n                        continue\n                    total_width += w\n                    #print(\">\", c, candidate.data(\"glyphName\"), fnt.name)\n                    p.append(candidate)\n                    break\n            except:\n                pass\n\n    return (p\n        #.mapv(lambda p: p.up().insert(0, P(p.ambit(tx=0, ty=0)).f(hsl(0.3, a=0.3))).zero())\n        #.mapv(λ.zero(tx=1, ty=1).unframe())\n        .spread(10, tx=1, zero=1)\n        .align(f.a.r)\n        .f(0)\n        .f(1).ch(phototype(f.a.r, 2, 80, 30, 1))\n        )\n\n@animation(tl=Timeline(60, 12), bg=0, solo=1)\ndef three(f):\n    return (P(\n        options.pass_img(f.i).in_pen().ch(luma(f.a.r)).ch(precompose(f.a.r)).ch(fill(hsl(0.6, 0.7))),\n        options.pass_img(f.i+10).align(f.a.r, \"C\").in_pen().ch(luma(f.a.r)).ch(precompose(f.a.r)).ch(fill(hsl(0.40, 0.65))),\n        options.pass_img(f.i+20).align(f.a.r, \"N\").in_pen().ch(luma(f.a.r)).ch(precompose(f.a.r)).ch(fill(hsl(0.90, 0.7)))\n    ))"
  },
  {
    "path": "examples/apng.py",
    "content": "from coldtype import *\n\n\ndef release_apng(a:animation):\n    fe = FFMPEGExport(a, False, loops=1)\n    fe.fmt = \"png\"\n    fe.args = fe.args[:-4] + [\"-plays\", \"0\", \"-f\", \"apng\"]\n    fe.write(verbose=True)\n    fe.open()\n\n\n@animation((540, 720/2), tl=Timeline(30, 30), release=release_apng)\ndef apng(f:Frame):\n    return (StSt(\".PNG\", Font.MuSan(), 200, wght=f.e(\"eeio\"))\n        .align(f.a.r, ty=0)\n        .f(hsl(f.e(\"l\", 0 )))\n        .rotate(f.e(\"eeio\", 1, rng=(-20, 20))))\n"
  },
  {
    "path": "examples/axidraw/hatching.py",
    "content": "from coldtype import *\nfrom coldtype.axidraw import *\n\nco = Font.ColdtypeObviously()\nscript = Font.JBMono()\n\n@axidrawing(flatten=50)\ndef test_draw(r):\n    border = P(r.inset(50)).tag(\"border\")\n    \n    letters = (StSt(\"COLD\", co, 900, wdth=0.15, ro=1)\n        .pen()\n        .align(r)\n        .tag(\"letters\")\n        .flatten(10))\n\n    hatch_rs = r.inset(20).subdivide(150, \"N\")\n\n    hatches = (P().enumerate(hatch_rs, lambda x:\n            P(x.el) if x.i%2==0 else None)\n        .pen()\n        .intersection(letters.copy())\n        .explode()\n        .map(lambda _, p: P().line(p.ambit().es))\n        .s(0, 0.25)\n        .tag(\"hatches\"))\n\n    typ = (StSt(\"type\", script, 500\n        , ro=1\n        , tu=-120\n        , kp={\"y.italic/p\":-20})\n        .align(r, ty=1)\n        .translate(0, -20)\n        .s(hsl(0.65))\n        .tag(\"type\"))\n    \n    return P(border, letters, typ, hatches)\n\nnumpad = {\n    1: test_draw.draw(\"border\"),\n    2: test_draw.draw(\"letters\"),\n    3: test_draw.draw(\"type\"),\n    4: test_draw.draw(\"hatches\"),\n}\n"
  },
  {
    "path": "examples/axidraw/nextdraw.py",
    "content": "from coldtype import *\n\nfrom coldtype.runon.path import P\nfrom coldtype.renderable import renderable\nfrom coldtype.geometry import Rect, Point\nfrom time import sleep\n\nimport time\nfrom fontTools.pens.basePen import BasePen\nfrom fontTools.pens.transformPen import TransformPen\nfrom coldtype.geometry import Rect, Point\n\ntry:\n    from nextdraw import NextDraw\nexcept:\n    print(\"Couldn’t import nextdraw_api\")\n    print(\"https://bantam.tools/nd_py/#installation\")\n    print(\"uv pip install https://software-download.bantamtools.com/nd/api/nextdraw_api.zip\")\n\n\nclass NextDrawPen(BasePen):\n    def __init__(self, dat, page, move_delay=0):\n        super().__init__(None)\n        self.dat = dat\n        self.page = page\n        self.ad = None\n        self.move_delay = move_delay\n        #dat.replay(self)\n        self.last_moveTo = None\n    \n    def _moveTo(self, p):\n        self.last_moveTo = p\n        time.sleep(self.move_delay)\n        self.ad.moveto(*p)\n        time.sleep(self.move_delay)\n\n    def _lineTo(self, p):\n        time.sleep(self.move_delay)\n        self.ad.lineto(*p)\n\n    def _curveToOne(self, p1, p2, p3):\n        print(\"! CANNOT CURVE !\")\n\n    def _qCurveToOne(self, p1, p2):\n        print(\"! CANNOT CURVE !\")\n\n    def _closePath(self):\n        # can this work?\n        if self.last_moveTo:\n            self.ad.lineto(*self.last_moveTo)\n\n    def draw(self,\n        scale=0.01,\n        cm=False,\n        ad=None,\n        move_delay=0,\n        zero=True,\n        ):\n\n        self.dat.scale(scale, point=Point(0, 0))\n        page = self.page.scale(scale)\n        bounds = self.dat.bounds()\n\n        limits = Rect(0, 0, 11, 8.5)\n        if cm:\n            limits = limits.scale(2.54)\n        \n        def small_enough(r):\n            return (r.mnx >= 0\n                and r.mny >= 0\n                and r.mxx <= limits.w\n                and r.mxy <= limits.h)\n\n        if small_enough(page) and small_enough(bounds):\n            print(\"Drawing!\")\n        else:\n            print(\"Too big!\", page, bounds)\n            return False\n        \n        own_ad = False\n        if not ad:\n            own_ad = True\n            ad = NextDraw()\n            ad.interactive()\n            ad.options.units = 1 if cm else 0\n            ad.options.speed_pendown = 50\n            ad.options.speed_penup = 50\n            ad.options.pen_rate_raise = 50\n\n        if own_ad:\n            ad.connect()\n        ad.penup()\n        self.ad = ad\n        self.move_delay = move_delay\n\n        tp = TransformPen(self,\n            (1, 0, 0, -1, 0, page.h))\n        \n        self.dat.replay(tp)\n        ad.penup()\n        time.sleep(move_delay)\n        ad.penup()\n        \n        if zero:\n            ad.moveto(0,0)\n        if own_ad:\n            ad.disconnect()\n\n\ndef aximeta(fn):\n    def _aximeta(pen:P):\n        pen.data(aximeta=dict(fn=fn))\n    return _aximeta\n\ndef dip_pen(seconds=1, location=(0, 0)):\n    return (P()\n        .ch(aximeta(lambda ad: ad\n            .moveto(*location)\n            .pendown()\n            .sleep(seconds)\n            .penup()\n            .moveto(0, 0))))\n\n\nclass NextDrawChainable():\n    def __init__(self, ad):\n        self.ad = ad\n    \n    def moveto(self, x, y):\n        self.ad.moveto(x, y)\n        return self\n    \n    def penup(self):\n        self.ad.penup()\n        return self\n    \n    def pendown(self):\n        self.ad.pendown()\n        return self\n    \n    def sleep(self, t):\n        sleep(t)\n        return self\n\n\nclass nextdrawing(renderable):\n    def __init__(self,\n        vertical=False,\n        flatten=10,\n        **kwargs\n        ):\n        self.flatten = flatten\n        self.vertical = vertical\n        \n        if self.vertical:\n            super().__init__(rect=(850, 1100), **kwargs)\n        else:\n            super().__init__(rect=(1100, 850), **kwargs)\n    \n    def runpost(self, result, render_pass, renderer_state, config):\n        def normalize(p, pos, data):\n            if pos != 0:\n                return\n            \n            if self.flatten:\n                p.flatten(self.flatten, segmentLines=False)\n            \n            s = p.s()\n            if not s or (s and s.a == 0):\n                p.fssw(-1, 0, 3)\n            else:\n                p.fssw(-1, s, 3)\n        \n        res = (super()\n            .runpost(result, render_pass, renderer_state, config)\n            .walk(normalize))\n        return res\n    \n    def draw(self,\n        tag=None,\n        flatten=None,\n        frame=0,\n        test=False,\n        speed_pendown=100,\n        speed_penup=100,\n        pen_rate_raise=100,\n        pen_rate_lower=100,\n        pen_delay_down=0,\n        move_delay=0,\n        ):\n        def _draw(_):\n            ad = None\n\n            def walker(p:P, pos, _):\n                if pos == 0:\n                    ameta = p.data(\"aximeta\")\n                    if ameta:\n                        fn = ameta.get(\"fn\")\n                        if fn:\n                            fn(NextDrawChainable(ad))\n                        return\n\n                    p = p.cond(flatten,\n                        lambda p: p.flatten(\n                            flatten, segmentLines=False))\n                    ap = NextDrawPen(p, Rect(0, 0, 1100, 850))\n                    ap.draw(ad=ad,\n                        move_delay=move_delay,\n                        zero=False)\n\n            res = self.frame_result(frame, post=True)\n            if self.vertical:\n                res = res.copy().rotate(90, point=Point(0, 0)).translate(1100, 0)\n            if tag is not None:\n                if isinstance(tag, int):\n                    res = res[tag].copy(with_data=True)\n                else:\n                    res = res.find_(tag).copy(with_data=True)\n            \n            if test:\n                print(\"-\"*30)\n                print(\"NEXTDRAW TEST\")\n                print(\">\", res)\n                print(\"-\"*30)\n            else:\n                ad = NextDraw()\n                ad.interactive()\n                ad.options.units = 0\n                ad.options.speed_pendown = speed_pendown\n                ad.options.speed_penup = speed_penup\n                ad.options.pen_rate_raise = pen_rate_raise\n                ad.options.pen_rate_lower = pen_rate_lower\n                ad.options.pen_delay_down = pen_delay_down\n                ad.connect()\n                print(\"connected/\")\n                ad.penup()\n                ad.moveto(0,0)\n                try:\n                    res.walk(walker)\n                except Exception as e:\n                    print(\">>>\", e)\n                finally:\n                    ad.penup()\n                    ad.moveto(0,0)\n                    ad.disconnect()\n                    print(\"/disconnected\")\n        \n        return _draw\n\n\n##########################\n### Actual custom code ###\n##########################\n\n\n@nextdrawing(flatten=50) # <- tweak this value; lower for better precision\ndef plot(r:Rect):\n    return (P()\n        .oval(r.inset(200).square())\n        .tag(\"circle\"))\n\n\nnumpad = {\n    1: plot.draw(\"circle\")\n}\n"
  },
  {
    "path": "examples/axidraw/sheet.py",
    "content": "from coldtype import *\nfrom coldtype.axidraw import *\n\n@animation((120, 120), tl=(16**2, 24))\ndef sheet_animation(f):\n    return (StSt(\"A\", Font.MuSan(), 60, wght=f.e(\"eeio\", 4))\n        .align(f.a.r, ty=1)\n        .removeOverlap())\n\n@axidrawing()\ndef sheet(r):\n    return sheet_animation.contactsheet(r.inset(20), 0.75)\n\nnumpad = {\n    1: sheet.draw(\"border\"),\n    2: sheet.draw(\"grid\"),\n    3: sheet.draw(\"frames\"),\n}"
  },
  {
    "path": "examples/axidraw/sheet_read.py",
    "content": "from coldtype import *\nfrom coldtype.img.skiaimage import SkiaImage\nfrom coldtype.fx.skia import phototype, precompose\n\n# res = [\"media/DSC01538.JPG\", 8, -0.45, -384, -253, 327, 233, 0, 0]\n# res = [\"media/DSC01539.JPG\", 7, -0.45, -1084, -453, 337, 233, -9, 4]\nres = [\"/Users/robstenson/Sites/othermodern.com/media/_goodhertz/hires/Capture One Catalog01461RAW lossless compressed.jpg\", 8, -0.45, -954, -333, 327, 233, 0, -9, 4]\n#res = [\"media/DSC01796.JPG\", 8, -0.45, -1054, -443, 298, 204, 0, -6, 10]\n#res = [\"media/DSC02053.JPG\", 8, -0.45, -444, -143, 408, 284, 0, -20, -10]\n#res = [\"media/DSC02309.JPG\", 8, -0.5, -354, -33, 443, 304, 0, -20, 20]\n#res = [\"media/DSC02565.JPG\", 8, 0, -327, -80, 435, 302, -40, -10, 37]\n#res = [\"media/DSC02821.JPG\", 8, -0.5, -327, -180, 378, 258, 0, 0, 0]\n#res = [\"media/DSC03077.JPG\", 8, -0.75, -688, -448, 318, 219, 0, 0, 0]\n#res = [\"/Users/robstenson/Pictures/SigmaFPLTetherTest1/Output/SigmaFPLTetherTest10002 1 2.jpg\", 8, 0, -684, -133, 912, 703, 0, -9, 4]\n\nimgp, sq, ro, xo, yo, xa, ya, xra, xf, yf = res\n\n@animation((1080, 1080), tl=Timeline(16*16, 18), bg=1)\ndef sheet_read(f):\n    img = SkiaImage(ººsiblingºº(imgp))\n\n    x = f.i%16\n    y = f.i//16\n    \n    xe = x/sq\n    ye = y/sq\n\n    return (P(\n        img\n            .t(-271, -5080)\n            .t(x*-468, y*357)\n            #.in_pen(),\n            #.rotate(ro, point=Point(0,0))\n            #.t(xo-(x*xa)+xe*xf+ye*xra, yo-(y*ya)+xe*yf),\n        #StSt(\"A\", Font.MuSan(), 447, wdth=0).align(f.a.r)\n        #P(f.a.r.take(60, \"C\")).outline()\n    )\n    #.layer(1, lambda _: P(f.a.r).f(1).blendmode(BlendMode.Difference))\n    #.ch(precompose(f.a.r))\n    #.ch(phototype(f.a.r, blur=0, cut=172, cutw=26, fill=1))\n    )"
  },
  {
    "path": "examples/bg_fn.py",
    "content": "from coldtype import *\n\ntl = Timeline(30, 12)\n\n@animation((540, 540), tl=tl, render_only=1)\ndef bg_maker(f):\n    return P(\n        P(f.a.r).f(hsl(f.e(\"l\", 0))),\n        StSt(f\"{f.i}\", Font.JBMono(), 250, wght=1, wdth=0)\n           .f(1)\n           .align(f.a.r, tx=0))\n\n@animation(bg_maker.rect, bg=lambda _,rp: bg_maker.pass_img(rp.idx).rotate(-rp.idx), render_bg=1, tl=tl)\ndef bg_user(f):\n  return P(f.a.r.inset(40)).fssw(-1, 1, 6)"
  },
  {
    "path": "examples/bg_img.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\nr = Rect(1080, 540)\n\n@renderable(r)\ndef bg(r):\n    return P(\n        P(r).f(Gradient.Vertical(r, hsl(0.3), hsl(0.6))),\n        StSt(\"BG\", Font.MuSan(), 250, wght=1, wdth=0)\n            .f(1)\n            .align(r)\n            .ch(phototype(r, blur=3, cutw=30)))\n\n@renderable(r, bg=bg)\ndef bg_user(r):\n   return P(r.inset(50)).fssw(-1, 1, 6)"
  },
  {
    "path": "examples/blender/arch.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nAn arch, dynamically generated from a bezier curve;\nthen physics are enabled and the whole thing falls down\n\"\"\"\n\ntl = Timeline(90, fps=30)\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    BpyObj.Find(\"Cube\").delete()\n    BpyObj.Find(\"Light\").locate(y=-5)\n\n    (bpw.delete_previous(materials=False)\n        .cycles(32, False, Rect(1080, 1080))\n        .timeline(tl, output=setup.output_folder / \"arch1_\")\n        .rigidbody(2.5, 300))\n \n    (BpyObj.Cube(\"Floor\")\n        .scale(x=100, y=100, z=0.2)\n        .locate(z=1.65)\n        .apply_scale()\n        .rigidbody(\"passive\", friction=1, bounce=0)\n        .material(\"floor-material\", lambda m: m\n            .f(bw(0))))\n\n@b3d_renderable(reset_to_zero=1, upright=1, center=(0, 1))\ndef arch(r):\n    r = r.inset(200)\n    curve:P = (P()\n        .moveTo(r.psw)\n        .boxCurveTo(r.pn, \"NW\", factor:=.65)\n        .boxCurveTo(r.pse, \"NE\", factor)\n        .fssw(-1, 0, 2))\n\n    return (P().enumerate(curve.samples(20), lambda x: P()\n        .declare(\n            q:=0.49,\n            start:=x.el.pt.project(x.el.tan, d:=100),\n            end:=x.el.pt.project(x.el.tan, -d))\n        .moveTo(start.interp(q, x.el.next.pt.project(x.el.next.tan, d)))\n        .lineTo(start.interp(q, x.el.prev.pt.project(x.el.prev.tan, d)))\n        .lineTo(end.interp(q, x.el.prev.pt.project(x.el.prev.tan, -d)))\n        .lineTo(end.interp(q, x.el.next.pt.project(x.el.next.tan, -d)))\n        .closePath()\n        .f(0)\n        .tag(f\"sample_{x.i}\")\n        .ch(b3d(lambda bp: bp\n            .extrude(1.0)\n            .convert_to_mesh()\n            .rigidbody(friction=1, bounce=0)\n            , upright=1\n            , zero=1))))"
  },
  {
    "path": "examples/blender/array_separate.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    bpw.delete_previous()\n\n    (BpyObj.Cube(\"Cube\")\n        .dimensions(x=0.5, y=0.5, z=0.5)\n        .arrayX(10, constant=1, relative=None)\n        .apply_modifier(\"Array\")\n        .arrayZ(10, constant=1, relative=None)\n        .apply_modifier(\"Array\")\n        .separate_by_loose_parts()\n        .map(lambda bp: bp.origin_to_geometry()))"
  },
  {
    "path": "examples/blender/bauhaus_book_14.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom coldtype.fx.skia import phototype\n\ntxt = [\n    \"bauhausbücher\",\n    \"moholy-nagy\",\n    \"von\\nmaterial\\nzu\\narchitektur\",\n]\n\nr = Rect(\"letter\").scale(2)\n\n@renderable(r, bg=hsl(0), render_bg=0)\ndef cover(r):\n    s = Scaffold(r.inset(100*2, 110*2))\n    s1 = Style(\"GrossV\", 60*2, wdth=1, wght=0.75)\n    txts = (P(\n        StSt(txt[0], s1).f(1)\n            .align(s, \"NE\"),\n        StSt(txt[1], s1.mod(fontSize=51*2)).f(0)\n            .align(s, \"W\")\n            .t(0, 10),\n        StSt(txt[2], s1.mod(fontSize=82*2)).f(0)\n            .align(s, \"SW\")))\n    \n    number = (P(Rect(87*2, 984))\n        .layer(\n            lambda p: p.layer(\n                1,\n                lambda p: p.copy()\n                    .scale(1, 1)\n                    .skew(0.45, 0)\n                    .align(p.ambit(), \"NE\")\n                    .drop(130*2, \"S\"),\n                lambda p: p.copy()\n                    .take(p.w, \"S\")\n                    .scale(2.75, 1)\n                    .t(-40*2, 130*2)),\n            lambda p: p.layer(\n                1,\n                lambda p: p.copy()\n                    .scale(1.1, 1)\n                    .skew(0.60, 0)\n                    .align(p.ambit(), \"NE\")\n                    .take(p.w*1.85, \"E\")))\n        .map(lambda p: p.pen(frame=False).ro())\n        .reverse()\n        .spread(-67*2, zero=True)\n        .xor()\n        .f(0)\n        .print()\n        .layer(1, lambda p: P().enumerate(p.ambit().subdivide_with_leading(60, 14, \"N\"), lambda x: P(x.el.o(0, 1))).pen())\n        .intersection()\n        .f(1)\n        .align(s.r, \"NE\")\n        .t(0, 77)\n        #.f(0)\n        .ch(phototype(r, 0.5, 130, 30, fill=bw(0)))\n        )\n    \n    return P(number, txts)\n\n@b3d_runnable(force_refresh=1)\ndef setup(blw:BpyWorld):\n    blw.delete_previous(materials=False)\n\n    (BpyObj.Plane(\"GlassPlate\")\n        .scale(4, r.aspect()*4)\n        .rotate(x=85)\n        .solidify(0.0005)\n        .locate_relative(y=0.001)\n        .material(\"glass_plate_material\"))\n\n    (BpyObj.Plane(\"Glass\")\n        .scale(4, r.aspect()*4)\n        .rotate(x=85)\n        .material(\"glass_material\", lambda m: m\n            .f(0)\n            .specular(0)\n            .image(cover.pass_path(0))))"
  },
  {
    "path": "examples/blender/boston.py",
    "content": "from coldtype import *\nfrom coldtype.blender import BlenderTimeline, b3d_sequencer\n\n# sound: https://accent.gmu.edu/browse_language.php?function=detail&speakerid=79\n# typed with: https://westonruter.github.io/ipa-chart/keyboard/\n\n\"\"\"\npʰliz kalˠ stɛlɘ\næsk hɚ ɾɘ bɹɪŋ ðiːz θɪŋɡz wɪð hɚ fɹɔm nɘ stɔɘ\nsɪks spuːnz ʌv fɹɛʃ snoʊ pʰiːz\nfaɪv tɪk slæbz ʌv blu tʃiːz\nn meɪbi ɘ snæk fɔɹ hɚ bɹʌðɘ bɔɘb\n\"\"\"\n\nbt = BlenderTimeline(ººBLENDERºº, 275)\n\nprint(bt.file)\n\n@b3d_sequencer((1080, 1080)\n, timeline=bt\n, bg=hsl(0.5)\n, live_preview_scale=0.5\n, audio=ººsiblingºº(\"media/pleasecallstella.wav\")\n)\ndef lyrics(f:Frame):\n    return (f.t.words.currentWord()\n        .pens(f.i, lambda c:\n            (c.text, Style(\"Brill Italic\", 350, tu=30)))\n        .removeFutures()\n        .align(f.a.r)\n        .f(1)\n        .insert(0, lambda p:\n            P(p.ambit().inset(-20).drop(40, \"N\")).f(0)))"
  },
  {
    "path": "examples/blender/direct_objects.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nHere there is no simultaneous 2D/3D; we're just using\nColdtype to script Blender directly\n\n(i.e. this script only works when Blender is running)\n\"\"\"\n\n@b3d_runnable()\ndef setup(blw:BpyWorld):\n    (blw.delete_previous(\"Coldtype\"\n            , materials=True)\n        .delete_previous(\"Cubes\"\n            , materials=True)\n        .timeline(Timeline(120)\n            , resetFrame=0\n            , output=setup.output_folder / \"do1_\"\n            , version=1))\n    \n    blw.rigidbody(1.5, 120)\n\n    (BpyObj.Empty(\"Empty1\"))\n    \n    (BpyObj.Curve(\"ObviGlyph\")\n        .draw(StSt(\"TYPE\", Font.ColdObvi(), 5)\n            .centerZero())\n        .extrude(0.2)\n        .locate(z=7.5)\n        .rotate(x=90)\n        .convert_to_mesh()\n        .rigidbody(\"active\", bounce=0.5)\n        .material(\"coldtype_material\")\n        .shade_flat())\n    \n    (BpyGroup.Curves(\n        StSt(\"COLD\", Font.MuSan(), 3\n            , wght=1, wdth=1)\n            .centerZero()\n        , collection=\"/Glyphs\")\n        .map(lambda bp: bp\n            .parent(\"Empty1\")\n            .extrude(0.25)\n            .locate(z=15)\n            .convertToMesh()\n            .rigidbody(\"active\", bounce=0.5)\n            .material(\"coldtype_material\")))\n    \n    BpyObj.Find(\"Empty1\").locate(z=-2)\n\n    (BpyMaterial.Find(\"monkey_material\")\n        .f(hsl(0.3, 1))\n        .roughness(1)\n        .specular(0))\n\n    monkey = (BpyObj.Monkey()\n        .locate(z=11)\n        .rotate(z=45)\n        .scale(1,1,1)\n        .rigidbody(\"active\", bounce=0.3)\n        .material(\"monkey_material\")\n        .subsurface()\n        .shade_smooth())\n    \n    monkey.copy().locate(x=6)\n    monkey.copy().locate(x=-6)\n    \n    (BpyMaterial.Find(\"monkey_material\")\n        .f(hsl(0.6, 1)))\n    \n    (BpyObj.UVSphere(\"Cube1\", collection=\"Cubes\")\n        .scale(2, 2, 2)\n        .locate(z=20)\n        .rigidbody(\"active\", bounce=0.3)\n        .material(\"cube_material\", lambda m: m\n            .f(hsl(0.85, 1))\n            .transmission(1))\n        .subsurface()\n        .shade_smooth())\n    \n    (BpyObj.Plane()\n        .scale(x=30, y=30)\n        .apply_scale()\n        .rigidbody(\"passive\", bounce=0.5)\n        .material(\"plane_material\", lambda m: m\n            .f(hsl(0.17, 0.8, 0.5))\n            .specular(0)))"
  },
  {
    "path": "examples/blender/displace.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nA giant letter, w/ the top face displaced\nwith a Displace modifier; then animated\nby moving the Displace modifier's coords\nobject w/ a @b3d_animation\n\"\"\"\n\nbig_c = \"C\"\n\n@b3d_runnable()\ndef setup(bw:BpyWorld):\n    (bw.deletePrevious(materials=True))\n\n    glyph = (StSt(big_c, Font.ColdObvi(), 8.5, wght=1)\n        .pen()\n        .shift(-0.5, 0.5))\n    \n    (BpyObj.Curve(\"Glyph\")\n        .draw(glyph)\n        .extrude(1)\n        .origin_to_cursor()\n        .rotate(x=90)\n        .convert_to_mesh()\n        .remesh(6)\n        .apply_modifier(\"Remesh\")\n        .make_vertex_group(lambda p: p.co[2] > 0, name=\"front\")\n        .add_empty_origin()\n        .displace(\n            strength=3.35,\n            midlevel=0,\n            texture=\"Texture\",\n            coords_object=\"Glyph_EmptyOrigin\",\n            direction=\"Z\",\n            vertex_group=\"front\")\n        .subsurface()\n        .smooth(factor=6, repeat=2, x=0, y=0, z=1)\n        .shade_smooth()\n        .material(\"sponge\", lambda m: m\n            .f(hsl(0.65))))\n\n@b3d_animation(tl=30, name=f\"animator_{big_c}\")\ndef animator(f):\n    if bpy and bpy.data:\n        (BpyObj.Find(\"Glyph_EmptyOrigin\")\n            .locate(x=ord(big_c)+f.e(\"l\", 0, r=(0, 2)))\n            .rotate(x=f.e(\"l\", 0, r=(0, 5))))\n\n@b3d_runnable(delay=True)\ndef post_setup(bw:BpyWorld):\n    bw.scene.frame_set(20)"
  },
  {
    "path": "examples/blender/dof.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nA variable font animation that works in 2D and 3D;\nalso a little bit of camera manipulation in here\nto dynamically adjust depth-of-field in coordination\nwith the letters’ movement\n\"\"\"\n\nrs1 = random_series(-5, 5)\n\n@b3d_animation(timeline=180, upright=1)\ndef var3d2(f):\n    if bpy and bpy.data:\n        bpy.data.cameras[\"Camera\"].dof.aperture_fstop = f.e(\"ceio\", 1, rng=(0.1, 0.01))\n    \n    return (StSt(\"DEPTH\\nOF\\nFIELD\", Font.MutatorSans()\n        , fontSize=f.e(\"eeio\", 2, rng=(150, 100))\n        , wdth=f.e(\"eeio\", 1)\n        , wght=f.e(\"ceio\", 4)\n        , leading=30\n        , ro=1)\n        .xalign(f.a.r)\n        .align(f.a.r)\n        .collapse()\n        .mapv(lambda i, p: p\n            .tag(f\"glyph_{i}\")\n            .ch(b3d(lambda bp: bp\n                .extrude(0.1)\n                .locate(\n                    x=0,\n                    y=rs1[i]*f.e(\"eeio\", 2, rng=(0, 1.5)) if i != 5 else 0,\n                    z=0)))))"
  },
  {
    "path": "examples/blender/dominos.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nframes = 160\nsuffix = \"falling_\"\ntext = \"\"\"FALLING\nDOWN\"\"\"\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous(materials=False)\n        .timeline(Timeline(frames, 30), resetFrame=0\n            , output=setup.output_folder / suffix)\n        .rigidbody(2.5, frames))\n    \n    (BpyObj.Cube(\"Floor\")\n        .dimensions(x=30, y=30, z=1)\n        .locate(z=-0.5)\n        .rigidbody(\"passive\")\n        .material(\"floor_mat\"))\n\n    r = Rect(10)\n    \n    curves = P(\n        P().line([r.pw, r.pe]).endPath().centerZero().t(0, 0),\n        P().line([r.pw, r.pe]).endPath().centerZero().t(0, -4),\n        #P().line([r.pw, r.pe]).endPath().centerZero().t(0, -4*2),\n    ).t(-1.5, 2.5)\n\n    dominos = []\n    \n    for idx, curve in enumerate(curves):\n        points = curve.samples(1.3)\n        txt = text.split(\"\\n\")[idx]\n\n        for pt in points:\n            try:\n                glyph = StSt(txt[pt.idx], Font.MuSan(), 4, wdth=1, wght=0).pen()\n                glyph.t(-glyph.ambit(tx=1).x, -glyph.ambit(ty=1).y)\n            except IndexError:\n                glyph = None\n\n            if glyph:\n                dominos.append(BpyObj.Curve(f\"Letter_{pt.idx}\")\n                    .draw(glyph)\n                    .extrude(0.15)\n                    .with_temp_origin((0,0,0), lambda bp: bp.rotate(y=-90))\n                    .convert_to_mesh()\n                    .apply_transform()\n                    .locate(x=pt.pt[0], y=pt.pt[1])\n                    .material(\"letter_mat\"))\n\n        pt = points[0]\n        a = pt.pt.o(0, 1.25).project(pt.tan-90, -0.5)\n        b = pt.pt.o(0, 1.25).project(pt.tan-90, 0.5)\n        c = a.project(pt.tan-90, -3)\n\n        czh = 3\n        (BpyObj.Cube(\"Catalyst\")\n            .dimensions(0.25, 2, cz:=0.5)\n            .locate(x=a.x, y=a.y, z=czh)\n            # .origin_to_cursor()\n            # .rotate(z=pt.tan+180)\n            # .apply_transform()\n            .rigidbody(\"passive\", animated=True, friction=1)\n            .hide()\n            .insert_keyframes(\"location\",\n                (0+idx*(n:=50), lambda bp: bp.locate(x=a.x, y=a.y, z=czh)),\n                (10+idx*n, lambda bp: bp.locate(x=b.x, y=b.y, z=czh)),\n                (20+idx*n, lambda bp: bp.locate(x=c.x, y=c.y, z=czh)))\n            # #.origin_to_geometry()\n            .set_frame(0)\n            )\n\n    dm:BpyObj\n    for dm in dominos:\n        (dm.apply_transform()\n            .origin_to_geometry()\n            .rigidbody(mass=10, friction=0.35, deactivated=True))"
  },
  {
    "path": "examples/blender/dominos2.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nsamples, x, y, z, frames = [\n    (1.5, 3, 0.5, 5, 120),\n    (0.5, 3, 0.25, 5, 120),\n    (0.25, 3, 0.15, 5, 180),\n    (1.2, 3, 0.25, 5, 90)\n][3]\n\nletter = \"A\"\nsuffix = f\"alphabet_{samples}_{x}_{y}_{z}__\"\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous(materials=False)\n        .timeline(Timeline(frames, 30), resetFrame=0\n            , output=setup.output_folder / suffix)\n        .rigidbody(2.5, 250))\n    \n    (BpyObj.Cube(\"Floor\")\n        .dimensions(x=30, y=30, z=1)\n        .locate(z=-0.5)\n        .rigidbody(\"passive\")\n        .material(\"floor_mat\"))\n\n    r = Rect(10)\n    curve = P().oval(Rect(10)).centerZero().repeat(1).subsegment(0, 0.505)\n    curve = P().line([r.pw, r.pe]).endPath().centerZero().t(0, -1)\n    \n    points = curve.samples(samples)\n    dominos = []\n\n    text = \"MONUMENTAL\"\n\n    for pt in points:\n        if False:\n            dominos.append(BpyObj.Cube(f\"Cube_{pt.idx}\")\n                .dimensions(x, y, z)\n                .locate(z=z/2)\n                .rotate(z=pt.tan)\n                .locate(x=pt.pt[0], y=pt.pt[1])\n                .material(\"letter_mat\"))\n        else:\n            try:\n                glyph = StSt(text[pt.idx], Font.MuSan(), 5, wdth=1, wght=0.25, opsz=1).pen()\n                glyph.t(-glyph.ambit(tx=1).x, -glyph.ambit(ty=1).y)\n            except IndexError:\n                glyph = None\n\n            if glyph:\n                dominos.append(BpyObj.Curve(f\"Letter_{pt.idx}\")\n                    .draw(glyph)\n                    .extrude(0.35)\n                    .with_temp_origin((0,0,0), lambda bp: bp.rotate(y=-90))\n                    .convert_to_mesh()\n                    .apply_transform()\n                    #.rotate(z=pt.tan+180)\n                    #.rotate(z=pt.tan+180)\n                    .locate(x=pt.pt[0], y=pt.pt[1])\n                    #.convert_to_mesh()\n                    #.apply_transform()\n                    .material(\"letter_mat\")\n                    )\n\n    pt = points[0]\n    a = pt.pt.project(pt.tan, 0).project(pt.tan-90, -0.5)\n    b = pt.pt.project(pt.tan, 0).project(pt.tan-90, 1.5)\n\n    (BpyObj.Cube(\"Catalyst\")\n        .dimensions(xx:=2, 0.65, zz:=1.75)\n        .locate(x=-1, y=0, z=zz)\n        .origin_to_cursor()\n        .rotate(z=pt.tan+180)\n        .apply_transform()\n        .rigidbody(\"passive\", animated=True, friction=1)\n        #.hide()\n        .insert_keyframes(\"location\",\n            (0, lambda bp: bp.locate(x=a.x, y=a.y, z=zz/2)),\n            (20, lambda bp: bp.locate(x=b.x, y=b.y, z=zz/2)),\n            (50, lambda bp: bp.locate(x=a.x, y=a.y, z=zz/2)))\n        #.origin_to_geometry()\n        )\n\n    for dm in dominos:\n        (dm.apply_transform()\n            .origin_to_geometry()\n            .rigidbody(mass=10, friction=0.35, deactivated=True))"
  },
  {
    "path": "examples/blender/dominos3.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nsamples, x, y, z, frames = [\n    (1.5, 3, 0.5, 5, 120),\n    (0.5, 3, 0.25, 5, 120),\n    (0.25, 3, 0.15, 3, 120),\n    (1.2, 3, 0.25, 10, 120)\n][2]\n\nletter = \"A\"\nsuffix = f\"alphabet_capZ_{samples}_{x}_{y}_{z}__\"\n\nrs1 = random_series(seed=2)\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous(materials=False)\n        .timeline(Timeline(frames, 30), resetFrame=0\n            , output=setup.output_folder / suffix)\n        .rigidbody(2.5, frames))\n    \n    (BpyObj.Cube(\"Floor\")\n        .dimensions(x=30, y=30, z=1)\n        .locate(z=-0.5)\n        .rigidbody(\"passive\")\n        .material(\"floor_mat\"))\n\n    curve = P().oval(Rect(10)).centerZero().repeat(1).subsegment(0, 0.505)\n    \n    points = curve.samples(samples)\n    dominos = []\n\n    for idx, pt in enumerate(points[:-2]):\n        if rs1[idx] <= 1: #> 0.85:\n            dominos.append(\n                #BpyObj.Cube(f\"Cube_{pt.idx}\")\n                #.dimensions(x, y, z)\n                BpyObj.Curve(f\"Cube_{pt.idx}\")\n                .draw(StSt(\"A\", \"Lang\", 4, wdth=1).pen())\n                .rotate(x=90)\n                .extrude(0.05)\n                .convert_to_mesh()\n                .locate(z=z/2)\n                .rotate(z=pt.tan)\n                .locate(x=pt.pt[0], y=pt.pt[1])\n                .material(\"letter_mat\"))\n\n    pt = points[0]\n    a = pt.pt.project(pt.tan, -2).project(pt.tan-90, -0.5)\n    b = pt.pt.project(pt.tan, -2).project(pt.tan-90, 0.5)\n    c = pt.pt.project(pt.tan, -10)\n\n    (BpyObj.Cube(\"Catalyst\")\n        .dimensions(2, 0.65, zz:=1.75)\n        .locate(x=-1, y=0, z=zz)\n        .origin_to_cursor()\n        .rotate(z=pt.tan+180)\n        .apply_transform()\n        .rigidbody(\"passive\", animated=True, friction=1)\n        .hide()\n        .insert_keyframes(\"location\",\n            (0, lambda bp: bp.locate(x=a.x, y=a.y, z=zz/2)),\n            (20, lambda bp: bp.locate(x=b.x, y=b.y, z=zz/2)),\n            (50, lambda bp: bp.locate(x=c.x, y=c.y, z=zz/2))))\n\n    for dm in dominos:\n        (dm.apply_transform()\n            .origin_to_geometry()\n            .rigidbody(mass=10, friction=0.35, deactivated=True))"
  },
  {
    "path": "examples/blender/hobeauxborders.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nIf you have a copy of Hobeaux Rococeaux Borders\n(https://ohnotype.co/fonts/hobeaux-rococeaux),\nyou can make lovely frames using this code\n\"\"\"\n\nfnt = Font.Find(\"Hobeaux-Roc.*Bor\")\nstyles = [\n    \"Aa \", \"B  \", \"Cc3\", \"Dd4\", \"Ee5\",\n    \"Ff6\", \"Gg \", \"Hh8\", \"Ii9\", \"Jj0\",\n    \"Kk!\", \"Ll@\", \"Mm#\", \"Nn$\", \"Oo%\",\n    \"Pp^\", \"Qq&\", \"Rr \", \"Ss(\", \"Tt)\",\n    \"Uu-\", \"Vv=\", \"Ww_\", \"Xx+\", \"Yy \",\n]\n\ndef hobeauxBorder(r, style=0, fs=200):\n    s = styles[style]\n    b, c, m = [StSt(x, fnt, fs).pen() for x in s]\n    bw, cw = [e.ambit().w for e in (b, c)]\n    \n    nh, nv = int(r.w/bw/2), int(r.h/bw/2)\n    bx = Rect(bw*nh*2+cw*2, bw*nv*2).align(r)\n\n    return (b.layer(\n        lambda p: p\n            .layer(nh)\n            .append(c)\n            .spread()\n            .append(m)\n            .mirrorx()\n            .translate(*bx.pn)\n            .mirrory(bx.pc),\n        lambda p: p\n            .layer(nv)\n            .spread()\n            .append(m.copy())\n            .rotate(90, point=(0, 0))\n            .translate(cw, 0)\n            .mirrory()\n            .translate(*bx.pw)\n            .mirrorx(bx.pc))\n        .pen()\n        .unframe())\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    bpw.delete_previous()\n\n@b3d_animation(timeline=len(styles))\ndef b1(f):\n    return (hobeauxBorder(f.a.r.inset(150), f.i, 500)\n        .scale(0.9)\n        .tag(\"Pattern\")\n        .ch(b3d(lambda bp: bp\n            .extrude(0.25)\n            .material(\"Pattern_mat\", lambda m: m\n                .f(hsl(0.17, 0.8, 0.7))))))"
  },
  {
    "path": "examples/blender/ifg.py",
    "content": "from coldtype import *\nfrom coldtype.blender import BlenderTimeline, b3d_sequencer\nfrom coldtype.fx.skia import phototype\n\nobv = Font.Find(\"ObviouslyV\", \"__variables\")\n\nbt = BlenderTimeline(ººBLENDERºº, 5400)\n\nifg = bt.interpretWords(include=\"+1\")\naction = bt.interpretWords(include=\"+2\")\nadlib = bt.interpretWords(include=\"+4\")\nsuggestion = bt.interpretWords(include=\"+5\")\n\n@b3d_sequencer((1920, 1080)\n, timeline=bt\n, bg=None\n, render_bg=False\n, live_preview_scale=0.25\n)\ndef lyrics(f:Frame):\n    r_ifg = f.a.r.inset(650, 446)\n\n    def obvi(c):\n        txt = c.text\n        return (txt.upper(), Style(obv, 120, wdth=0.5, wght=0.85, ss01=1, slnt=1, tu=-20))\n\n    top = (ifg.currentGroup(f.i)\n        .pens(f.i, obvi, fit=r_ifg.w)\n        .align(r_ifg, \"N\")\n        .removeFutures()\n        .fssw(1, 0, 10, 1))\n\n    bottom = (action.currentGroup(f.i)\n        .pens(f.i, obvi, fit=r_ifg.w)\n        .align(r_ifg, \"S\")\n        .removeFutures()\n        .fssw(1, 0, 10, 1))\n    \n    try:\n        if \"a song\" in bottom[0][0][0].data(\"clip\").text:\n            bottom[0][0][0].filter(lambda idx, p: idx > 3)\n        if \"a bike\" in bottom[0][0][0].data(\"clip\").text:\n            bottom[0][0][0].filter(lambda idx, p: idx > 3)\n        if \"a juice\" in bottom[0][0][0].data(\"clip\").text:\n            bottom[0][0][0].filter(lambda idx, p: idx > 4)\n        if \"a cat\" in bottom[0][0][0].data(\"clip\").text:\n            bottom[0][0][0].filter(lambda idx, p: idx > 2)\n    except Exception as _:\n        pass\n    \n    lockup = P(top, bottom)#.t(0, -220)\n\n    ad = (adlib.currentGroup(f.i)\n        .pens(f.i, lambda x: (x.text, Style(\"Lovesong\", 100)))\n        #.scale(0.5, 1)\n        .align(f.a.r.drop(600, \"S\"), \"CX\")\n        .rotate(15)\n        .removeFutures()\n        .pen()\n        .fssw(1, 0, 10, 1))\n    \n    sugg = (suggestion.currentGroup(f.i)\n        .pens(f.i, lambda x: (x.text, Style(\"Softie\", 200, wght=0.25)))\n        #.scale(0.5, 1)\n        .align(f.a.r.inset(250).drop(340, \"S\"), \"N\")\n        .rotate(-15)\n        .removeFutures()\n        .pen()\n        .fssw(1, 0, 10, 1))\n\n    style = bt.current(3)\n    if style.name:\n        if style.name == \"scramble\":\n            lockup[0].mapv(lambda p: p.rotate(35))\n            lockup[1].mapv(lambda p: p.rotate(-15))\n        elif style.name == \"scramble3\":\n            lockup[0].mapv(lambda p: p.rotate(-15))\n            lockup[1].mapv(lambda p: p.rotate(35))\n        elif style.name == \"scramble2\":\n            lockup[0].mapv(lambda p: p.rotate(-15))\n            lockup[1].mapv(lambda p: p.rotate(35))\n            lockup.rotate(-15)\n            ad.rotate(-20)\n        \n        if style.name == \"fade\":\n            o = style.e(\"l\", 0, rng=(1, 0))\n            lockup.alpha(o)\n            ad.alpha(o)\n\n    return P(P(lockup + ad).t(0, -220) + sugg).ch(phototype(f.a.r, 2, 150, 30))"
  },
  {
    "path": "examples/blender/img.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom coldtype.fx.skia import rasterize\n\n\"\"\"\nDemonstration of two ways to display\nan image on a plane in Blender\n\"\"\"\n\nimg_path = __sibling__(\"media/rasterized_test.png\")\n\nimg = (StSt(\"COLD\\nTYPE\", Font.ColdtypeObviously()\n    , fontSize=500\n    , wdth=0.25)\n    .align(Rect(1080, 1080))\n    .mapv(lambda p: p\n        .f(Gradient.V(p.ambit(), hsl(0.3), hsl(0.7))))\n    .ch(rasterize(Rect(1080, 1080), img_path)))\n\n@b3d_runnable()\ndef show_img_direct(bpw:BpyWorld):\n    bpw.delete_previous()\n\n    (BpyObj.Plane(\"DirectImage\")\n        .locate(z=0.25)\n        .rotate(z=15)\n        .scale(2, 2, 1)\n        .material(\"direct_image_mat\", lambda m: m\n            .image(img_path)))\n\n@b3d_renderable()\ndef show_img(r):\n    return (P(r).f(-1).img(img_path, r)\n        .ch(b3d(lambda p: p, material=\"auto\", primitive=\"plane\")))"
  },
  {
    "path": "examples/blender/liveimage.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nDemonstration of how to display a dynamic\nimage on a plane\n\"\"\"\n\nchars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\n@renderable((1080, 1080), bg=0, render_bg=0)\ndef embedded_image(r):\n    char = \"A\"\n    if bpy:\n        char = chars[bpy.context.scene.frame_current]\n    \n    return (StSt(char, Font.MutatorSans(), 1000, ro=1, wdth=0, wght=1)\n        .align(r)\n        .pen()\n        .f(1))\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous()\n        .cycles(128))\n\n@b3d_animation(tl=len(chars), force_refresh=True)\ndef anim1(f):\n    proj = BpyObj.Find(\"Reprojection\")\n    if not proj.obj:\n        proj = BpyObj.Plane(\"Reprojection\").scale(2.5, 2.5)\n    \n    (proj.material(\"embedded_image\", lambda m: m\n            .image(embedded_image, emission=0, render=True))\n        .rotate(x=-55))"
  },
  {
    "path": "examples/blender/noordzijcube.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nA classic 5-by-5 Noordzij Cube, displaying any\nvariable font with three axes\n\n(https://letterror.com/articles/noordzij-cube.html)\n\"\"\"\n\nfnt = Font.Find(\"ObviouslyV\")\n\nd = 5\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous()\n        .cycles(128)\n        .timeline(Timeline(240)\n            , resetFrame=0\n            , output=setup.output_folder / \"noord1_\"))\n    \n    (BpyObj.Cube(\"Floor\")\n        .dimensions(x=d*2, y=d*2, z=0.25)\n        .locate(x=d, y=d)\n        .origin_to_cursor()\n        .locate(x=-d/2, y=-d/2, z=-1)\n        .material(\"floor_mat\", lambda m: m\n            .f(0)\n            .specular(0)\n            .roughness(1)))\n    \n    pivot = (BpyObj.Empty(\"Center\")\n        .locate(x=(d-1)/2, y=(d-1)/2, z=0)\n        .insert_keyframes(\"rotation_euler\",\n            (0, lambda bp: bp.rotate()),\n            (240, lambda bp: bp.rotate(z=360)))\n        .make_keyframes_linear(\"rotation_euler\"))\n    \n    (BpyObj.Find(\"Camera\").parent(pivot))\n    \n    def add_glyph(x, y, z):\n        (BpyObj.Curve(f\"Glyph_{x}_{y}_{z}\")\n            .draw(StSt(\"A\", fnt, 0.5\n                , slnt=x/(d-1)\n                , wdth=(y/(d-1))\n                , wght=1-((z/(d-1))))\n                .centerZero()\n                .pen())\n            .rotate(x=90)\n            .locate(x=x, y=y, z=z)\n            .extrude(0.1)\n            .convert_to_mesh()\n            .material(f\"letter_mat_{y}\", lambda m: m\n                .f(1)\n                #.f(hsl(y/(d+1), 1, 0.8))\n                .specular(0)\n                .roughness(1)))\n    \n    for z in range(0, d):\n        for y in range(0, d):\n            for x in range(0, d):\n                add_glyph(x, y, z)"
  },
  {
    "path": "examples/blender/parched.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@animation((1080, 1080), timeline=360, solo=1)\ndef varfont_animation_overlay(f):\n    ease_curve = P().withRect(1000, lambda r, p: p\n        .moveTo(r.psw)\n        .ioEaseCurveTo(r.pne, 19, 10))\n    \n    return (P(\n        Glyphwise(\"PARCH\", lambda g:\n            Style(\"ParchVF\", 50, DCAY=f.adj(g.i*10).e(ease_curve, 2, rng=(0.5, 0))))\n            .align(f.a.r.inset(50), \"NW\")\n            .f(0),\n        Glyphwise(\"OVERLAP TYPE\", lambda g:\n            Style(\"ParchVF\", 30, DCAY=f.adj(g.i*10).e(ease_curve, 2, rng=(0.5, 1))))\n            .align(f.a.r.inset(50), \"SE\")\n            .f(0),\n            #ease_curve.copy().scaleToRect(f.a.r.inset(20)).align(f.a.r).fssw(-1, 0, 7)\n            ))\n\n@animation((1080, 1080), timeline=360)\ndef varfont_animation(f):\n    ease_curve = P().withRect(1000, lambda r, p: p\n        .moveTo(r.psw)\n        .ioEaseCurveTo(r.pne, 19, 10))\n    \n    return (P(\n        Glyphwise(\"DRY\\nCLEANERS\", lambda g:\n            Style(\"ParchVF\", 230, DCAY=f.e(ease_curve, 0, rng=(0.5, 0 if g.l > 0 else 1))))\n            .xalign(f.a.r)\n            .lead(100)\n            .align(f.a.r)\n            .align(f.a.r, tx=0)\n            .f(0),\n            #ease_curve.copy().scaleToRect(f.a.r.inset(20)).align(f.a.r).fssw(-1, 0, 7)\n            ))\n\n@b3d_runnable(force_refresh=1)\ndef setup(blw:BpyWorld):\n    (blw\n        .delete_previous(materials=False)\n        .timeline(Timeline(360, 24), output=setup.output_folder / \"p1_\"))\n\n    sun = BpyObj.Find(\"Light\")\n    (sun.insert_keyframes(\"rotation_euler\",\n        (0, lambda bp: bp.rotate(z=-170)),\n        (360, lambda bp: bp.rotate(z=-44)))\n        #.make_keyframes_linear(\"rotation_euler\")\n        )\n\n    (BpyObj.Plane(\"Projection\")\n        .scale(3, 3)\n        .rotate(x=90)\n        .locate(0, 0, 2)\n        .material(\"projection_material\", lambda m: m\n            .f(0)\n            .specular(0)\n            .animation(varfont_animation)))"
  },
  {
    "path": "examples/blender/physics_direct.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nSome text falls from on high\n(using Blender directly via @b3d_runnable)\n\"\"\"\n\ntxt = \"FALL\\nING\\nTEXT\"\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous()\n        .timeline(Timeline(90), resetFrame=0\n            , output=setup.output_folder / \"ft1_\")\n        .rigidbody(speed=3, frame_end=1000))\n    \n    (BpyObj.Find(\"Plane\")\n        .rigidbody(\"passive\", friction=1, bounce=0)\n        .material(\"floor_mat1\", lambda m: m\n            .f(1)\n            .specular(1)\n            .roughness(0.25)))\n    \n    (BpyGroup.Curves(\n        StSt(txt, Font.MutatorSans(), 3\n            , wght=1\n            , leading=1)\n            .map(lambda p: p.track_to_width(9))\n            .deblank()\n            .centerZero())\n        .map(lambda bp: bp\n            .extrude(0.275)\n            .locate(z=30)\n            .convert_to_mesh()\n            .rigidbody(friction=0.5)\n            .material(\"letter_mat1\", lambda m: m\n                .f(hsl(0.07, 1, 0.5))\n                .roughness(1)\n                .specular(0))))\n"
  },
  {
    "path": "examples/blender/physics_upright.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nA 3D Physics simulation that uses lo-res polygons to do the actual physics, then uses copied, hi-res bezier curves (parented to the lo-res polygons) to display\n\"\"\"\n\ntxt = \"COLD\\nTYPE\"\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous()\n        .timeline(Timeline(150), resetFrame=0\n            , output=setup.output_folder / \"ct1_\")\n        .cycles(128)\n        .rigidbody(speed=2, frame_end=150))\n    \n    (BpyObj.Plane(\"Field\")\n        .rigidbody(\"passive\", friction=1, bounce=0)\n        .dimensions(x=160, y=130)\n        .material(\"field_mat\", lambda m: m\n            .f(0)\n            .specular(0)\n            .roughness(1)))\n\n    lockup = (StSt(txt, Font.ColdObvi(), 7, wdth=0.5, leading=1)\n        .map(lambda p: p.track_to_width(13))\n        .centerZero()\n        .translate(0, 6)\n        .deblank()\n        .collapse())\n    \n    lores = (BpyGroup.Curves(lockup, \"Letter_Lores\")\n        .map(lambda idx, bp: bp\n            .extrude(0.5)\n            .with_temp_origin((0, 0, 0), lambda bp: bp\n                .rotate(x=90))))\n\n    hires = lores.copy(\"Letter_Hires\")\n\n    lores.map(lambda bp: bp\n        .convert_to_mesh()\n        .remesh(3)\n        .apply_modifier(\"Remesh\")\n        .rigidbody(friction=1, bounce=0.5))\n    \n    hires.map(lambda idx, bp: bp\n        .parent(f\"Letter_Lores_{idx}\", hide=True)\n        .material(\"letter_mat\", lambda m: m\n            .f(1)))"
  },
  {
    "path": "examples/blender/reprojection.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\na 2d coldtype variable font animation;\nin the same file as @b3d_runnable that\ndisplays that 2d animation in a 3d world\n\"\"\"\n\n# to fully re-cache Rendered sequence in blender, make sure to set force_refresh=1 on your @b3d_runnable\n\n@animation((540, 540), timeline=30)\ndef varfont_animation(f):\n    return (P(\n        Glyphwise(\"COLD\", lambda g:\n            Style(Font.ColdObvi(), 250\n                , wdth=f.adj(-g.i*40).e(\"seio\")))\n            .align(f.a.r, tx=0)\n            .f(hsl(0.3)),\n        StSt(str(f.i)\n            , Font.JBMono(), 50)\n            .align(f.a.r.inset(50), tx=0, y=\"S\")\n            .f(0)))\n\n@b3d_runnable(force_refresh=1)\ndef setup(blw:BpyWorld):\n    blw.delete_previous(materials=False)\n\n    (BpyObj.Plane(\"Projection\")\n        .scale(2, 2)\n        .material(\"projection_material\", lambda m: m\n            .f(0)\n            .specular(0)\n            .animation(varfont_animation)))"
  },
  {
    "path": "examples/blender/rome.py",
    "content": "from coldtype import *\nfrom coldtype.blender import BlenderTimeline, b3d_sequencer\nfrom coldtype.raster import *\nfrom noise import pnoise1\n\nfnt = Font.Find(\"NCND\", \"__variables\")\n#fnt = Font.Find(\"MDPrimer-Bold\")\nfnt = Font.Find(\"PolymathV\")\n\nbt = BlenderTimeline(ººBLENDERºº, 5400, fps=24)\n\nwords = bt.interpretWords(include=\"+3\")\naction = bt.interpretWords(include=\"+4\")\nstyling = bt.interpretWords(include=\"+5\")\n#adlib = bt.interpretWords(include=\"+4\")\n#suggestion = bt.interpretWords(include=\"+5\")\n\nrs1 = random_series(0.35, 0.75)\n\n@b3d_sequencer((1920, 1080)\n, timeline=bt\n, bg=hsl(0.3)\n, render_bg=False\n, live_preview_scale=0.35\n)\ndef lyrics(f:Frame):\n    #return None\n\n    try:\n        word_by_word = action.current(f.i).text.strip() == \"words\"\n    except:\n        word_by_word = False\n    \n    try:\n        titles = styling.current(f.i).text.strip() == \"titles\"\n    except:\n        titles = False\n\n    r = f.a.r.take(170, \"S\")\n    yellow = hsl(0.14, 1, 0.65)\n    yellow = bw(1)\n    #yellow = bw(0)\n\n    def ncnd(c):\n        txt = c.text\n        if txt.endswith(\"plus\"):\n            txt = \" +\"\n        wght = rs1[c.clip.idx]\n        wght = 0.85\n        if titles:\n            return (txt.upper(), Style(fnt, 32 if \"Theo\" in txt else 52, wght=0.85, space=2000 if \"Rome\" in txt else 600))\n        return (txt.lower(), Style(fnt, 52, wght=wght, space=600))\n    \n    slug = (words.currentGroup(f.i)\n        .pens(f.i, ncnd)\n        .xalign(r)\n        .cond(titles, lambda p: p.align(f.a.r.take(1, \"S\")), lambda p: p.align(r, \"N\"))\n        #.align(r, \"N\")\n        .cond(word_by_word, lambda p: p.removeFutures())\n        #.removeFutures()\n        #.fssw(1, 0, 10, 1)\n        .ch(filmjitter(f.e(\"l\", 20), scale=(1.5, 3)))\n        .f(1)\n        .layer(\n            #lambda p: p.fssw(1, 1, 1).ch(phototype(f.a.r, 2, 130, 70, fill=0)).t(o:=1.75, -o).ch(precompose(f.a.r)).ch(fill(bw(0, 0.85))),\n            lambda p: p.ch(phototype(f.a.r, 1.5, 140, 83, fill=yellow))\n            )\n        #.pen()\n        #.xor(lambda p: P(p.ambit(tx=1, ty=1).inset(-4, 0)))\n        )\n    \n    img = SkiaImage(f\"~/Video/Theo/rome/v2images/romeimages{(86400 + f.i):08d}.png\")\n\n    analog_slug = (\n        slug\n        .up()\n        .append(P().rect(f.a.r)\n           .f(-1)\n           .ch(spackle(cut=5, cutw=1, base=f.i, fill=bw(1)))\n           .blendmode(BlendMode.Cycle(35)))\n        .ch(precompose(f.a.r))\n        .ch(blur(0.5))\n        .ch(precompose(f.a.r)))\n    \n\n    return (P(\n        img.copy(),\n        # (P(analog_slug.copy(),\n        #     img.ch(phototype(f.a.r, 3, 113, 0)).blendmode(BlendMode.Cycle(9)))\n        #     .ch(precompose(f.a.r))),\n        (P(analog_slug.copy().t(0, 0).ch(fill(bw(0))),\n            img.ch(phototype(f.a.r, 10, 70, 11)).blendmode(BlendMode.Cycle(38))\n            )\n            .ch(precompose(f.a.r))\n            .ch(invert())\n            .ch(precompose(f.a.r))\n            .ch(blur(1.25)))\n            .ch(precompose(f.a.r))\n            #.ch(temptone(0.67, 0.36))\n            #.ch(precompose(f.a.r))\n            #.ch(expose(1.95+pnoise1(f.e(\"l\", 5))*10))\n            ,\n    ))"
  },
  {
    "path": "examples/blender/rome_preview.py",
    "content": "from coldtype import *\nfrom coldtype.blender import BlenderTimeline, b3d_sequencer\nfrom coldtype.raster import *\nfrom noise import pnoise1\n\nfnt = Font.Find(\"NCND\", \"__variables\")\n#fnt = Font.Find(\"MDPrimer-Bold\")\nfnt = Font.Find(\"PolymathV\")\n\nrs1 = random_series(0.35, 0.75)\n\nimg = SkiaImage(f\"~/Downloads/theokeyboard.png\")\n\n@animation(img.rect()\n, timeline=Timeline(30)\n, bg=hsl(0.3)\n, render_bg=False\n)\ndef lyrics(f:Frame):\n    r = f.a.r.take(170, \"S\")\n    yellow = hsl(0.14, 1, 0.65)\n    yellow = bw(1)\n    #yellow = bw(0)\n    \n    slug = (StSt(\"Rome Wasn’t Built\\nin a Day\".upper(), fnt, 302, wght=0.85, space=1400, leading=160)\n        .xalign(r)\n        #.wordPens()\n        #.map(lambda i, p: p.t(0, -i*110))\n        .align(f.a.r.take(1, \"S\"))\n        .t(0, 110)\n        .ch(filmjitter(f.e(\"l\", 20), scale=(1.5, 3)))\n        .f(1)\n        .ch(phototype(f.a.r, 1.5, 140, 83, fill=yellow)))\n\n    analog_slug = (\n        slug\n        .up()\n        .append(P().rect(f.a.r)\n           .f(-1)\n           .ch(spackle(cut=15, cutw=1, base=f.i, fill=bw(1)))\n           .blendmode(BlendMode.Cycle(35)))\n        .ch(precompose(f.a.r))\n        .ch(blur(3.5))\n        .ch(precompose(f.a.r)))\n    \n\n    return (P(\n        img.copy(),\n        # (P(analog_slug.copy(),\n        #     img.ch(phototype(f.a.r, 3, 113, 0)).blendmode(BlendMode.Cycle(9)))\n        #     .ch(precompose(f.a.r))),\n        (P(analog_slug.copy().t(0, 0).ch(fill(bw(0))),\n            img.ch(phototype(f.a.r, 60, 100, 11)).blendmode(BlendMode.Cycle(38))\n            )\n            .ch(precompose(f.a.r))\n            .ch(invert())\n            .ch(precompose(f.a.r))\n            .ch(blur(1.25)))\n            .ch(precompose(f.a.r))\n            #.ch(temptone(0.67, 0.36))\n            #.ch(precompose(f.a.r))\n            #.ch(expose(1.95+pnoise1(f.e(\"l\", 5))*10))\n            ,\n    ))"
  },
  {
    "path": "examples/blender/rotating.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom coldtype.raster import phototype\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef setup(bw:BpyWorld):\n    (bw.delete_previous()\n        .cycles(32, denoiser=False, canvas=Rect(1080/4), transparent=True))\n\n@b3d_animation(Rect(1080), timeline=120, denoise=0, bg=1, upright=1, render_bg=0\n    , solo=ººBLENDERINGºº)\ndef varfont(f):\n    return (StSt(\"e\", Font.JBMono(), 1200\n        , wght=f.e(\"seio\", 1))\n        .align(f.a.r, ty=1)\n        .f(0)\n        .mapv(lambda p: p\n            .ch(b3d(lambda bp: bp\n                .extrude(0.5)\n                .rotate(z=f.e(\"l\", 0, rng=(0, -360)))))))\n\nr = Rect(1080)\ns = Scaffold(r.inset(10)).numeric_grid(9, gap=4, annotate_rings=True)\n\n@animation(r, tl=120, bg=hsl(0.7, 0.7, 0.45)\n    , solo=not ººBLENDERINGºº\n    , release=λ.export(\"h264\", loops=8))\ndef manye_live(f):\n    def img(x):\n        ring = x.el.data(\"ring\")\n        fi = f.adj(-ring*4).e(\"l\", 0, r=(0, 120))\n        return (varfont.pass_img(ring*-4+round(fi))\n            .resize(0.77)\n            .align(x.el.r, tx=1, ty=1))\n\n    return (P().enumerate(s.cells(), img)\n        .ch(phototype(f.a.r, 0.75, 180, 30, fill=hsl(0.7, 0.7, 0.85))))"
  },
  {
    "path": "examples/blender/sequence.py",
    "content": "from coldtype import *\nfrom coldtype.blender import BlenderTimeline, b3d_sequencer\n\nbt = BlenderTimeline(ººBLENDERºº, 120)\nchannel1 = bt.interpretWords(include=\"+1 +2\")\n\n@b3d_sequencer((1080, 1080)\n, timeline=bt\n, bg=None\n, render_bg=False\n, live_preview_scale=0.25\n)\ndef sequence(f:Frame):\n    def setter(c):\n        style = Style(Font.JBMono(), 100, wght=1)\n        if \"script\" in c.styles:\n            style = Style(Font.RecMono(), 100, wght=1)\n        return [c.text.lower(), style]\n    \n    return (P(\n        channel1\n            .currentGroup(f.i)\n            .pens(f.i, setter)\n            .align(f.a.r)\n            .removeFutures()\n            .f(1),\n        StSt(str(f.i), Font.JBMono(), 72, wght=1)\n            .align(f.a.r.take(100, \"S\"), tx=0)\n            .f(1)))"
  },
  {
    "path": "examples/blender/sequence_text3d.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nbt = BlenderTimeline(ººBLENDERºº, 120)\n\n@b3d_runnable(playback=B3DPlayback.AlwaysStop)\ndef prerun(bw):\n    bw.delete_previous()\n\n@b3d_animation((1080, 1080), timeline=bt)\ndef sequence(f:Frame):\n    current = bt.current(1, f.i)\n\n    return (StSt(current.name, Font.JBMono(), 200\n        , wght=current.e(\"eeo\", 0))\n        .align(f.a.r)\n        .pen()\n        .ch(b3d(lambda bp: bp\n            .extrude(1))))"
  },
  {
    "path": "examples/blender/sequence_text3d_rich.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nbt = BlenderTimeline(ººBLENDERºº, 120)\nchannel1 = bt.interpretWords(include=\"+1 +2\")\n\n@b3d_runnable(playback=B3DPlayback.AlwaysStop)\ndef prerun(bw):\n    bw.delete_previous(materials=False)\n\n@b3d_animation((1080, 1080), timeline=bt)\ndef sequence(f:Frame):\n    try: BpyWorld().delete_previous(materials=False)\n    except: pass\n\n    default_style = Style(Font.JetBrainsMono(), 100, wght=1)\n\n    def setter(c):\n        style = default_style\n        if \"script\" in c.styles:\n            style = Style(Font.RecMono(), 100, wght=1)\n        return [c.text.lower(), style]\n    \n    return (P(\n        channel1\n            .currentGroup(f.i)\n            .pens(f.i, setter)\n            .align(f.a.r)\n            .removeFutures()\n            .mapv(lambda p: p\n                .declare(font:=str(p.parent().data(\"style\", default_style).font.path))\n                .ch(b3d(lambda bp: bp\n                    .extrude(1.5)\n                    .material(\"mat1\" if \"JetBrains\" in font else \"mat2\")\n                    )))\n        ,\n        StSt(str(f.i), Font.JBMono(), 72, wght=f.e(\"eeio\"))\n            .align(f.a.r.take(200, \"S\"), tx=0)\n            .f(1)\n            .pen()\n            .ch(b3d(lambda bp: bp\n                .extrude(f.e(\"l\", 0, rng=(0.1, 1)))\n                .material(\"mat3\")))))"
  },
  {
    "path": "examples/blender/simple_single.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_animation(tl=60)\ndef scratch(f):\n    return (P()\n        .roundedRect(f.a.r.inset(350), 10)\n        .rotate(f.e(\"ceio\", 1, rng=(-75, 75)))\n        .f(hsl(0.65))\n        .tag(\"single_shape\")\n        .ch(b3d(lambda p: p\n            .extrude(1.5)\n            .roughness(1)\n            .specular(0)\n            , material=\"auto\")))\n"
  },
  {
    "path": "examples/blender/simplebeat.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\naudio = __sibling__(\"media/simplebeat.wav\")\n\nmidi = MidiTimeline(__sibling__(\"media/simplebeat.mid\")\n    , bpm=120\n    , lookup={0: 36, 1: 38, 2: 40, 3: 42, 4: 45, 5: 47, 6: 48, 7: 49})\n\nlengths = [30, 20, 20, 20, 5, 50, 30, 10]\nweights = [1, 0.25, 0.25, 0.25, 0, 1, 0.5, 0]\n\nrs = random_series()\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef prerun(bw):\n    bw.deletePrevious(materials=False)\n\n@b3d_animation((1080, 1080), timeline=midi, bg=None)\ndef simplebeat2(f):\n    def styler(x):\n        e = f.a.t.ki(x.i)\n        tail = lengths[x.i]\n\n        return [\n            Style(Font.MuSan(), 300, wght=0, wdth=0.35, ital=0),\n            Style(Font.MuSan()\n                , fontSize=300\n                , ro=1\n                , wght=e.adsr([2, tail], [\"sei\", \"ceo\"]\n                    , rng=(0, weights[x.i]))\n                , wdth=e.adsr([2, tail], [\"sei\", \"ceo\"]\n                    , rng=(0, weights[x.i])))]\n    \n    return (Glyphwise(\"MIDI\\nDATA\", styler)\n        .lead(30)\n        .xalign(f.a.r, tx=0)\n        .align(f.a.r, tx=0)\n        .collapse()\n        .layer(\n            lambda ps: ps.map(lambda i, p: p # fill\n                .ch(b3d(lambda bp: bp\n                    .extrude(2)\n                    .locate(z=-5+5*f.a.t.ki(i)\n                        .adsr([5, lengths[i]*2], [\"sei\", \"seo\"])))))))"
  },
  {
    "path": "examples/blender/timedtext.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom coldtype.timing.sequence import ClipGroupTextSetter\n\n# Blender\n#   - Switch to \"Video Editing\"\n#   - View \"Tool\" in Sequencer\n#   - CT2D: Hit \"Settings > Defaults\"\n#   - Author data\n#   - CT2D: Import > Preview\n#   - Create Image Editor, select image live preview\n#   - CT2D: Render > Film reel (render all)\n#   - CT2D: Import > Frames\n\n# Gotchas\n# Only set timeline length and fps in Coldtype code\n#   (not in Blender itself)\n\nbt = BlenderTimeline(ººBLENDERºº, 130, 30)\nwords = bt.interpretWords(include=\"+1 +2 +3\")\n\n@b3d_sequencer((1080, 1080)\n, timeline=bt\n, bg=0\n, live_preview_scale=0.1\n)\ndef timedtext(f:Frame):\n    def styler(c:ClipGroupTextSetter):\n        font, fs = \"PolymathV\", 100\n        \n        blue = c.styles.ki(\"blue\")\n        ital = c.styles.ki(\"italic\").e(\"seo\", 0)\n        wght = 1 if c.styles.ki(\"static\") else Easeable(c.clip, f.i).e(\"sei\", 0, rng=(0, 1))\n\n        return (c.text, Style(font, fs\n            , wght=wght\n            , ital=ital\n            , fill=hsl(0.6) if blue else hsl(c.clip.idx*0.025)))\n\n    return (P(\n        words.currentGroup(f.i)\n            .pens(f.i, styler)\n            .lead(10)\n            .xalign(f.a.r, \"W\", tx=0)\n            .align(f.a.r, tx=0)\n            .remove_futures()))"
  },
  {
    "path": "examples/blender/varfont.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef prerun(bw):\n    bw.delete_previous(materials=False)\n\n@b3d_animation(timeline=60, denoise=0)\ndef varfont(f):\n    return (StSt(\"ABC\\nDEF\", Font.ColdtypeObviously()\n        , fontSize=f.e(\"seio\", 1, rng=(300, 500))\n        , wdth=f.e(\"seio\", 1, rng=(1, 0)))\n        .align(f.a.r)\n        .f(1)\n        .mapv(lambda p: p\n            .ch(b3d(lambda bp: bp\n                .extrude(f.e(\"seio\", 1, rng=(0.5, 5.75)))))))"
  },
  {
    "path": "examples/blender/varfont2.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef prerun(bw:BpyWorld):\n    bw.delete_previous(materials=False)\n\n@b3d_animation(timeline=60, center=(0, 1), upright=1)\ndef varfont2(f):\n    return (P(\n        Glyphwise(\"COLD\\nTYPE\", lambda g:\n            Style(Font.ColdtypeObviously(), 375\n                , wdth=f.adj(-g.i*5).e(\"seio\", 1, rng=(0.98, 0))))\n            .xalign(f.a.r)\n            .track(50, v=1)\n            .align(f.a.r.drop(100, \"S\"))\n            .mapv(lambda i, p: p\n                .ch(b3d(lambda bp: bp\n                    .extrude(f.adj(-i*5)\n                        .e(\"seio\", 1,\n                            rng=(0.1, 1.75)))))),\n        StSt(\"Now in 3D!\", Font.RecursiveMono(), 100)\n            .align(f.a.r.take(0.2, \"S\"))\n            .pen()\n            .f(hsl(0.65, f.e(\"eeio\", 1), 0.6))\n            .ch(b3d(lambda bp: bp\n                .extrude(f.e(\"eeio\", 1, rng=(0.1, 3)))\n                .specular(0)\n                .roughness(1)\n                .metallic(f.e(\"eeio\", 1))\n                , material=\"auto\"))\n            .hide()\n            ))"
  },
  {
    "path": "examples/blender/wip/bake.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_runnable()\ndef setup(bw:BpyWorld):\n    bw.deletePrevious(\"CTBakedAnimation_baketest2\")\n\n@b3d_animation(timeline=60\n    , reset_to_zero=1\n    , bake=True) # switch to True\ndef baketest2(f):\n    return (StSt(\"AV\", Font.MutatorSans(), 200,\n        wdth=f.e(\"eeio\", 1),\n        wght=f.e(\"eeio\", 2),\n        ro=1)\n        .align(f.a.r, ty=1)\n        .mapv(lambda p: p\n            .ch(b3d(lambda bp: bp\n                .rotate(90)\n                .extrude(f.e(\"seio\", 1, rng=(0.1, 1.5)))\n                , material=\"letters\"))))"
  },
  {
    "path": "examples/blender/wip/blends/boston.blend.json",
    "content": "{\n    \"start\": 0,\n    \"end\": 274,\n    \"livepreview_disabled\": false,\n    \"tracks\": [\n        {\n            \"index\": 1,\n            \"clips\": [\n                {\n                    \"name\": \"*p\\u02b0liz\",\n                    \"text\": \"*p\\u02b0liz\",\n                    \"start\": 10.0,\n                    \"end\": 19\n                },\n                {\n                    \"name\": \"\\u2248kal\\u02e0\",\n                    \"text\": \"\\u2248kal\\u02e0\",\n                    \"start\": 19.0,\n                    \"end\": 27\n                },\n                {\n                    \"name\": \"\\u2248st\\u025b\",\n                    \"text\": \"\\u2248st\\u025b\",\n                    \"start\": 27.0,\n                    \"end\": 31\n                },\n                {\n                    \"name\": \"+l\\u0258\",\n                    \"text\": \"+l\\u0258\",\n                    \"start\": 31.0,\n                    \"end\": 44\n                },\n                {\n                    \"name\": \"*\\u00e6sk\",\n                    \"text\": \"*\\u00e6sk\",\n                    \"start\": 44.0,\n                    \"end\": 49\n                },\n                {\n                    \"name\": \"+.001\",\n                    \"text\": \"+ h\\u025a\",\n                    \"start\": 49.0,\n                    \"end\": 52\n                },\n                {\n                    \"name\": \"\\u027e\\u0258\",\n                    \"text\": \"\\u027e\\u0258\",\n                    \"start\": 52.0,\n                    \"end\": 56\n                },\n                {\n                    \"name\": \"\\u2248b\\u0279\\u026a\\u014b\",\n                    \"text\": \"\\u2248b\\u0279\\u026a\\u014b\",\n                    \"start\": 56.0,\n                    \"end\": 62\n                },\n                {\n                    \"name\": \"\\u00f0i\\u02d0z\",\n                    \"text\": \"\\u00f0i\\u02d0z\",\n                    \"start\": 62.0,\n                    \"end\": 69\n                },\n                {\n                    \"name\": \"\\u03b8\\u026a\\u014b\\u0261z\",\n                    \"text\": \"\\u03b8\\u026a\\u014b\\u0261z\",\n                    \"start\": 69.0,\n                    \"end\": 76\n                },\n                {\n                    \"name\": \"\\u2248w\\u026a\\u00f0\",\n                    \"text\": \"\\u2248w\\u026a\\u00f0\",\n                    \"start\": 76.0,\n                    \"end\": 80\n                },\n                {\n                    \"name\": \"h\\u025a.001\",\n                    \"text\": \"h\\u025a\",\n                    \"start\": 80.0,\n                    \"end\": 86\n                },\n                {\n                    \"name\": \"f\\u0279\\u0254m\",\n                    \"text\": \"f\\u0279\\u0254m\",\n                    \"start\": 86.0,\n                    \"end\": 91\n                },\n                {\n                    \"name\": \"\\u2248n\\u0258\",\n                    \"text\": \"\\u2248n\\u0258\",\n                    \"start\": 91.0,\n                    \"end\": 97\n                },\n                {\n                    \"name\": \"st\\u0254\\u0258\",\n                    \"text\": \"st\\u0254\\u0258\",\n                    \"start\": 97.0,\n                    \"end\": 112\n                },\n                {\n                    \"name\": \"*s\\u026aks\",\n                    \"text\": \"*s\\u026aks\",\n                    \"start\": 112.0,\n                    \"end\": 122\n                },\n                {\n                    \"name\": \"spu\\u02d0nz\",\n                    \"text\": \"spu\\u02d0nz\",\n                    \"start\": 122.0,\n                    \"end\": 130\n                },\n                {\n                    \"name\": \"\\u2248\\u028cv\",\n                    \"text\": \"\\u2248\\u028cv\",\n                    \"start\": 130.0,\n                    \"end\": 136\n                },\n                {\n                    \"name\": \"f\\u0279\\u025b\\u0283\",\n                    \"text\": \"f\\u0279\\u025b\\u0283\",\n                    \"start\": 136.0,\n                    \"end\": 144\n                },\n                {\n                    \"name\": \"\\u2248sno\\u028a\",\n                    \"text\": \"\\u2248sno\\u028a\",\n                    \"start\": 144.0,\n                    \"end\": 151\n                },\n                {\n                    \"name\": \"p\\u02b0i\\u02d0z\",\n                    \"text\": \"p\\u02b0i\\u02d0z\",\n                    \"start\": 151.0,\n                    \"end\": 169\n                },\n                {\n                    \"name\": \"*fa\\u026av\",\n                    \"text\": \"*fa\\u026av\",\n                    \"start\": 169.0,\n                    \"end\": 175\n                },\n                {\n                    \"name\": \"t\\u026ak\",\n                    \"text\": \"t\\u026ak\",\n                    \"start\": 175.0,\n                    \"end\": 184\n                },\n                {\n                    \"name\": \"\\u2248sl\\u00e6bz\",\n                    \"text\": \"\\u2248sl\\u00e6bz\",\n                    \"start\": 184.0,\n                    \"end\": 190\n                },\n                {\n                    \"name\": \"\\u028cv.001\",\n                    \"text\": \"\\u028cv\",\n                    \"start\": 190.0,\n                    \"end\": 194\n                },\n                {\n                    \"name\": \"\\u2248blu\",\n                    \"text\": \"\\u2248blu\",\n                    \"start\": 194.0,\n                    \"end\": 202\n                },\n                {\n                    \"name\": \"t\\u0283i\\u02d0z\",\n                    \"text\": \"t\\u0283i\\u02d0z\",\n                    \"start\": 202.0,\n                    \"end\": 208\n                },\n                {\n                    \"name\": \"*n\",\n                    \"text\": \"*n\",\n                    \"start\": 208.0,\n                    \"end\": 212\n                },\n                {\n                    \"name\": \"me\\u026a\",\n                    \"text\": \"me\\u026a\",\n                    \"start\": 212.0,\n                    \"end\": 215\n                },\n                {\n                    \"name\": \"+bi\",\n                    \"text\": \"+bi\",\n                    \"start\": 215.0,\n                    \"end\": 218\n                },\n                {\n                    \"name\": \"\\u0258\",\n                    \"text\": \"\\u0258\",\n                    \"start\": 218.0,\n                    \"end\": 222\n                },\n                {\n                    \"name\": \"\\u2248sn\\u00e6k\",\n                    \"text\": \"\\u2248sn\\u00e6k\",\n                    \"start\": 222.0,\n                    \"end\": 229\n                },\n                {\n                    \"name\": \"f\\u0254\\u0279\",\n                    \"text\": \"f\\u0254\\u0279\",\n                    \"start\": 229.0,\n                    \"end\": 232\n                },\n                {\n                    \"name\": \"+\",\n                    \"text\": \"+ h\\u025a\",\n                    \"start\": 232.0,\n                    \"end\": 235\n                },\n                {\n                    \"name\": \"\\u2248b\\u0279\\u028c\",\n                    \"text\": \"\\u2248b\\u0279\\u028c\",\n                    \"start\": 235.0,\n                    \"end\": 238\n                },\n                {\n                    \"name\": \"+\\u00f0\\u0258\",\n                    \"text\": \"+\\u00f0\\u0258\",\n                    \"start\": 238.0,\n                    \"end\": 241\n                },\n                {\n                    \"name\": \"b\\u0254\\u0258b\",\n                    \"text\": \"b\\u0254\\u0258b\",\n                    \"start\": 241.0,\n                    \"end\": 262\n                }\n            ]\n        },\n        {\n            \"index\": 2,\n            \"clips\": [\n                {\n                    \"name\": \"*please\",\n                    \"text\": \"*please\",\n                    \"start\": 10.0,\n                    \"end\": 19\n                },\n                {\n                    \"name\": \"call\",\n                    \"text\": \"call\",\n                    \"start\": 19.0,\n                    \"end\": 27\n                },\n                {\n                    \"name\": \"ste\",\n                    \"text\": \"ste\",\n                    \"start\": 27.0,\n                    \"end\": 31\n                },\n                {\n                    \"name\": \"+lla\",\n                    \"text\": \"+lla\",\n                    \"start\": 31.0,\n                    \"end\": 44\n                },\n                {\n                    \"name\": \"*ask\",\n                    \"text\": \"*ask\",\n                    \"start\": 44.0,\n                    \"end\": 49\n                },\n                {\n                    \"name\": \"her\",\n                    \"text\": \"her\",\n                    \"start\": 49.0,\n                    \"end\": 52\n                },\n                {\n                    \"name\": \"to\",\n                    \"text\": \"to\",\n                    \"start\": 52.0,\n                    \"end\": 56\n                },\n                {\n                    \"name\": \"bring\",\n                    \"text\": \"bring\",\n                    \"start\": 56.0,\n                    \"end\": 62\n                },\n                {\n                    \"name\": \"these\",\n                    \"text\": \"these\",\n                    \"start\": 62.0,\n                    \"end\": 69\n                },\n                {\n                    \"name\": \"things\",\n                    \"text\": \"things\",\n                    \"start\": 69.0,\n                    \"end\": 76\n                },\n                {\n                    \"name\": \"\\u2248with\",\n                    \"text\": \"\\u2248with\",\n                    \"start\": 76.0,\n                    \"end\": 80\n                },\n                {\n                    \"name\": \"her.001\",\n                    \"text\": \"her\",\n                    \"start\": 80.0,\n                    \"end\": 86\n                },\n                {\n                    \"name\": \"from\",\n                    \"text\": \"from\",\n                    \"start\": 86.0,\n                    \"end\": 91\n                },\n                {\n                    \"name\": \"the\",\n                    \"text\": \"the\",\n                    \"start\": 91.0,\n                    \"end\": 97\n                },\n                {\n                    \"name\": \"store\",\n                    \"text\": \"store\",\n                    \"start\": 97.0,\n                    \"end\": 112\n                },\n                {\n                    \"name\": \"*six\",\n                    \"text\": \"*six\",\n                    \"start\": 112.0,\n                    \"end\": 122\n                },\n                {\n                    \"name\": \"spoons\",\n                    \"text\": \"spoons\",\n                    \"start\": 122.0,\n                    \"end\": 130\n                },\n                {\n                    \"name\": \"of\",\n                    \"text\": \"of\",\n                    \"start\": 130.0,\n                    \"end\": 136\n                },\n                {\n                    \"name\": \"fresh\",\n                    \"text\": \"fresh\",\n                    \"start\": 136.0,\n                    \"end\": 144\n                },\n                {\n                    \"name\": \"snow\",\n                    \"text\": \"snow\",\n                    \"start\": 144.0,\n                    \"end\": 151\n                },\n                {\n                    \"name\": \"peas\",\n                    \"text\": \"peas\",\n                    \"start\": 151.0,\n                    \"end\": 169\n                },\n                {\n                    \"name\": \"*five\",\n                    \"text\": \"*five\",\n                    \"start\": 169.0,\n                    \"end\": 175\n                },\n                {\n                    \"name\": \"thick\",\n                    \"text\": \"thick\",\n                    \"start\": 175.0,\n                    \"end\": 184\n                },\n                {\n                    \"name\": \"slabs\",\n                    \"text\": \"slabs\",\n                    \"start\": 184.0,\n                    \"end\": 190\n                },\n                {\n                    \"name\": \"\\u2248of.001\",\n                    \"text\": \"\\u2248of\",\n                    \"start\": 190.0,\n                    \"end\": 194\n                },\n                {\n                    \"name\": \"blue\",\n                    \"text\": \"blue\",\n                    \"start\": 194.0,\n                    \"end\": 202\n                },\n                {\n                    \"name\": \"cheese\",\n                    \"text\": \"cheese\",\n                    \"start\": 202.0,\n                    \"end\": 208\n                },\n                {\n                    \"name\": \"*and\",\n                    \"text\": \"*and\",\n                    \"start\": 208.0,\n                    \"end\": 212\n                },\n                {\n                    \"name\": \"may\",\n                    \"text\": \"may\",\n                    \"start\": 212.0,\n                    \"end\": 215\n                },\n                {\n                    \"name\": \"+be\",\n                    \"text\": \"+be\",\n                    \"start\": 215.0,\n                    \"end\": 218\n                },\n                {\n                    \"name\": \"a\",\n                    \"text\": \"a\",\n                    \"start\": 218.0,\n                    \"end\": 222\n                },\n                {\n                    \"name\": \"snack\",\n                    \"text\": \"snack\",\n                    \"start\": 222.0,\n                    \"end\": 229\n                },\n                {\n                    \"name\": \"\\u2248for\",\n                    \"text\": \"\\u2248for\",\n                    \"start\": 229.0,\n                    \"end\": 232\n                },\n                {\n                    \"name\": \"her.002\",\n                    \"text\": \"her\",\n                    \"start\": 232.0,\n                    \"end\": 235\n                },\n                {\n                    \"name\": \"bro\",\n                    \"text\": \"bro\",\n                    \"start\": 235.0,\n                    \"end\": 238\n                },\n                {\n                    \"name\": \"+ther\",\n                    \"text\": \"+ther\",\n                    \"start\": 238.0,\n                    \"end\": 241\n                },\n                {\n                    \"name\": \"bob\",\n                    \"text\": \"bob\",\n                    \"start\": 241.0,\n                    \"end\": 262\n                }\n            ]\n        },\n        {\n            \"index\": 5,\n            \"clips\": [\n                {\n                    \"name\": \".accent\",\n                    \"text\": \".accent\",\n                    \"start\": 49.0,\n                    \"end\": 52\n                },\n                {\n                    \"name\": \".001\",\n                    \"text\": \".accent\",\n                    \"start\": 97.0,\n                    \"end\": 112\n                },\n                {\n                    \"name\": \".002\",\n                    \"text\": \".accent\",\n                    \"start\": 241.0,\n                    \"end\": 262\n                }\n            ]\n        },\n        {\n            \"index\": 6,\n            \"clips\": [\n                {\n                    \"name\": \".emphasis\",\n                    \"text\": \".emphasis\",\n                    \"start\": 241.0,\n                    \"end\": 262\n                }\n            ]\n        }\n    ]\n}"
  },
  {
    "path": "examples/blender/wip/boston.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\nfrom coldtype.timing.sequence import ClipGroupTextSetter\n\n# sound: https://accent.gmu.edu/browse_language.php?function=detail&speakerid=79\n# typed with: https://westonruter.github.io/ipa-chart/keyboard/\n\n\"\"\"\npʰliz kalˠ stɛlɘ\næsk hɚ ɾɘ bɹɪŋ ðiːz θɪŋɡz wɪð hɚ fɹɔm nɘ stɔɘ\nsɪks spuːnz ʌv fɹɛʃ snoʊ pʰiːz\nfaɪv tɪk slæbz ʌv blu tʃiːz\nn meɪbi ɘ snæk fɔɹ hɚ bɹʌðɘ bɔɘb\n\"\"\"\n\n\nbt = BlenderTimeline(ººBLENDERºº, 275)\n\nipa = bt.interpretWords(include=\"+1 +5 +6\")\nenglish = bt.interpretWords(include=\"+2\")\n\n\n@b3d_sequencer((1080, 1080)\n, timeline=bt\n, bg=hsl(0.6, 0.7, 0.2)\n, live_preview_scale=0.25\n, audio=ººsiblingºº(\"../media/pleasecallstella.wav\")\n)\ndef lyrics(f:Frame):\n    def ipa_styler(c:ClipGroupTextSetter):\n        font, fs = \"Brill Roman\", 200\n        \n        if c.styles.ki(\"accent\"):\n            font, fs = \"Brill Italic\", 400\n        if c.styles.ki(\"emphasis\"):\n            font = \"Brill Bold Italic\"\n        \n        return (c.text, Style(font, fs))\n\n    return (P(\n        english.currentGroup(f.i)\n            .pens(f.i, lambda c:\n                (c.text, Style(\"PolymathV\", 60, wght=0.35, opsz=0)))\n            .lead(10)\n            .xalign(f.a.r)\n            .align(f.a.r.take(0.35, \"S\"))\n            .remove_futures()\n            .f(1),\n        ipa.currentWord(f.i)\n            .pens(f.i, ipa_styler, styles=ipa.styles)\n            .lead(40)\n            .xalign(f.a.r)\n            .align(f.a.r.take(0.85, \"N\"))\n            .remove_futures()\n            .f(1)))"
  },
  {
    "path": "examples/blender/wip/bump.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nr = Rect(1080, 540)\nfont = Font.ColdObvi()\n\n@renderable(r, bg=0, render_bg=1)\ndef graphic(r):\n    return (StSt(\"TYPE\", font, 250)\n        .f(1)\n        .align(r))\n\n@b3d_runnable(force_refresh=True)\ndef setup(blw:BpyWorld):\n    (blw.delete_previous(materials=False)\n        .timeline(Timeline(50, 12)\n            , output=__FILE__\n            , version=1))\n\n    (BpyObj.Plane(\"ImagePlane\")\n        .scale(2, 1)\n        .material(\"asdf_image\", lambda m: m\n            .image(graphic, emission=0, render=True)))"
  },
  {
    "path": "examples/blender/wip/physics.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\ntxt = \"FALL\\nING\\nTEXT\"\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    (bpw.delete_previous()\n        .timeline(Timeline(120))\n        .rigidbody(speed=3, frame_end=1000))\n    \n    (BpyObj.Find(\"Plane\")\n        .rigidbody(\"passive\", friction=1, bounce=0))\n\n@b3d_renderable(reset_to_zero=1)\ndef falling(r):\n    return (StSt(txt,\n        Font.MutatorSans(), 300, wght=1)\n        .track(110, v=1)\n        .map(lambda p: p.trackToRect(r.inset(70)))\n        .align(r.inset(50))\n        .deblank()\n        .mapv(lambda p: p\n            .ch(b3d(lambda bp: bp\n                .extrude(0.275)\n                .convert_to_mesh()\n                .rigidbody(friction=0.5)\n                , zero=True))\n            .ch(b3d_post(lambda bp: bp\n                .locate_relative(z=10)))))\n"
  },
  {
    "path": "examples/blender/wip/physics_semi2d.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\ntxt = \"LETTERS\\nCOLORFUL\\nA LOT OF\\nCOME\\nHERE\"\n\n@b3d_runnable()\ndef setup(bw:BpyWorld):\n    (bw.delete_previous()\n        .timeline(Timeline(150), resetFrame=0)\n        .rigidbody(speed=0.5, frame_end=1000))\n\n#@b3d_renderable(center=(0, 1), upright=1)\ndef justi(r):\n    #return None\n    letters = (StSt(txt, \"Streco\", 150)\n        .xalign(r)\n        .track(1000, v=1)\n        .align(r.inset(50), y=\"S\")\n        .t(0, 1080)\n        .deblank()\n        .collapse()\n        .map(lambda p: p.explode())\n        .collapse()\n        .mapv(lambda i, p: p\n            .tag(f\"glyph_{i}\")\n            .f(hsl(random()))\n            .ch(b3d(lambda bp: bp\n                .extrude(0.35)\n                .convertToMesh()\n                .rigidbody(friction=0.2, bounce=0.2)\n                .specular(0)\n                .roughness(1)\n                , dn=True\n                , upright=1\n                , zero=True\n                , material=\"auto\"))))\n    \n    def wall(tag, _r, depth=0.5, yShift=0):\n        return (P(_r).tag(tag)\n            .ch(b3d(lambda bp: bp\n                .extrude(depth)\n                .convertToMesh()\n                .rigidbody(\"passive\")\n                , material=\"wall_material\"))\n            .ch(b3d_post(lambda bp: bp\n                .locate_relative(y=yShift)\n                .hide()\n                )))\n    \n    return (P(\n        letters,\n        # (P(\n        #     wall(\"_front_wall\", r, 0.01, 0.4),\n        #     wall(\"_back_wall\", r, 0.01, -0.4),\n        #     wall(\"_floor\", r.take(50, \"S\")),\n        #     wall(\"_west_wall\", r.take(50, \"W\")),\n        #     wall(\"_east_wall\", r.take(50, \"E\"))))\n            ))\n"
  },
  {
    "path": "examples/blender/wip/physics_visible.py",
    "content": "from coldtype.blender.fluent import BpyObj\nfrom coldtype import *\nfrom coldtype.blender import *\nfrom functools import partial\n\n\"\"\"\nA two-pass physics animation:\n\n-   when LIVE_PHYSICS is True, a single lockup\n    is rendered to blender for a normal physics\n    simulation — once you’ve got this looking how\n    you want it, you can select all the glyph objects\n    and then in the 3d view, select the Object dropdown,\n    and then in the Rigid Body menu, select \"Bake to Keyframes\";\n    once that’s complete, you can hide all the glyphs, then come\n    back to this file and set LIVE_PHYSICS = False, then resave\n\n-   when LIVE_PHYSICS is False (and the rigid body simulation\n    has been baked to keyframes), a variable font animation\n    uses the baked keyframes to \"fake\" the rigid body physics\n    simulation (since (as far as I know) it’s impossible to\n    do a \"true\" variable font / callback-based rigid body\n    simulation in blender)\n\n\"\"\"\n\nLIVE_PHYSICS = True\n\nt = Timeline(65)\nr = Rect(1080, 1080)\n\ndef build_lockup(wght):\n    return (StSt(\"FALLING\", Font.MutatorSans(), 120\n        , wdth=1\n        , wght=wght)\n        .align(r.inset(50))\n        .translate(0, 500))\n\nif LIVE_PHYSICS:\n    @b3d_runnable()\n    def before_bake(bw):\n        (bw.deletePrevious()\n            .timeline(t, resetFrame=0)\n            .renderSettings(128)\n            .rigidbody(speed=2, frame_end=1000))\n    \n    @b3d_renderable(center=(0, 1), upright=1)\n    def physics_basis(r):\n        letters = (build_lockup(0)\n            .pmap(lambda i, p: p\n                .tag(f\"glyph_{i}\")\n                .ch(b3d(lambda bp: bp\n                    .extrude(0.5)\n                    .convertToMesh()\n                    .locate_relative(z=i*0.25)\n                    .rigidbody(friction=1, bounce=0.95),\n                    dn=True,\n                    upright=True,\n                    zero=True))))\n        \n        return P(\n            letters,\n            (P(r.take(200, \"S\"))\n                .tag(\"surface\")\n                .ch(b3d(lambda bp: bp\n                    .extrude(0.1)\n                    .convertToMesh()\n                    .rigidbody(\"passive\")\n                    , material=\"surface_material\"))\n                .ch(b3d_post(lambda bp: bp\n                    .rotate(x=88)\n                    .locate_relative(z=-2)))))\n\nelse:\n    @b3d_animation(timeline=t, center=(0, 1), upright=1)\n    def physics_upright_curves(f):\n        def positioner(i, bp):\n            ref = BpyObj.Find(f\"glyph_{i}\").obj\n            bp.locate(ref.location)\n            bp.rotate(ref.rotation_euler)\n            return bp\n        \n        return (build_lockup(f.e(\"eeio\", 2))\n            .pmap(lambda i, p: p\n                .tag(f\"curve_{i}\")\n                .ch(b3d(lambda bp: bp.extrude(0.5),\n                    upright=True,\n                    zero=True))\n                    .ch(b3d_post(partial(positioner, i)))))\n"
  },
  {
    "path": "examples/blender/wip/timed3d.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n\"\"\"\nSome very simple timed-text-in-3d\n\"\"\"\n\nbt = BlenderTimeline(__BLENDER__, 80)\n\n@b3d_animation((1080, 1080), timeline=bt)\ndef timed(f:Frame):\n    def styler(c):\n        return c.text.upper(), Style(Font.MutatorSans(), 250)\n\n    return (f.t.words.currentGroup()\n        .pens(f, styler)\n        .align(f.a.r)\n        .removeFutures()\n        .pen()\n        .copy()\n        .ch(b3d(lambda p: p.extrude(1))))"
  },
  {
    "path": "examples/blog.py",
    "content": "from coldtype import *\nfrom fontTools.ufoLib import UFOReader\n\nlogos = UFOReader(\"assets/logos.ufo\").getGlyphSet()\n\n@renderable((1200, 600), bg=0)\ndef nameplate(r, fontSize=500, wdth=0.25, rotate=0):\n    return (P(\n        StSt(\"COLDTYPE\", Font.ColdObvi(), fontSize\n            , wdth=wdth\n            , rotate=rotate\n            , tu=-50, r=1)\n            .fssw(1, 0, 20, 1)\n            .align(r),\n        P().glyph(logos[\"goodhertz_logo_2019\"])\n            .scale(0.5)\n            .align(r)\n            .f(hsl(0.61, 0.7, 0.6))\n            .blendmode(BlendMode.Multiply)))"
  },
  {
    "path": "examples/borders.py",
    "content": "from coldtype import *\n\n@renderable((500, 500))\ndef borders(r):\n    s = Scaffold(r)\n    s.cssgrid(\"a a\", \"a a\", \"a | b __/ c | d\",\n        a=(\"a a\", \"a a\", \"a_ || b / c || d\"))\n    \n    s[\"d\"].cssgrid(\"a a\", \"a a\", \"a | b _/ c d\")\n    s[\"a/d\"].cssgrid(\"a a\", \"a a\", \"a b _/ c | d\")\n\n    reg = lambda p: p.fssw(-1, hsl(0.5), 10)\n    bold = lambda p: p.fssw(-1, hsl(0.9), 20)\n\n    s[\"b\"].grid(4, 4)\n    s[\"c\"].numeric_grid(5)\n\n    return P(\n        s.view(fontSize=18, fill=False),\n        s[\"a\"].cssborders(lambda p: p.fssw(-1, hsl(0.7), 5), -1),\n        s[\"a/d\"].cssborders(),\n        s[\"d\"].cssborders(),\n        s[\"a\"].cssborders(-1, bold),\n        s.cssborders(reg, bold),\n        s[\"b\"].borders().fssw(-1, hsl(0.07, 0.7), 2),\n        s[\"c\"].borders().fssw(-1, hsl(0.7), 1))"
  },
  {
    "path": "examples/chessboard.py",
    "content": "from coldtype import *\nfrom string import ascii_uppercase\n\nfill = hsl(0.38, 0.7, 0.7)\n\nchessfont = Font.LibraryFind(r\"AppleSymbols\")\n\n@renderable(bg=1)\ndef board(r):\n    def cell(x):\n        if x.el.data(\"checker\"):\n            return P().oval(x.el.r).f(fill)\n        else:\n            return P().rect(x.el.r.inset(1)).f(fill)\n\n    s = Scaffold(r.inset(100)).numeric_grid(8, gap=20)\n\n    board = P().enumerate(s.cells(), cell)\n    borders = s.borders().ssw(hsl(0.6, 0.6, 0.7), 2)\n\n    style = Style(Font.JBMono(), 30, wght=1)\n\n    labels = (P(\n        P().enumerate(s.rows()[0], lambda x:\n            StSt(ascii_uppercase[x.i], style)\n                .align(x.el.r)\n                .f(0)\n                .t(0, x.el.r.h-10)\n                .rotate(180)),\n        P().enumerate(s.rows()[-1], lambda x:\n            StSt(ascii_uppercase[x.i], style)\n                .align(x.el.r)\n                .f(0)\n                .t(0, -x.el.r.h+10)),\n        P().enumerate(s.cols()[0], lambda x:\n            StSt(str(8-x.i), style)\n                .align(x.el.r)\n                .f(0)\n                .t(-x.el.r.w+10, 0)),\n        P().enumerate(s.cols()[-1], lambda x:\n            StSt(str(8-x.i), style)\n                .align(x.el.r)\n                .f(0)\n                .t(x.el.r.w-10, 0)\n                .rotate(180))))\n    \n    rows = s.rows()\n    \n    player1 = (P().enumerate(\"♖♘♗♕♔♗♘♖\", lambda x:\n        StSt(x.el, chessfont, 50)\n            .align(rows[0][x.i])\n            .rotate(180)\n            .f(0)))\n    \n    pawns1 = (StSt(\"♙\", chessfont, 50).f(0)\n        .pen()\n        .unframe()\n        .rotate(180)\n        .replicate(rows[1]))\n    \n    player2 = (P().enumerate(\"♜♞♝♛♚♝♞♜\", lambda x:\n        StSt(x.el, chessfont, 50)\n            .align(rows[-1][x.i])\n            .f(0)))\n    \n    pawns2 = (StSt(\"♟\", chessfont, 50).f(0)\n        .pen()\n        .unframe()\n        .replicate(rows[-2]))\n\n    return P(borders, board, labels, player1, pawns1, player2, pawns2)"
  },
  {
    "path": "examples/circle_text.py",
    "content": "from coldtype import *\n\n@renderable((540, 540), bg=1)\ndef circles(r):\n    circle = (P().oval(r.inset(140))\n        .fssw(-1, hsl(0.9, a=0.5), 6))\n    \n    return (P(\n        circle,\n        StSt(\"ABC\", Font.MuSan(), 100, wght=0.5, wdth=0, tu=340)\n            .distribute_on_path(circle.copy().scale(1.1), baseline=1)\n            .f(hsl(0.7)),\n        StSt(\"ABC\", Font.MuSan(), 100, wght=0.5, wdth=0, tu=500)\n            .distribute_on_path(circle.copy().scale(0.9).rotate(-180), 0, baseline=0)\n            .f(hsl(0.3))))"
  },
  {
    "path": "examples/colrv1_arabic.py",
    "content": "from coldtype import *\n\ntext1 = \"\"\"\nاز آنجا که عدم شناسائی و تحقیر حقوق\nبشر منتهی به اعمال وحشیانه‌ای\n\"\"\"\n\n@renderable((1080, 340), bg=1)\ndef arefRuqaa(r):\n    return (StSt(text1, \"ArefRuqaaInk-Bold\", 80, strip=True)\n        .xalign(r)\n        .lead(60)\n        .align(r))\n\n@renderable((1080, 340), bg=1)\ndef reemKufi(r):\n    return (StSt(text1, \"ReemKufiInk-Regular\", 70, strip=True)\n        .xalign(r)\n        .lead(60)\n        .align(r))\n\n"
  },
  {
    "path": "examples/cropandrepeat.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n@aframe(bg=hsl(0.93, 0.6, 0.5))\ndef scratch(f):\n    def crop(e, p):\n        _e = 10+ez(e, \"eei\") * p.ambit(tx=0, ty=1).h\n        _crop = P(p.ambit(tx=0, ty=1)\n            .take(_e, \"N\", forcePixel=1))\n        return (p\n            .intersection(_crop)\n            .unframe()\n            .align(f.a.r, \"S\", tx=1)\n            .t(ez(e, \"seio\", 1)*470, 0))\n\n    return (StSt(\"CROP AND REPEAT\", Font.MuSan()\n        , fontSize=170\n        , wght=0\n        , wdth=1\n        , fit=f.a.r.w)\n        .layer(47)\n        .mape(crop)\n        .stack(4)\n        .scale(0.7)\n        .align(f.a.r.drop(10, \"S\"), \"S\")\n        .rotate(0.25)\n        .f(1)\n        .ch(phototype(f.a.r, 1.5, 105, 30\n            , fill=hsl(0.17, 0.8, 0.65))))"
  },
  {
    "path": "examples/custom_hotkey.py",
    "content": "from coldtype import *\n\n@renderable((100, 100), bg=hsl(0.9))\ndef scratch(r):\n    return None\n\ndef custom_hotkey(key, renderer):\n    print(\">>>\", key, renderer)"
  },
  {
    "path": "examples/diagram.py",
    "content": "from coldtype import *\nimport coldtype.fx.diagram as d\n\nr1 = random_series(seed=5)\n\n@renderable((1080, 540), bg=1)\ndef d1(r):\n    return (P().oval(Rect(120))\n        .layer(3).spread(70)\n        .layer(2).stack(60)\n        .mapv(lambda i, p: p.f(hsl(r1[i], 0.7, 0.7)))\n        .index(0, lambda p: p.ch(d.interconnect()))\n        .index(1, lambda p: p.reverse()\n            .ch(d.interconnect(\"←→←\")))\n        .append(lambda p: d.ujoin(p[0], p[1], \"→\", 50, \"-←\"))\n        .append(lambda p: d.ujoin(p[1], p[0], \"←\", 50, \"-→\"))\n        .align(r))\n"
  },
  {
    "path": "examples/direct_uharfbuzz.py",
    "content": "from coldtype import *\nimport uharfbuzz as hb\n\nct_font = Font.Find(\"JetBrainsMono.ttf\", max_depth=5)\n\nblob = hb.Blob.from_file_path(ct_font.path)\nface = hb.Face(blob)\n\n@renderable(bg=1)\ndef direct(r:Rect):\n    font = hb.Font(face)\n    \n    ttFont = ct_font.font.ttFont\n\n    cap_height = ttFont['OS/2'].sCapHeight\n\n    max_wght = ct_font.variations()[\"wght\"][\"maxValue\"]\n    font.set_variations(dict(wght=max_wght))\n\n    buf = hb.Buffer()\n    buf.add_str(\"bag\")\n    buf.guess_segment_properties()\n\n    features = {\"kern\": True, \"liga\": True}\n    hb.shape(font, buf, features)\n\n    infos = buf.glyph_infos\n    positions = buf.glyph_positions\n\n    def glyph(x):\n        info, pos = x.el\n        gid = info.codepoint\n        p = P()\n        font.draw_glyph_with_pen(gid, p)\n        p.translate(pos.x_offset, pos.y_offset)\n        # set the typographical \"frame\" (this is a special property that .align calls check for)\n        p.data(frame=Rect(pos.x_offset, pos.y_offset, pos.x_advance, cap_height))\n        return p\n\n    return (P().enumerate(zip(infos, positions), glyph)\n        .spread(60) # 60 is equivalent to display-space tracking\n        .scale(0.5, pt=(0,0))\n        .align(r, tx=0)\n        .f(0)\n        .mapv(lambda p: p\n            .up()\n            .insert(0, P().rect(p.ambit()).fssw(-1, hsl(0.9, 0.7, 0.9), 2))))"
  },
  {
    "path": "examples/drawbot/both.py",
    "content": "from coldtype import *\nfrom coldtype.drawbot import *\n\n\"\"\"\nThe same variable font animation with drawBot and Coldtype\n\"\"\"\n\n@drawbot_animation((1080, 540)\n, timeline=Timeline(30)\n, bg=hsl(0.8, 0.6, 0.85)\n, render_bg=1\n)\ndef bounce(f):\n    # Using DrawBot API\n\n    co = Font.ColdObvi()\n    fontSize = 190\n\n    fs = db.FormattedString(\"COLDTYPE\",\n        font=co.path,\n        fontSize=fontSize,\n        fontVariations=dict(\n            wdth=f.e(\"eeio\", rng=(0, 1000))))\n    \n    bp = db.BezierPath()\n    bp.text(fs, (50, 50))\n    db.fill(*hsl(0.4))\n    db.drawPath(bp)\n\n    # Using Coldtype API\n\n    (StSt(\"COLDTYPE\", co, fontSize\n        , wdth=f.e(\"eeio\"))\n        .t(50, 210)\n        .f(hsl(0.4))\n        .ch(dbdraw))"
  },
  {
    "path": "examples/drawbot/composition.py",
    "content": "from coldtype import *\nfrom coldtype.drawbot import *\n\nco = Font(\"assets/ColdtypeObviously.designspace\")\n\nlong_txt = \"\"\"This code is a mix of DrawBot and Coldtype, meant to demonstrate that Coldtype primitives (like designspace-reading) can be combined with DrawBot primitives like multi-line text support and the Mac Font library.\"\"\"\n\n@drawbot_renderable(rect=(900, 500), bg=0)\ndef composition(r):\n    ri = r.inset(20, 20)\n\n    db.fill(*hsl(0.5))\n    db.oval(*ri.take(0.5, \"mxx\").square())\n\n    im = db.ImageObject()\n    with im:\n        db.size(500, 500)\n        db.image(\"https://static.goodhertz.co/statics/store/img/logos/hertz-color-danico-250-lssy.png\", (0, 0))\n        im.photoEffectMono()\n    \n    x, y = im.offset()\n    db.image(im, (250+x, -10+y))\n\n    db.fontSize(19)\n    db.font(\"Georgia-Italic\")\n    db.fill(*hsl(0.9, s=0.7, l=0.6))\n    db.textBox(long_txt, ri.take(200, \"mny\").take(250, \"mnx\"))\n\n    (StSt(\"COLDTYPE\", co, 150, ro=1)\n        .align(ri, \"mnx\", \"mxy\")\n        .f(Gradient.Horizontal(ri,\n            hsl(0.05, s=0.7, l=0.6),\n            hsl(0.15, s=0.7, l=0.6)))\n        .s(0)\n        .sw(3)\n        .ch(dbdraw))\n    \n    (StSt(\"COLDTYPE\", co, 50, ro=1, r=1, tu=-100)\n        .align(ri, \"mnx\", \"mdy\")\n        .translate(0, 40)\n        .f(0)\n        .understroke(s=1, sw=5)\n        .ch(dbdraw))\n\n\n\"\"\"\nWhen you’re ready to create a PDF, just hit the \"R\" key in the viewer app\n\"\"\"\n\ndef release(_):\n    db.saveImage(\"~/Desktop/composition.pdf\")"
  },
  {
    "path": "examples/drawbot/pdfdoc.py",
    "content": "from coldtype import *\nfrom coldtype.drawbot import *\n\nfont = Font.RecursiveMono()\n\n@drawbot_animation(\"letter\")\ndef multipage_doc(f):\n    c = hsl(f.e(\"l\", 0))\n    \n    P(f.a.r.inset(10)).f(c).outline(10).ch(dbdraw)\n    \n    fontName = db.installFont(str(font.path))\n    fs = db.FormattedString(\n        f\"This is page {f.i}\"\n        , font=fontName\n        , fontSize=50\n        , fill=c.rgba())\n    \n    db.textBox(fs, f.a.r.inset(50))\n    \n    bp = db.BezierPath()\n    bp.textBox(fs, f.a.r.inset(50, 100))\n    db.fill(*c)\n    db.drawPath(bp)\n\n    (StSt(f\"This is page {f.i}\", font, 50)\n        .f(c)\n        .align(f.a.r.inset(50, 160), \"NW\", tx=0)\n        .ch(dbdraw))\n\n\n# hit the 'R' key in the viewer to trigger this\n\ndef release(_):\n    pdfdoc(multipage_doc,\n        __sibling__(\"multipage.pdf\"))"
  },
  {
    "path": "examples/drawbot/pixellation.py",
    "content": "from coldtype import *\nfrom coldtype.drawbot import *\n\n@drawbot_animation((1080, 540), bg=0.8, timeline=50)\ndef db_script_test(f):\n    e = f.e()\n    (StSt(\"COLDTYPE\", Font.ColdObvi(), 150, tu=100+-730*e, ro=1, r=1)\n        .align(f.a.r)\n        .rotate(15*(1-e))\n        .skew(e*0.75)\n        .f(hsl(e, s=1, l=1-e*0.35))\n        .understroke(sw=20)\n        .scale(1-1*e*0.5)\n        .chain(dbdraw_with_filters(f.a.r,\n            [[\"pixellate\", dict(scale=5.0+5.0*e)]])))"
  },
  {
    "path": "examples/drawbot/varfont.py",
    "content": "# Installing as little of Coldtype as possible, to leave breathing room for the 'from drawBot import *'\n\nfrom coldtype import Font\nfrom coldtype.drawbot import drawbot_animation\nfrom drawBot import *\n\nmutator = Font.MutatorSans()\n\n@drawbot_animation(timeline=60, bg=1)\ndef db_varfont(f):\n    fontName = installFont(str(mutator.path))\n    fs = FormattedString()\n    fs.fontSize(f.e(\"ceio\", 1, rng=(150, 250)))\n    fs.font(fontName)\n    fs.fontVariations(\n        wdth=f.e(\"seio\", 1, rng=(0, 1000)))\n    fs.append(\"DRAWBOT AND COLDTYPE\")\n    bp = BezierPath()\n    bp.textBox(fs, f.a.r.inset(50, 50).expand(100, \"mny\"))\n    drawPath(bp)"
  },
  {
    "path": "examples/easing.py",
    "content": "from coldtype import *\n\n@renderable((1080, 540), bg=1)\ndef easing(r):\n    sq = Rect(50, 50)\n    return (P().oval(sq)\n        .outline(4)\n        .layer(17)\n        .spread(4)\n        .mape(lambda e, p: p\n            .f(hsl(0.65+ez(e, \"ceio\"), 0.9, 0.5))\n            .t(0, ez(e, \"eeio\", r=(0, 300))))\n        .align(r))"
  },
  {
    "path": "examples/example.py",
    "content": "from coldtype import *\n\n@renderable(rect=(900, 500))\ndef coldtype(r):\n    return (StSt(\"COLDTYPE\", Font.ColdObvi()\n        , fontSize=450\n        , wdth=1\n        , tu=-50\n        , r=1\n        , ro=1\n        , fit=r.w)\n        .align(r)\n        .mape(lambda e, p: (p\n            .f(hsl(0.5+e*0.15, s=0.6, l=0.55))\n            .s(0).sw(30).sf(1)))\n        .rotate(5)\n        .scale(0.75))"
  },
  {
    "path": "examples/freeze.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import freeze\n\n# Freeze!\n# Kind of like freezing a track in a DAW,\n# this lets you wrap expensive drawings with a freeze function\n# that rasterizes to an image and saves that image in-memory\n# (cache keyed by the source of the lambda passed in)\n# thereby substituting a calculated vector with its \"frozen\"\n# rasterized representation\n\nr = Rect(1080, 540)\nrs1 = random_series(r.mnx-100, r.mxx, 10+int(random()*40))\nrs2 = random_series(r.mny-100, r.mxy, 1)\nrs3 = random_series(seed=3)\nrs4 = random_series(seed=2)\nrs5 = random_series(0.50, 0.70, seed=4)\n\n@renderable(r)\ndef scratch(r):\n    def color(h):\n        return hsl(h, 0.95, a=0.15)\n\n    def freezeable():\n        return (P().enumerate(range(0, 5000), lambda x:\n                StSt(\"F\", Font.MuSan(), 120, wght=rs3[x.i], wdth=rs4[x.i])\n            .t(rs1[x.i], rs2[x.i])\n            .f(color(rs5[x.i]))))\n\n    return (P(\n        freeze(1, 1, freezeable, additionals=[color, rs5]),\n        StSt(\"F IS FROZEN\", Font.MuSan(), 10+random()*100)\n            .align(r).f(1)))\n        \n"
  },
  {
    "path": "examples/github_social.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n@renderable((1280, 640), bg=hsl(0.7, 0.6, 0.4), render_bg=True)\ndef github_social(r):\n    def styler(x):\n        e = 1 - x.e if not x.l else x.e\n        return Style(Font.ColdObvi(), 290, wdth=e, tu=-100*e, rotate=30 if x.l else -10)\n\n    logos = (Glyphwise(\"COLDTYPE\\nCOLDTYPE\", styler)\n        .lead(10)\n        .align(r.take(0.9, \"N\"))\n        .index(1, lambda p: p.t(15, 0))\n        .fssw(1, 0, 10, 1)\n        .reverse(recursive=True)\n        .ch(phototype(r, blur=3, cut=180, cutw=17)))\n\n    return P(logos,\n        StSt(\"A PYTHON LIBRARY\", Font.MuSan(), 50, wdth=1)\n            .f(1)\n            .align(r.take(120, \"S\")))"
  },
  {
    "path": "examples/grid_shapes.py",
    "content": "from coldtype import *\n\n@renderable(bg=1)\ndef shapes(r:Rect):\n    s = Scaffold(r).numeric_grid(10, 10)\n    return (P(\n        s.view(),\n        P(s[\"5|4*3|2\"]).f(bw(0, 0.5)),\n        P(s[\"4|3*3|2\"]).f(bw(0, 0.25)),\n        P(s[\"0|-1*3|-3\"]).f(hsl(0.75, a=0.5)),\n        P(s[\"-1|-2*-3|-3\"]).f(hsl(0.75, a=0.5)),\n        P(s[\"3|1*2|2\"]).f(hsl(0.3, a=0.5)),\n        P(s[\"-1|0*-2|2\"]).f(hsl(0.3, a=0.5)),\n        ))\n"
  },
  {
    "path": "examples/image_in_path.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\n@renderable(bg=0)\ndef image(r):    \n    shape = P().oval(r.inset(100)).align(r, ty=1)\n    pts = shape.flatten(3).point_list(random_seed=0)\n\n    return (P()\n        .m(pts[0])\n        .enumerate(pts[1:], lambda x: x.parent\n            .l(x.el))\n        .ep()\n        .fssw(-1, 1, 1)\n        .ch(phototype(r, 1, 170, 50)))\n\n@renderable(bg=0, layer=0)\ndef in_path(r):\n    return (StSt(\"COLD\\nTYPE\", Font.ColdObvi(), 340, wdth=1, fit=r.inset(200).w)\n        .align(r, ty=1)\n        .img(image.render_to_disk()[0], r, pattern=1)\n        .f(0.1)\n        .ch(luma(r, hsl(0.57, 1, 0.50))))"
  },
  {
    "path": "examples/image_rotate.py",
    "content": "from coldtype import *\nfrom coldtype.img.skiaimage import SkiaImage\nfrom coldtype.fx.skia import precompose, temptone\n\n@renderable((540, 540/2), bg=hsl(0.3), render_only=0)\ndef test_image(r):\n    return StSt(\"HELLO\", Font.MuSan(), 100, wght=1).align(r, ty=1).f(hsl(0.9, 0.6, 0.6))\n\n@animation((1080, 1080), tl=36)\ndef rotate(f):\n    src = test_image.render_to_disk(render_bg=1)[0]\n    return (SkiaImage(src)\n        .resize(1)\n        .align(f.a.r)\n        .rotate(45-f.i*10)\n        #.in_pen().fssw(bw(0, 0.1), 0, 1)\n        .ch(precompose(f.a.r))\n        .ch(temptone(-0.20, 0.70)))\n\n@animation((540, 540))\ndef resize(f):\n    return (SkiaImage(test_image.pass_path(0))\n        .resize(0.85)\n        .align(f.a.r, \"NE\"))\n"
  },
  {
    "path": "examples/image_rotated_quality.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\n@animation(bg=1)\ndef scratch(f):\n    shape = StSt(\"ABC\", Font.MuSan(), 300, wght=1).align(f.a.r)\n    if 1:\n        img = shape.ch(precompose(f.a.r)).img()[\"src\"]\n        img = SkiaImage(img).rotate(36).ch(precompose(f.a.r))\n        for _ in range(0, 9*31):\n            img = SkiaImage(img.img()[\"src\"]).rotate(36).ch(precompose(f.a.r))\n    else:\n        img = shape\n    return img"
  },
  {
    "path": "examples/instancer.py",
    "content": "from coldtype import *\n\nsrc = Font.JetBrainsMono()\n\n@renderable((1080, 540), bg=1)\ndef viewer(r):\n    txt = \"“Hello World” øö ĦĦĦ 123\"\n    textface = StyledString(txt, Style(src, 62, wght=1, ss02=1))\n    instance = textface.instance(ººsiblingºº(\"JBMono-custom.otf\"), freeze=1, freeze_suffix=\"Custom\")\n    subsetted = instance.subset(ººsiblingºº(\"JBMono-custom-subset.woff2\"))\n\n    return (P(\n        textface.pens(),\n        StSt(txt, instance, 62),\n        StSt(txt, subsetted, 62),\n        )\n        .f(0)\n        .stack(10)\n        .align(r))"
  },
  {
    "path": "examples/interpolated_spiral.py",
    "content": "from coldtype import *\n\nrs = random_series()\n\n@aframe()\ndef spiral(f):\n    return (P().enumerate(range(0, 30), lambda x:\n        StSt(\"COLDTYPE\", Font.ColdtypeObviously(), 220, wdth=x.e, ro=1)\n            .align(f.a.r)\n            .fssw(-1, hsl(x.e, s=0.7, a=1.3-x.e), 2)\n            .rotate(-200+x.e*200)))"
  },
  {
    "path": "examples/interrupted_lines.py",
    "content": "from coldtype import *\n\ndef interrupt_lines(lines:list[Line], rects:list[Rect]):\n    out = P()\n\n    for l in lines:\n        p = P().m(l.start)\n\n        for rect in rects:\n            ra = rect.ambit()\n            if l.intersects(ra.ew):\n                p1 = l.intersection(ra.ew)\n                p2 = l.intersection(ra.ee)\n                p.l(p1).ep()\n                p.m(p2)\n    \n        out += p.l(l.end).ep()\n    return out\n\n@aframe(bg=1)\ndef lines(f:Frame):\n    s = Scaffold(f.a.r).numeric_grid(10, 10)\n    \n    rects = (P(\n        P(s[\"3|3\"].r.inset(0, -14)),\n        P(s[\"6|4*2|2\"].r.inset(0, 14))\n    )).fssw(-1, hsl(0.6), 1)\n\n    lines = []\n\n    for x in range(1, 10):\n        start, end = s[f\"0|{x}\"], s[f\"9|{x}\"]\n        lines.append(Line(start.r.psw, end.r.pse))\n    \n    pts = interrupt_lines(lines, [r.ambit().inset(-8, 0) for r in rects])\n    \n    return rects + pts.fssw(-1, hsl(0.8), 1)"
  },
  {
    "path": "examples/layers.py",
    "content": "from coldtype import *\n\n@renderable((500, 500))\ndef layer1(r):\n    return P().oval(r.inset(10)).f(hsl(0.3))\n\n@renderable((500, 500), layer=1)\ndef layer2(r):\n    return P().rect(r.inset(150)).rotate(45).f(hsl(0.6))\n"
  },
  {
    "path": "examples/letter_lighttrail.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\n\nr = Rect(1080, 1080)\nletters = \"RANDOM\"\n\nrc = random_series()\nrstroke = random_series(0.45, 1)\n\n@animation(r, bg=1\n    , tl=Timeline(240, 12)\n    , release=lambda x: x.export(\"h264\", loops=2, date=True))\ndef scribble_random(f):\n    seed = f.i+2\n    \n    letter = (StSt(\n        letters[math.floor(f.e(\"l\", 0, rng=(0, len(letters) )))]\n        , font=Font.MuSan()\n        , fontSize=1105\n        , wght=f.e(\"l\", 1)\n        , wdth=0.25\n        , ro=1)\n        .align(r, ty=1)\n        .scaleToRect(f.a.r.inset(50)))\n    \n    points = letter.pen().flatten(10).point_list()\n    rp = random_series(0, len(points), seed=seed, mod=int)\n\n    lines = (P().enumerate(range(0, int(f.e(\"eei\", 1, rng=(15, 25)))), lambda x: P()\n        .moveTo(points[rp[x.i]])\n        .enumerate(range(0, int(f.e(\"seio\", rng=(6, 200)))), lambda y: y.parent\n            .declare(yi:=y.i*10)\n            .cond(rc[x.i+yi] > f.e(\"l\", rng=(0.1, 0.75)),\n                lambda p: p.lineTo(points[rp[1+yi+x.i]]),\n                lambda p: p.curveTo(\n                    points[rp[1+yi+x.i]],\n                    points[rp[2+yi+x.i]],\n                    points[rp[3+yi+x.i]])))\n        .endPath()\n        .fssw(-1, 1, rstroke[x.i])\n        .ch(phototype(f.a.r\n            , blur=2\n            , cut=40\n            , cutw=15\n            , fill=hsl(x.e*0.5+f.e(\"l\", 0, rng=(0, 10)), 0.9, 0.4))))\n        .blendmode(BlendMode.Cycle(16)))\n    \n    return (P(\n        P(f.a.r)\n            .ch(spackle(cut=235, cutw=1, base=f.i, fill=bw(1)))\n            .ch(phototype(f.a.r,\n                blur=3, cut=170, fill=hsl(f.i*0.1))),\n        lines)\n        .postprocess(lambda p: p.ch(temptone(.05,.02))))"
  },
  {
    "path": "examples/linealigning.py",
    "content": "from coldtype import *\n\n@renderable((1080, 540), bg=1)\ndef aligns(r):\n    ri = r.inset(100)\n    return (P(\n        P(r.inset(50)).fssw(-1, 0, 1),\n        StSt(\"Coldest\\nType\".upper(), Font.MuSan(), fs:=72).xalign(ri, \"W\").align(ri, \"NW\"),\n        StSt(\"Coldest\\nType\".upper(), Font.MuSan(), fs).xalign(ri).align(ri),\n        StSt(\"Coldest\\nType\".upper(), Font.MuSan(), fs).xalign(ri, \"E\").align(ri, \"SE\"),\n        ))\n"
  },
  {
    "path": "examples/linebreaking.py",
    "content": "from coldtype import *\n\ntxt = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque at aliquet neque, non bibendum nisi. Mauris quis ligula felis.\"\n\n@renderable(bg=1)\ndef scratch(r):\n    ri = r.inset(50)\n    return (StSt(txt, Font.JBMono(), 70)\n        .wordPens()\n        .linebreak(ri.w)\n        .stack(\"100%\")\n        .align(ri)\n        .f(0))\n\n@renderable(bg=1)\ndef heterogenous(r):\n    ri = r.inset(50)\n    a = StSt(\"Hello\", Font.JBMono(), 70, wght=1)\n    b = StSt(\"TYPE\", Font.ColdObvi(), 70, wght=1)\n    c = StSt(\"WORLD\", Font.MuSan(), 70, wght=1)\n    return (P(a, b, c)\n        .spread(40)\n        .linebreak(500)\n        .stack(20)\n        .align(ri))"
  },
  {
    "path": "examples/logo.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n\"\"\"\nFor instagram\n\"\"\"\n\n@animation(bg=hsl(0.65, 0.6, 0.45), solo=1, tl=2)\ndef logo(f):\n    circle_guide = P().oval(f.a.r.inset(-20)).fssw(-1, 1, 2)\n    if f.i == 0:\n        return P(\n            circle_guide,\n            StSt(\"COLD\\nTYPE\", Font.ColdObvi(), 500\n                , wdth=0.5\n                , tu=-50\n                , kp={\"P/E\":-80}\n                , leading=-10)\n                .index(0, lambda p: p.translate(-130, 0))\n                .reverse(recursive=1)\n                .align(f.a.r, tx=1, ty=1)\n                .rotate(15)\n                .translate(-3, 3)\n                .fssw(1, 0, 25, 1)\n                .ch(phototype(f.a.r,\n                    blur=5,\n                    cut=170,\n                    cutw=11,\n                    fill=bw(1))))\n    else:\n        return P(\n            circle_guide,\n            StSt(\"C\", Font.ColdObvi(), 850, wdth=1)\n                .align(f.a.r)\n                .f(1)\n                .rotate(10)\n                .translate(-5, -7)\n                .ch(phototype(f.a.r,\n                    blur=5,\n                    cut=150,\n                    cutw=15,\n                    fill=bw(1))))"
  },
  {
    "path": "examples/logo_state.json",
    "content": "{\"controller_values\": {\"Launch Control XL\": {\"78\": 0.5905511811023622, \"77\": 0.36220472440944884, \"79\": 0.5275590551181102, \"80\": 0.47244094488188976, \"81\": 0.6299212598425197}}}"
  },
  {
    "path": "examples/metaprogramming.py",
    "content": "from coldtype import *\nfrom coldtype.fx.warping import warp\nfrom coldtype.text.richtext import PythonCode\n\n### Code that displays itself\n\nstyles = [\"R\", \"Bl\", \"B.*I\"]\nvulfs = [Font.Find(f\"Mono{s}\", \"vulf\") for s in styles]\ndefaults = [vulfs[0], hsl(0.65, 0.6, 0.65)]\nlookup = PythonCode.DefaultStyles(*vulfs)\nrnds1 = random_series()\n\n@aframe(bg=0)\ndef code1(f):\n    def render_code(txt, styles):\n        style = styles[0] if len(styles) > 0 else \"default\"\n        font, fill = lookup.get(style, defaults)\n        return txt, Style(font, 22, fill=fill)\n\n    ri = f.a.r.inset(20)\n    \n    return (PythonCode(ri\n        , Path(__FILE__).read_text()[:]\n        , render_code\n        , leading=8)\n        .align(ri, \"W\")\n        .removeSpacers()\n        .collapse()\n        .pmap(lambda i, p: p.rotate(-15+rnds1[i]*30))\n        .pmap(warp(2, 0, 0, mult=30)))"
  },
  {
    "path": "examples/mirror.py",
    "content": "from coldtype import *\n\n@renderable()\ndef mirror(r):\n    return (StSt(\"C\", Font.ColdObvi(), 300)\n        .align(r.inset(100).take(0.5, \"NW\"))\n        .mirrorx(r.pc)\n        .mirrory(r.pc)\n        .layer(\n            lambda p: p.rotate(45, point=r.pc)\n                .f(hsl(0.9, 0.8)),\n            lambda p: p.f(hsl(0.65, 0.8))))"
  },
  {
    "path": "examples/misc/no_command_line.py",
    "content": "from coldtype.renderer import Renderer\n\n\"\"\"\n`python examples/misc/no_command_line.py`\n\nAn example of how to call the Coldtype renderer directly,\nwithout the need to use the command line at all\n(mostly useful if you’re batch-rendering fully written animations)\n\nThat said, if you take out the \"-a\" arg, this should run exactly\nlike the normal coldtype viewer — potentially useful for a situation\nin which it’s difficult to access the `coldtype` bin command, since\nyou could run this with just the standard `python` bin command\n\"\"\"\n\n_, parser = Renderer.Argparser()\nparsed = parser.parse_args([\"examples/animations/simplevarfont.py\", \"-a\"])\nRenderer(parsed).main()"
  },
  {
    "path": "examples/opentypesvgimagefont.py",
    "content": "from coldtype import *\nfrom coldtype.raster import text_image\n\nfnt, fs = \"California Oranges\", 200\nfnt, fs = \"Liebeheide\", 100\nfnt, fs = \"PinkSugar\", 500\n\n@renderable((1080, 540), bg=1)\ndef texter(r):\n    return (StSt(\"OTSVG\", fnt, fs, annotate=1)\n        .align(r, ty=1)\n        .layer(\n            lambda p: p.align(r, \"N\", ty=1).ch(text_image(r)),\n            lambda p: p.align(r, \"S\", ty=1).ch(text_image(r)),\n            lambda p: p.mapv(lambda p: p.ch(text_image(r))),\n            lambda p: p.fssw(-1, rgb(1, 1, 1), 2)))"
  },
  {
    "path": "examples/potracer.py",
    "content": "from coldtype import *\nfrom coldtype.raster import phototype, potrace\n\n@renderable((1080, 540), bg=1)\ndef potraced(r):\n    return (StSt(\"COLD\".upper(), Font.ColdObvi(), 300, wdth=1, tu=-190)\n        .align(r)\n        .reverse()\n        .fssw(1, 0, 10, 1)\n        .ch(phototype(r, 3, cut=170, cutw=16))\n        .ch(potrace(r, turdsize=100))\n        #.print(lambda p: p.value)\n        .f(hsl(0.8)))"
  },
  {
    "path": "examples/printer.py",
    "content": "from coldtype import *\n\ntxt = \"\"\"\n1   Print\n2   Photograph\n3   Crumple\n4   goto 2\n\"\"\"\n\n@renderable(\"letter-landscape\", bg=1, render_bg=0, fmt=\"pdf\")\ndef printed(r):\n    return (StSt(txt, \"polymathvar.ttf\", 72, space=300, tu=0, opsz=1, case=\"lower\", leading=34, tnum=1, wght=0.65)\n        .align(r)\n        .f(0))\n\ndef release(_):\n    import cups\n\n    path = printed.render_to_disk()[0]\n    conn = cups.Connection()\n    printers = conn.getPrinters()\n    print(printers)\n\n    conn.printFile(conn.getDefault(), str(path), printed.name, {\"orientation-requested\": \"4\"})\n    import cups"
  },
  {
    "path": "examples/random_shape.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype\n\n@animation(bg=0, tl=Timeline(120, 12))\ndef scribble(f):\n    seed = f.i\n    ri = f.a.r.inset(50)\n    rx = random_series(ri.mnx, ri.mxx, seed=seed)\n    ry = random_series(ri.mny, ri.mxy, seed=seed+1)\n\n    return (P().enumerate(range(0, int(f.e(\"seio\", 1, rng=(1, 200)))), lambda x: P()\n        .moveTo(rx[x.i], ry[x.i])\n        .enumerate(range(0, 20), lambda y: y.parent\n            .declare(yi:=y.i*10)\n            .curveTo(\n                (rx[1+yi+x.i], ry[1+yi+x.i]),\n                (rx[2+yi+x.i], ry[2+yi+x.i]),\n                (rx[3+yi+x.i], ry[3+yi+x.i])))\n        .endPath()\n        .fssw(-1, 1, f.e(\"eei\", 1, rng=(0.5, 5)))\n        .ch(phototype(f.a.r\n            , blur=f.e(\"eei\", 1, rng=(1.75, 10))\n            , cut=40\n            , cutw=15\n            , fill=hsl(x.e*0.5+f.e(\"l\", 0, rng=(0, 10)), 0.8))))\n        .blendmode(BlendMode.Cycle(14)))\n\nrelease = scribble.export(\"h264\", loops=2)"
  },
  {
    "path": "examples/restmake.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom functools import partial\n\nrsx = random_series(-2, 2, 1)\nrsy = random_series(-2, 2, 2)\nrsa = random_series(-10, 10, 3)\nrsw = random_series(0, 1, 4)\n\n@renderable(bg=hsl(0.7))\ndef restmake(r):\n    d = 17\n    s = Scaffold(r.inset(0, 60)).numeric_grid(d)\n\n    def letter(txt, i, r, seed=0):\n        return (StSt(list(txt)[i%4], \"NCND\", 40, wght=rsw[i+seed])\n            .pen()\n            .unframe()\n            .f(0)\n            .align(r)\n            .t(rsx[i+seed*5], rsy[i+seed*10])\n            .rotate(rsa[i+seed]))\n\n    def point(txt, seed, x):\n        row = x.el.data(\"row\")\n        col = x.el.data(\"col\")\n        if p := x.el.r.pc if row%2 == 0 else x.el.r.pe if col < d - 1 else None:\n            return letter(txt, x.i, Rect.FromCenter(p, 20), seed).f(1)\n\n    return (P(\n        P().enumerate(s.cells(), partial(point, \"rest\", 0)),\n        P().enumerate(s.cells(), partial(point, \"make\", 1))\n            .rotate(10, point=s.r.psw),\n    ).align(s).ch(phototype(r, 1, 110, 65)))\n"
  },
  {
    "path": "examples/richtext.py",
    "content": "from coldtype import *\nfrom coldtype.text.richtext import RichText\n\ndef styler(txt, styles):\n    if \"i\" in styles:\n        return txt, Style(Font.RecursiveMono(), 22)\n    elif \"h\" in styles:\n        return txt, Style(Font.MutatorSans(), 72, wght=1)\n    return txt, Style(Font.RecursiveMono(), 42)\n\n@renderable((1080, 200))\ndef highlight(r):\n    return (RichText(r, \"HELLO[h] World\", styler)\n        .xalign(r)\n        .align(r, ty=1)\n        .scale(1.5)\n        .insert(0, lambda ps: P()\n            .rect(ps[0][-1]\n                .ambit(tx=1, ty=1)\n                .inset(-10))\n            .fssw(-1, hsl(0.7, a=0.3), 10)))\n\ntxt = \"\"\"H [h]\n\nText\na smaller line [i]\"\"\"\n\n@renderable((1080, 540))\ndef plainish(r):\n    return (RichText(r, txt, styler, spacer=\"¶\")\n        .xalign(r)\n        .align(r)\n        .scale(2, tx=1)\n        .f(0)\n        .removeSpacers())\n\ntxt2 = \"\"\"\nHello, [a]\nWORLD\n\"\"\"\n\n@renderable((1080, 400))\ndef key_lookup_style(r):\n    return (RichText(\n        r, txt2, {\n            \"a\": Style(Font.RecursiveMono(), 200, fill=hsl(0.9)),\n            \"default\": Style(Font.MuSan(), 150, fill=bw(0), wght=1)})\n        .xalign(r)\n        .reversePens()\n        .lead(20)\n        .align(r))"
  },
  {
    "path": "examples/rounded_corners.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import round_corners\n\n\"\"\"\nUse a skia effect to apply round corners\nto a sharp-edged shape\n\"\"\"\n\n@aframe((1080, 540), bg=1)\ndef rounder(f):\n    return (P(Rect(400))\n        .align(f.a.r)\n        .fssw(-1, 0, 2)\n        .pen()\n        .remove_overlap()\n        .ch(round_corners(60)))\n"
  },
  {
    "path": "examples/scaffold.py",
    "content": "from coldtype import *\n\n@renderable()\ndef boxes(r):\n    l = (Scaffold(r)\n        .cssgrid(r\"auto 30%\", r\"50% auto\", \"x y / z q\", {\n            \"x\": (\"200 a\", \"a a\", \"a b / a c\"),\n            \"x/c\": (\"a a\", \"a a\", \"g a / i a\"),\n            \"q\": (\"a a\", \"a a\", \"q b / c d\")\n        }))\n\n    return P(\n        l.view(),\n        StSt(\"X\", Font.MuSan(), 200, wght=1).align(l[\"x\"]),\n        StSt(\"Y\", Font.MuSan(), 200, wght=1).align(l[\"y\"]),\n        StSt(\"Z\", Font.MuSan(), 200, wght=1).align(l[\"z\"]),\n        StSt(\"Q\", Font.MuSan(), 200, wght=1).align(l[\"q\"]),\n        StSt(\"A\", Font.RecMono(), 100).align(l[\"a\"]).f(hsl(0.9)),\n        StSt(\"B\", Font.RecMono(), 100).align(l[\"b\"]).f(hsl(0.9)),\n        StSt(\"C\", Font.RecMono(), 100).align(l[\"c\"]).f(hsl(0.9)),\n        StSt(\"G\", \"Comic Sans\", 50).align(l[\"g\"]).f(0),\n        StSt(\"A\", \"Comic Sans\", 50).align(l[\"x/c/a\"]).f(0),\n        StSt(\"I\", \"Comic Sans\", 50).align(l[\"i\"]).f(0),\n        P().oval(l[\"x/c/a\"]).fssw(-1, hsl(0.3, a=0.5), 10),\n        StSt(\"Q/Q\", \"Comic Sans\", 50).align(l[\"q/q\"]).f(0),)\n\n@renderable((1080, 540))\ndef boxes2(r):\n    l = Scaffold(r).grid(2, 2)\n    \n    return P(\n        l.view(),\n        P().oval(l[0].rect.square().inset(10)).fssw(-1, hsl(0.9, 1), 2))\n\n@renderable((1080, 540))\ndef boxes3(r):\n    l = Scaffold(r).numeric_grid(5)\n    \n    return P(\n        l.view(),\n        P().oval(l[\"3|1\"].rect.square().inset(10)).fssw(-1, hsl(0.9, 1), 2)\n        )\n\n@renderable((1080, 540), solo=0)\ndef boxes4(r):\n    d = 15\n    \n    l = Scaffold(r.inset(4).square()).numeric_grid(d, gap=1, annotate_rings=True)\n    \n    return (P().enumerate(l.cells(), lambda x:\n        P(x.el.r)\n            .f(hsl(x.el.data(\"ring_e\")*2, 0.6, 0.6))\n            .tag(x.el.tag()))\n        .find_(\"3|12\", lambda p: p.f(0))\n        .find_(\"11|2\", lambda p: p.f(1)))"
  },
  {
    "path": "examples/scripts/player.py",
    "content": "from coldtype import *\nfrom coldtype.renderable.animation import image_sequence, shutil\n\ndef sorted_images(folder, suffix=\"*.jpg\"):\n    return list(sorted(folder.glob(suffix), key=lambda p: p.name))\n\nfolder = Path(__inputs__[0])\nfps = int(__inputs__[1])\n\nimages = sorted_images(folder)\n\nparent = folder.parent\nbase_name = parent.name + \"_\" + folder.name\nname = base_name\n\n@image_sequence(images, fps, looping=True, name=name)\ndef viewer(_): return None\n\ndef release(_):\n    FFMPEGExport(viewer, loops=1, output_folder=parent).prores().write(True)    \n    if True:\n        shutil.rmtree(viewer.output_folder)"
  },
  {
    "path": "examples/scripts/prores.py",
    "content": "from coldtype import *\nfrom coldtype.renderable.animation import image_sequence, shutil\n\ndef sorted_images(folder, suffix=\"*.jpg\"):\n    return list(sorted(folder.glob(suffix), key=lambda p: p.name))\n\nfolder = Path(__inputs__[0])\n\nimages = sorted_images(folder)\nimages_hires = None\n\nfor img in images:\n    print(img)\n\nif (folder / \"hires\").exists():\n    images_hires = sorted_images(folder / \"hires\")\n\nparent = folder.parent\nbase_name = parent.name + \"_\" + folder.name\nname = base_name\n\nfps = 12\n\nif images_hires:\n    name = base_name + \"_proxy\"\n    @image_sequence(images_hires, fps, looping=True, name=base_name, render_only=True)\n    def viewer_hires(_): return None\n\n@image_sequence(images, fps, looping=False, name=name)\ndef viewer(_): return None\n\ndef release(_):\n    FFMPEGExport(viewer, loops=1, output_folder=parent).prores().write(True)\n    if images_hires:\n        FFMPEGExport(viewer_hires, loops=1, output_folder=parent).prores().write(True)\n    \n    if True:\n        # clean up unnecessary files\n        shutil.rmtree(viewer.output_folder)\n        if images_hires:\n            shutil.rmtree(viewer_hires.output_folder)"
  },
  {
    "path": "examples/scripts/prores_to_frames.py",
    "content": "import cv2\nfrom coldtype import *\nfrom coldtype.img.skiaimage import SkiaImage\n\nmov_path = Path(ººinputsºº[0]).expanduser()\n\nprint(mov_path.exists())\n\nvc = cv2.VideoCapture(mov_path)\nr = Rect(int(vc.get(cv2.CAP_PROP_FRAME_WIDTH)), int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT)))\nframe_count = int(vc.get(cv2.CAP_PROP_FRAME_COUNT)) - 1\n\nframes_dir = (mov_path.parent / f\"{mov_path.name}__frames\")\nframes_dir.mkdir(exist_ok=True, parents=True)\n\nprint(frame_count)\n\n@animation(r, tl=Timeline(frame_count))\ndef prores(f):\n    vc.set(cv2.CAP_PROP_POS_FRAMES, f.i)\n    _, frame = vc.read()\n    cv2.imwrite(frames_dir / \"{:05d}.jpg\".format(f.i), frame)\n    return P(SkiaImage(frames_dir / \"{:05d}.jpg\".format(f.i)), StSt(str(f.i), Font.JetBrainsMono(), 100).f(0).align(f.a.r, tx=0))"
  },
  {
    "path": "examples/scripts/symbolfinder.py",
    "content": "from coldtype import *\n\nfonts = Font.LibraryList(r\".*\")\n\nsymbol = \"♔\"\nfound = False\n\nprint(Font.LibraryFind(\"Arial Unicode.ttf\"))\n\n@animation((540, 540), tl=Timeline(len(fonts), 60), bg=0)\ndef finder(f):\n    global found\n    found = False\n\n    print(fonts[f.i])\n    font = Font.LibraryFind(fonts[f.i])\n    print(font)\n\n    try:\n        res = (StSt(symbol, font, 500)\n            .align(f.a.r)\n            .f(1))\n        if res[0].glyphName not in [\".notdef\", \"uni0019\", \"uni0001\", \"glyph0\", \"uni0000\"]:\n            found = True\n            print(\">>>\"*30)\n            print(f.i, f.t.duration, font.path.name, res[0].glyphName)\n            print(\"---\"*30)\n            print(font.path)\n            print(\"---\"*30)\n            return res.data(sleep=3)\n    except:\n        pass\n    \n    return StSt(str(f.i), Font.JBMono(), 20).f(1).align(f.a.r, tx=0)\n\ndef didPreview():\n    from time import sleep\n    if found:\n        sleep(2)"
  },
  {
    "path": "examples/shapes.py",
    "content": "from coldtype import *\n\n# a coldtypification of https://github.com/djrrb/Python-for-Visual-Designers-Fall-2023/blob/main/session-4/code/2-BezierPathLoop.py\n\nseed = 1\nwobble = 250\nhandle_length = 100\n\nrw1 = random_series(-wobble, wobble, seed=seed)\nrw2 = random_series(-wobble, wobble, seed=seed+1)\nrc = random_series(seed=seed+2)\n\n@renderable(bg=1)\ndef shapes(r):\n    def build_shape(x):\n        return (P()\n            .moveTo((0, 0))\n            .lineTo((r.w, 0))\n            .lineTo((r.w, h:=r.h*(1-x.e)))\n            .curveTo(\n                (r.w, h+handle_length+rw1[x.i]),\n                (0, h+handle_length+rw2[x.i]),\n                (0, h))\n            .closePath()\n            .f(hsl(rc[x.i], 0.6, 0.6, 0.5)))\n    \n    return (P().enumerate(range(0, 10), build_shape)\n        .scale(0.75, pt=(0, 0))\n        .xalign(r, \"CX\"))"
  },
  {
    "path": "examples/simple.py",
    "content": "from coldtype import *\n\n@renderable((1580, 350))\ndef render(r):\n    return P(\n        P(r.inset(10)).outline(10).f(hsl(0.65)),\n        StSt(\"COLDTYPE\", Font.ColdtypeObviously()\n            , fontSize=250\n            , wdth=1\n            , tu=-250\n            , r=1\n            , rotate=15)\n            .align(r)\n            .fssw(hsl(0.65), 1, 5, 1)\n            .translate(0, 5))"
  },
  {
    "path": "examples/simplest.py",
    "content": "from coldtype import *\n\n@renderable(rect=(1200, 340), bg=0)\ndef render(r):\n    return (StSt(\"T\", Font.MuSan(), 200)\n        .align(r)\n        .f(1))"
  },
  {
    "path": "examples/sites/.gitignore",
    "content": "*.woff2"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/.gitignore",
    "content": ""
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/assets/style.css",
    "content": "html {\n    box-sizing: border-box;\n    font-size: 16px;\n    font-family: var(--text-font), sans-serif;\n}\n\npre, code, pre span, code span {\n    font-family: var(--mono-font), monospace !important;\n}\n\n*, *:before, *:after {\n    box-sizing: inherit;\n}\n\nol, ul { list-style: none; }\nimg { max-width: 100%; height: auto; }\nbody { background: white; }\n\nheader {\n    font-size: 1rem;\n    margin-bottom: 100px;\n    padding-top: 20px;\n}\n\nheader a {\n    color: dodgerblue;\n    text-decoration: none;\n}\n\nheader a:hover {\n    color: white;\n    background-color: dodgerblue;\n}\n\nheader h1 {\n    font-size: 1.75em;\n    --mono-font: fvs(wght=1);\n}\n\nnav ul {\n    list-style: none;\n    display: flex;\n    flex-wrap: wrap;\n    margin-top: 16px;\n    justify-content: center;\n    row-gap: 12px;\n\n}\nnav li {\n    /* display: flex; */\n}\nnav li:not(:last-child)::after {\n    content: \"///\";\n    color: #ccc;\n}\nnav li a {\n    padding: 4px 7px;\n    background: whitesmoke;\n}\nnav li a:hover {\n    background: deeppink;\n}\n\n.wrapper {\n    max-width: 650px;\n    margin: auto auto;\n    padding: 20px;\n}\n\n.post-link a {\n    display: block;\n    text-decoration: none;\n    color: dodgerblue;\n    /* padding: 10px; */\n    border-left: 2px solid dodgerblue;\n}\n\n.post-link a h2 {\n    padding: 2px 5px 2px 10px;\n    font-family: var(--text-font);\n    font-variation-settings: \"wght\" 800, \"wdth\" 60;\n}\n\n.post-link a:hover h2 {\n    background-color: dodgerblue;\n    color: white;\n}\n\n.post-link a h2 span.date {\n    color: #ccc;\n    font-variation-settings: \"wght\" 300, \"wdth\" 50;\n}\n\n.post-link a h2 span.grocer {\n    color: #ccc;\n    display: none;\n}\n\n.colab-callout {\n    margin-bottom: 100px;\n}\n\na {\n    color: dodgerblue;\n}\n\na.colab-link {\n    --mono-font: fvs(ital=1, wght=0.65);\n    color: dodgerblue;\n    text-align: left;\n    opacity: 0.65;\n    text-decoration: none;\n}\n\na.colab-link:hover {\n    opacity: 1;\n}\n\n.post .headline {\n    margin-bottom: 90px;\n}\n\n.post {\n    margin-bottom: 50px;\n    /* padding: 20px; */\n}\n\n.post p {\n    margin-bottom: 14px;\n    font-size: 1.1rem;\n    line-height: 150%;\n}\n\n.post h1 {\n    --mono-font: fvs(wght=0.85);\n    margin-top: 30px;\n    margin-bottom: 10px;\n}\n\n.post h2 {\n    --mono-font: fvs(wght=0.85);\n    margin-top: 50px;\n    margin-bottom: 30px;\n}\n\n.post h3 {\n    --mono-font: fvs(wght=0.75);\n    margin-top: 30px;\n    margin-bottom: 20px;\n}\n\n.post ul {\n    margin-bottom: 14px;\n    list-style: circle;\n    padding-left: 20px;\n}\n\n.post li {\n    font-size: 1.1rem;\n    line-height: 1.4rem;;\n    margin-bottom: 10px;\n}\n\n.post code {\n    --mono-font: fvs(wght=0.35);\n    color: hsl(320, 80%, 50%);\n}\n\n.post strong {\n    --text-font: fvs(wght=0.85);\n}\n\n.post em {\n    --text-font: fvs(slnt=0);\n    font-style: normal;\n}\n\nhr {\n    border: none;\n    border-bottom: 1px solid #eee;\n    margin-top: 40px;\n    margin-bottom: 40px;\n}\n\n/* .post iframe {\n    margin: 50px 0;\n} */\n\n.post .author {\n    margin-top: 30px;\n    text-align: right;\n    font-style: italic;\n    color: #555;\n    margin-bottom: 200px;\n}\n\n.code.no-outputs {\n    margin-bottom: 30px;\n    border-bottom: 1px solid #ccc;\n}\n\n.code-outputs {\n    margin-bottom: 60px;\n    border: 1px solid #ccc;\n    border-top: none;\n    padding: 8px;\n}\n\n.code-outputs img {\n    display: block;\n    margin-bottom: 8px;\n}\n\n.code-outputs img:last-child {\n    margin-bottom: 0;\n}\n\n/* .post pre {\n    display: block;\n    overflow: scroll;\n    padding: 10px 0;\n    margin: 25px 0;\n    border-top: 1px solid #ccc;\n    border-bottom: 1px solid #ccc;\n} */\n\n.text {\n    margin-bottom: 40px;\n}\n\n.text pre {\n    margin-bottom: 20px;\n    border-top: 1px solid #ccc;\n    border-bottom: 1px solid #ccc;\n    padding: 10px 0;\n    overflow-x: scroll;\n}\n\n.highlight pre {\n    /* font-family: covik-sans-mono, monospace; */\n    padding: 12px 10px;\n    /* border-top: 1px solid #ccc; */\n    /* border-bottom: 1px solid #ccc; */\n    font-size: 1rem;\n    overflow-x: scroll;\n    opacity: 1;\n    height: auto;\n    margin-bottom: 0px;\n    background: whitesmoke;\n    border: 1px solid #ccc;\n    border-bottom: none;\n}\n\n.highlight .hll { background-color: #ffffcc }\n.highlight .c { color: #0099FF; --mono-font:fvs(ital=1, wght=0.5); } /* Comment */\n.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */\n.highlight .k { color: #006699; --mono-font:fvs(wght=0.65); } /* Keyword */\n.highlight .n { color: #A02299; } /* Keyword */\n.highlight .o { color: #555555 } /* Operator */\n.highlight .cm { color: #0099FF; --mono-font:fvs(ital=1, wght=0.5); } /* Comment.Multiline */\n.highlight .cp { color: #009999 } /* Comment.Preproc */\n.highlight .c1 { color: #0099FF; --mono-font:fvs(ital=1, wght=0.5); } /* Comment.Single */\n.highlight .cs { color: #0099FF;  --mono-font:fvs(ital=1, wght=0.65); } /* Comment.Special */\n.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */\n.highlight .ge { font-style: italic } /* Generic.Emph */\n.highlight .gr { color: #FF0000 } /* Generic.Error */\n.highlight .gh { color: #003300; --mono-font:fvs(wght=0.65); } /* Generic.Heading */\n.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */\n.highlight .go { color: #AAAAAA } /* Generic.Output */\n.highlight .gp { color: #000099; --mono-font:fvs(wght=0.65); } /* Generic.Prompt */\n.highlight .gs { font-weight: bold } /* Generic.Strong */\n.highlight .gu { color: #003300; --mono-font:fvs(wght=0.65); } /* Generic.Subheading */\n.highlight .gt { color: #99CC66 } /* Generic.Traceback */\n.highlight .kc { color: #006699; --mono-font:fvs(wght=0.65); } /* Keyword.Constant */\n.highlight .kd { color: #006699; --mono-font:fvs(wght=0.65); } /* Keyword.Declaration */\n.highlight .kn { color: #006699; --mono-font:fvs(wght=0.65); } /* Keyword.Namespace */\n.highlight .kp { color: #006699 } /* Keyword.Pseudo */\n.highlight .kr { color: #006699; --mono-font:fvs(wght=0.65); } /* Keyword.Reserved */\n.highlight .kt { color: #007788; --mono-font:fvs(wght=0.65); } /* Keyword.Type */\n.highlight .m { color: #FF6600 } /* Literal.Number */\n.highlight .s { color: #CC3300 } /* Literal.String */\n.highlight .na { color: #330099 } /* Name.Attribute */\n.highlight .nb { color: #336666 } /* Name.Builtin */\n.highlight .nc { color: #00AA88; --mono-font:fvs(wght=0.65); } /* Name.Class */\n.highlight .no { color: #336600 } /* Name.Constant */\n.highlight .nd { color: #9999FF } /* Name.Decorator */\n.highlight .ni { color: #999999; --mono-font:fvs(wght=0.65); } /* Name.Entity */\n.highlight .ne { color: #CC0000; --mono-font:fvs(wght=0.65); } /* Name.Exception */\n.highlight .nf { color: #CC00FF } /* Name.Function */\n.highlight .nl { color: #9999FF } /* Name.Label */\n.highlight .nn { color: #00CCFF; --mono-font:fvs(wght=0.65); } /* Name.Namespace */\n.highlight .nt { color: #330099; --mono-font:fvs(wght=0.65); } /* Name.Tag */\n.highlight .nv { color: #003333 } /* Name.Variable */\n.highlight .ow { color: #000000; --mono-font:fvs(wght=0.65); } /* Operator.Word */\n.highlight .w { color: #bbbbbb } /* Text.Whitespace */\n.highlight .mf { color: #FF6600 } /* Literal.Number.Float */\n.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */\n.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */\n.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */\n.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */\n.highlight .sc { color: #CC3300 } /* Literal.String.Char */\n.highlight .sd { color: #CC3300; --mono-font:fvs(ital=1, wght=0.65) } /* Literal.String.Doc */\n.highlight .s2 { color: #CC3300 } /* Literal.String.Double */\n.highlight .se { color: #CC3300; --mono-font:fvs(wght=0.65); } /* Literal.String.Escape */\n.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */\n.highlight .si { color: #AA0000 } /* Literal.String.Interpol */\n.highlight .sx { color: #CC3300 } /* Literal.String.Other */\n.highlight .sr { color: #33AAAA } /* Literal.String.Regex */\n.highlight .s1 { color: #CC3300 } /* Literal.String.Single */\n.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */\n.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */\n.highlight .vc { color: #003333 } /* Name.Variable.Class */\n.highlight .vg { color: #003333 } /* Name.Variable.Global */\n.highlight .vi { color: #003333 } /* Name.Variable.Instance */\n.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */\n\n.highlight .p { color: hsl(250, 60%, 60%); }"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/blog.coldtype.xyz.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\n\ndef public_posts(site):\n    return list(reversed(sorted([p for p in site.pages if p.template == \"_post\"], key=lambda p: p.date)))\n\ninfo = dict(\n    title=\"The Coldtype Blog\",\n    description=\"This is the Coldtype blog\",\n    navigation={\n        \"Home\": \"/\",\n        #\"About\": \"/about\"\n    })\n\n@site(ººsiblingºº(\".\")\n    , port=8008\n    , sources=dict(public_posts=public_posts)\n    , info=info\n    , fonts={\n        \"text-font\": dict(regular=\"MDSystem-VF\"),\n        \"mono-font\": dict(regular=\"MDIO-VF\")})\ndef website(_):\n    website.build()\n\ndef release(_):\n    website.upload(\"blog.coldtype.xyz\", \"us-west-1\", \"personal\")"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/pages/posts/a-blog.ipynb",
    "content": "{\"cells\":[{\"cell_type\":\"code\",\"execution_count\":2,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\"},\"executionInfo\":{\"elapsed\":193,\"status\":\"ok\",\"timestamp\":1706210528223,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"P8XWe6RmY7d2\",\"outputId\":\"97461174-01fa-43bc-d94b-d1d97ebec077\"},\"outputs\":[{\"data\":{\"text/plain\":[\"{'author': 'Rob Stenson',\\n\",\" 'location': 'Los Angeles, California',\\n\",\" 'slug': 'a-blog',\\n\",\" 'title': 'A Blog!',\\n\",\" 'date': '01/4/2021',\\n\",\" 'description': 'Introducing the Coldtype blog'}\"]},\"execution_count\":2,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"dict(\\n\",\"    author=\\\"Rob Stenson\\\",\\n\",\"    location=\\\"Los Angeles, California\\\",\\n\",\"    slug=\\\"a-blog\\\",\\n\",\"    title=\\\"A Blog!\\\",\\n\",\"    date=\\\"01/4/2021\\\",\\n\",\"    description=\\\"Introducing the Coldtype blog\\\"\\n\",\")\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"id\":\"RqIIr_Q4Y_L9\"},\"outputs\":[],\"source\":[\"#hide-blog\\n\",\"%pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\"%pip install -q noise\\n\",\"from coldtype.notebook import *\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"4U-rNEQwfARg\"},\"source\":[\"Welcome to the Coldtype blog.\\n\",\"\\n\",\"You may be wondering why an open-source typography/graphics library needs a blog, and the answer is… I thought it would be fun to write some un-structured stuff about this open-source typography/graphics library.\\n\",\"\\n\",\"At this moment in the library’s existence, though I know there are some people out there trying it out, I’m the only person that has used Coldtype extensively. Consequently, the library and its features are very closely related to my own interests. Well, that’s kind of obvious I guess — what I mean is, more generally, there are a ton of bizarre features in Coldtype (particularly related to animation) that come from my own experiences attempting to combine commercial animation software with Python code, or my own experiences trying to combine commercial type design software with Python code, or my experiences trying to design commercial audio plugins with Python code.\\n\",\"\\n\",\"So the plan for this blog is to shed some light on the motivation behind those bizarre features — and even if no one reads it, it’ll be a nice thing for me to read in the future and think, _oh, right, that’s why I did that_.\\n\",\"\\n\",\"_(Revised 11/14/2022)_\"]},{\"cell_type\":\"code\",\"execution_count\":5,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":121},\"executionInfo\":{\"elapsed\":232,\"status\":\"ok\",\"timestamp\":1668451881788,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"NpQirv6FZLCm\",\"outputId\":\"9aa27ad4-f367-4169-8ee9-0cf8da1d1a0c\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=300.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"from coldtype.notebook import *\\n\",\"from coldtype.warping import warp\\n\",\"from coldtype.fx.skia import phototype\\n\",\"\\n\",\"@renderable((600, 200))\\n\",\"def header(r):\\n\",\"    return (StSt(\\\"A BLOG\\\", Font.MutatorSans(), 150, wght=0.75, tu=-150, r=1)\\n\",\"        .f(1)\\n\",\"        .align(r, tx=1, ty=1)\\n\",\"        .understroke(sw=20)\\n\",\"        .mapv(warp())\\n\",\"        .ch(phototype(r, blur=3, cut=150, cutw=20\\n\",\"            , fill=hsl(0.6, 1, 0.55))))\"]}],\"metadata\":{\"colab\":{\"authorship_tag\":\"ABX9TyMTvc4wP2WgHf+GvY9sm5LY\",\"provenance\":[]},\"kernelspec\":{\"display_name\":\"Python 3\",\"name\":\"python3\"},\"language_info\":{\"codemirror_mode\":{\"name\":\"ipython\",\"version\":3},\"file_extension\":\".py\",\"mimetype\":\"text/x-python\",\"name\":\"python\",\"nbconvert_exporter\":\"python\",\"pygments_lexer\":\"ipython3\",\"version\":\"3.11.7\"}},\"nbformat\":4,\"nbformat_minor\":0}\n"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/pages/posts/transparent-unclickable.ipynb",
    "content": "{\"cells\":[{\"cell_type\":\"code\",\"execution_count\":2,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\"},\"executionInfo\":{\"elapsed\":262,\"status\":\"ok\",\"timestamp\":1706210596657,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"Hj35zB-CgNP6\",\"outputId\":\"5381b48f-9ee2-4592-ae30-57fc7d6c702f\"},\"outputs\":[{\"data\":{\"text/plain\":[\"{'author': 'Rob Stenson',\\n\",\" 'location': 'Los Angeles, California',\\n\",\" 'slug': 'transparent-unclickable',\\n\",\" 'title': 'A Transparent & Unclickable Window',\\n\",\" 'date': '05/21/2021',\\n\",\" 'description': 'Getting the settings right for special windowing in Coldtype'}\"]},\"execution_count\":2,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"dict(\\n\",\"    author=\\\"Rob Stenson\\\",\\n\",\"    location=\\\"Los Angeles, California\\\",\\n\",\"    slug=\\\"transparent-unclickable\\\",\\n\",\"    title=\\\"A Transparent & Unclickable Window\\\",\\n\",\"    date=\\\"05/21/2021\\\",\\n\",\"    description=\\\"Getting the settings right for special windowing in Coldtype\\\"\\n\",\")\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"RNXg-EmNgjSc\"},\"source\":[\"One thing that's very fun, particularly on smaller screens, is to run a Coldtype viewer window with a transparent background directly on top of some code that you’re working on. That’s exactly what’s happening in the video below — it’s not a composite of a video and some code, it’s just literally what appears on the screen as I program.\\n\",\"\\n\",\"<blockquote class=\\\"twitter-tweet\\\"><p lang=\\\"en\\\" dir=\\\"ltr\\\">a little bit of realtime python<br>&amp; a realtime animation<br><br>13 lines of coldtype + <a href=\\\"https://twitter.com/OHnoTypeCo?ref_src=twsrc%5Etfw\\\">@ohnotypeco</a>’s latest ttf <a href=\\\"https://t.co/2BRClOjore\\\">pic.twitter.com/2BRClOjore</a></p>&mdash; Rob Stenson (@robstenson) <a href=\\\"https://twitter.com/robstenson/status/1395538382919409664?ref_src=twsrc%5Etfw\\\">May 21, 2021</a></blockquote> <script async src=\\\"https://platform.twitter.com/widgets.js\\\" charset=\\\"utf-8\\\"></script>\\n\",\"\\n\",\"To get something like that to work, there are two steps, because there are actually two different things happening: (1) the window is transparent (this is easy), and (2) the window ignores all mouse interaction (not as easy).\\n\",\"\\n\",\"You can see the correct invocation for both at the beginning of that video, but here it is again:\\n\",\"\\n\",\"```bash\\n\",\"coldtype examples/animations/simplevarfont.py -wt 1 -wp NW -wpass 1 -wc 1\\n\",\"```\\n\",\"\\n\",\"- **-wt** stands for `--window-transparent` — this should work right out of the box\\n\",\"- **-wc** stands for `--window-chromeless` — this should also work straight away\\n\",\"- **-wp NW** means `--window-pin` is set to `NW`, meaning the window should initially appear at the top-left of the monitor (this can have any compass value (i.e. N, S, SW, SE, etc.) or C for Center).\\n\",\"- **-wpass** is the tricky one — it means `window-passthrough` and relies on a feature of the glfw library that hasn't made it to the stable release yet.\\n\",\"\\n\",\"\\n\",\"## The unclickable window\\n\",\"\\n\",\"We’re leaving the main road here and headed onto dirt. Unfortunately, I don't know how to do this on Windows, so these instructions are just for Mac OS.\\n\",\"\\n\",\"All you need to do (\\\"all you need to do\\\") is install the \\\"head\\\" of glfw, via [brew](https://brew.sh/).\\n\",\"\\n\",\"```bash\\n\",\"brew install glfw --HEAD\\n\",\"```\\n\",\"\\n\",\"Now the -wpass argument should work.\\n\",\"\\n\",\"## A semi-transparent window\\n\",\"\\n\",\"One other thing you can do is set the opacity of the window itself to something other than the usual fully-opaque. I probably should’ve done this in the video above, where I briefly made my own code invisible because of the blue text overlaying it. I could’ve avoided that by adding `-wo 0.5` to the command-line invocation, which would’ve cut the transparency of the whole window in half, meaning even a full-alpha color in the rendered viewer would've been transparent (and I could’ve seen all of the code).\"]}],\"metadata\":{\"colab\":{\"authorship_tag\":\"ABX9TyO6/e2bZXquocbzYquVM3dn\",\"provenance\":[]},\"kernelspec\":{\"display_name\":\"Python 3\",\"name\":\"python3\"},\"language_info\":{\"name\":\"python\"}},\"nbformat\":4,\"nbformat_minor\":0}\n"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/pages/posts/truchet-experiments.ipynb",
    "content": "{\"cells\":[{\"cell_type\":\"code\",\"execution_count\":1,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\"},\"executionInfo\":{\"elapsed\":6,\"status\":\"ok\",\"timestamp\":1706210575100,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"1muLkAwDv2lJ\",\"outputId\":\"d82df5a0-db7a-43cc-fdac-ec68120044b4\"},\"outputs\":[{\"data\":{\"text/plain\":[\"{'author': 'Rob Stenson',\\n\",\" 'location': 'Monrovia, California',\\n\",\" 'slug': 'truchet-experiments',\\n\",\" 'title': 'Truchet Experiments',\\n\",\" 'date': '11/12/2022',\\n\",\" 'description': 'Experimenting with programmatically generating and animating Truchet tiles'}\"]},\"execution_count\":1,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"dict(\\n\",\"    author=\\\"Rob Stenson\\\",\\n\",\"    location=\\\"Monrovia, California\\\",\\n\",\"    slug=\\\"truchet-experiments\\\",\\n\",\"    title=\\\"Truchet Experiments\\\",\\n\",\"    date=\\\"11/12/2022\\\",\\n\",\"    description=\\\"Experimenting with programmatically generating and animating Truchet tiles\\\"\\n\",\")\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"id\":\"_o3kYU9fDyL3\"},\"outputs\":[],\"source\":[\"#hide-blog\\n\",\"%pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\"from coldtype.notebook import *\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"JyaIFVzlLEov\"},\"source\":[\"### Prologue\\n\",\"\\n\",\"I’ve had an odd amount of time lately, both in that it’s odd I have time, and that the time I had have has been odd. I haven't been working much, because I've been waiting for my daughter to be born, except now I've been waiting for almost two weeks, which makes every day odder: everyday I wake up and realize my daughter is still rolling around in her mother's womb. The due date has come and gone, though \\\"due\\\" is a nebulous concept. Turns out many doctors — like many engineers — love to speak confidently about things they only vaguely understand. (Update: she’s been born!)\\n\",\"\\n\",\"Anyway, all that is to say, I don't know why I've started filling little voids in my day with [Truchet tile](https://en.wikipedia.org/wiki/Truchet_tiles) experiments.\\n\",\"\\n\",\"After putting together a [long talk about 3D](https://youtu.be/gV2laWd727U), I started craving flatness again, and then I found myself on Maurice Meilleur’s website, looking at his incredible [Truchet tile motion experiments](https://mauricemeilleur.net/truchet_tiles), trying to figure out how to recreate them in Coldtype.\\n\",\"\\n\",\"And then I started playing with those ideas, and then I started an interactive Google Colab notebook to show off some of the results, and then I rewrote the blog engine for this site to convert Google Colab notebooks into blog posts. So here we are. Odd time filled. Maybe these can fill an odd time in your life, too.\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"7VtSjGxOOfdj\"},\"source\":[\"## Truchet Tiles\\n\",\"\\n\",\"We begin with a square.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":89},\"executionInfo\":{\"elapsed\":14,\"status\":\"ok\",\"timestamp\":1669246105069,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"NeOly12OOhC1\",\"outputId\":\"5f0901ee-b872-4dd1-b5d1-64e832bc77fa\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAAAQBJREFUeJzt0UENACAQwLAD/57hjQL2aBUs2ZqZM2Ts3wG8DIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJMaQGENiDIkxJOYC3MsBx51iy+gAAAAASUVORK5CYII='/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:RecordingPen(5mvs)>\"]},\"execution_count\":3,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"rect = Rect(100, 100)\\n\",\"P().rect(rect).f(0)\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"jp_ZQV1aOsbt\"},\"source\":[\"And a circle.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":89},\"executionInfo\":{\"elapsed\":11,\"status\":\"ok\",\"timestamp\":1669246105069,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"GvJBhIFROunx\",\"outputId\":\"b0ff0acf-e19e-43dd-bb42-67f1df6dd71c\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAABTxJREFUeJztncFvVFUUh795XUBNG0ubTpSgJbTIREJC/AMMkY1K2JlIFF1ISFy7cY8siCs0koALNa7cumsIVRJhgxtRkrY4NbTaEEtbKpC0LNq6OHfo63SmnXnz3j33zZwv+eW1M9PpPefMfe++e8/cUyB8isAhp1fcsQj0Aj3u2O9euwg8Bp644xwwGdNd95jRBPuAD4DvgBlgPWXNAN8Cp4EX/JjUOAXtBiCf7uPAG+540PP/HweuAWPAL0gv60h6gI8QJ6TdC5JoDQnMe0B3hnYHxyDwGbCAfhDqaQE459ratowAV4Bl9B3eqJaBy67tbcMAcAlYRd/BSbUKfOVsyS0F4Cwwj75D09I8cIYwBkNN8RpwE30HZqWbwKupeStj3gIeoe+0rPXI2RosXcB5ZPio7SxfWkNGjF0p+C9V+oHr6DtIS9fZmL5RZxC4g75TtPU7MsemyjBQRt8ZoehPFO9ZDiMzp9pOCE3/Akda8GsiDgCzLTa8nTWLnD28sBeYytigdlDZ+SpTBrALeDP6A1lAy4Re4FYARuZNY8DuBP7ekYsBGJdXXUzg7205EYBRedfJpr1ehxKwFIBBeddDYKhJ39fkWgDGtIuuNun7LZwKwIh206mmIhCjl2zScDpd02wzFN5u2vgc8PY2zxvJeB6IkEvBFuotRZaA34BdGTWq03mKZGHOVD8R1fmDj7FgZMku4JNaT9TqIS8ic1UdlSymwDIyAXk//mCtHvIpFgwfdCO+3kR1D7He4ZctvaS6h7yLBcMn3YjPn1EdkMQ3LUZiNvk8fso6gCyq5C4rL+esI0PgMmzuIR9iwdCgALwT/6XCBPJ1McM/t4GjsBGQPuSbQ9ZDdFhD8tsWK6esY1gwNImA1ys/ALyp1xbDcQw2esU9UlrNMhIzCZQKyPXjoXJjDGFPhEy1G2FQsoCEhQUkMPZbQMKiFBHgfh8dzP4IGWUZYbA7IqNEYCMRFpDA6CsAK1iGSSg8rZcGZCgRIZntRhgsRcgpywgDC0hgrNgpKyxWImQtxAiDexGS3GCEwYT1kLCwHhIYE7aEGxZ7KqOsae2WGEzj7kNAdkQzdBmFjbysUcWGGMIobORl9QMPqP+dQyNb1pEYPDtlLSJ7Bho63MbNmMR7xI86bTGI+T6eYD2CVKCxpGu/rCO+/ws295AyskGZ4ZdbuGDA1ov4D37bYlDl8+rT0yCy3YMlPvhhBXgZGeECW3vIA6ToiuGHK8SCAba1hiYNb61xH/jeR4s6nK+pCgbUH+IOI/vz2rUkG2r2Dqg/VTIFfJFlizqcL6kRjJ3oRaaEtbfEazfN0MJu17YJZvpqeT+ZqwEY0S6quc9iswwhS7zaxuRdS8hNYCqcDMCgvOtE017fAduMP7kuJPB3Q/wUgHF508+JPN0gA0iREm0j86I7eKifuxerzNaIpvBQ8qjCMO1VdDhtzSJbJnrlKFIiTtv40DSHQtm8CiNIMUVtJ4SiMh7L5dWjiKQQaTtDW78iK65B0EdnV+IZA55r2Ysp04WUsu608t3nCbB8d5xOKXC/QOAF7uMcBG6g77SsdIMUJwp9UQDO0F73K/PAWXKe3TkAfEO+ry2rwCU8TIP4ZAS4jCzwazu4US0juVNqRet9MAh8DvyHvsPraQEZMQZzX+GDbuB95P4lhNPZGnI/cRpLEmQI+USO4z8Q4+5/D2VuZQOEOFrYh+yDftzppZTf/29koW0MWTz6J+X3b4kQA1JNEalAcyimIpLb1OOO/e61i8Bj4Ik7ziF7qt91x0n3WLD8DyKJDjBgfPzjAAAAAElFTkSuQmCC'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:RecordingPen(6mvs)>\"]},\"execution_count\":4,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"P().oval(rect).f(0)\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"WmmoKaiuottZ\"},\"source\":[\"Here they are as a single path, outlined:\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":91},\"executionInfo\":{\"elapsed\":10,\"status\":\"ok\",\"timestamp\":1669246105069,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"-DRVCdQRoDhZ\",\"outputId\":\"c521e066-5be8-497e-ab28-c6b8a600e9bb\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=52.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:RecordingPen(34mvs)>\"]},\"execution_count\":5,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().rect(rect)\\n\",\"    .oval(rect)\\n\",\"    .outline(2)\\n\",\"    .f(0))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"4fW9FmxJo5XW\"},\"source\":[\"Here's the square with two of the circles, but here the circles have been offset by half the width and height of the square, in opposite directions.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":141},\"executionInfo\":{\"elapsed\":6,\"status\":\"ok\",\"timestamp\":1668709372546,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"2SYODfHToh_a\",\"outputId\":\"0661a8ce-72d4-4712-dad3-d8304a5c0408\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=102.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/3...>\"]},\"execution_count\":6,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().rect(rect)\\n\",\"    .ups()\\n\",\"    .append(P().oval(rect).t(rect.w/2))\\n\",\"    .append(P().oval(rect).t(-rect.w/2))\\n\",\"    .outline(2)\\n\",\"    .f(0))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"6Qt2jLuRIwT3\"},\"source\":[\"And here’re those three shapes again, except this time the circles have been cut away from the square, rather than added to it (the `append` has become a `difference`).\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":145},\"executionInfo\":{\"elapsed\":244,\"status\":\"ok\",\"timestamp\":1668709372784,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"nXjMlE-Ogr7S\",\"outputId\":\"2da1809a-89ac-42b9-d115-289bc28e588d\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAABCtJREFUeJzt3c2PX1Mcx/HXKGnRCoa0qGo81UNV0oWQRiQlsbGSEMSGhVgQ/4G9pZ2dWGCBtUhKYkGCCBFPbcRDS6poqtUg9VCL85sak9H+5j78vuece9/JJzOL38x8zvnc77n3nnvOnTkcVwercSzaRFtOizbQIeuiDXRBTYGsjTbQBTUFMlZIZoyBZMbF0Qa6oKZAro420AVjIJlRUyBbog10QU2BjBWSGfPYHG2iLTUFAjujDbRlDCQz5tQzuQjf46JoE22orUI2KPzkXlsgcE+0gTbUNmTBF7gq2kRTaqyQK3FjtImm1BgIPBBtoCk1DlnwHTZGm2hCrRVyCR6ONtGEWisEvsHl+DvayEqotULgMjwYbWKl1FwhsEdh0/I1Vwjprv2xaBMrofYKgV+k4etQtJFpqL1CSKtRnoo2MS1DqBBSG7fjw2gjp2IIFUI68F7AWdFGTsVQAoFr8Vy0iWk4PjA90k239cNQziFL2Y4Pok0sx5CGrMW8iiuiTSzHUCsE9uImHIg2spihVghswi6cG21kMUMOBLbiNZmFEn3Vk4M+k8nyoaFXyALX4B3peXwoYyD/cqkUyi3RRqKHi9x0DI+36tGWRHdArnoJZ7bo18ZENzxnfYRtzbu2GdGNzl1/4mkz3Acf3eBStB/3N+zjFRHd0NL0Pu7DqiadPQ3RDSxVX0lXY52f+KMbVrp+xjPSRGVrhjzb2wef4lm8jK+b/IIxkP74Eq9PtAsHp/mhMZDZsR+fS6spd0++PyStGzs60cG5yYfnpfVLaydf53G9tPJvy0QXzND8YJk79UdOsBG3L1IVb9/JjZUEspStuBcPKXRzTK3MSRXzPH4TfxlaujrlPDyJHzJoWKnqhdV4VNqiHN3A0tQrq/AEDmfQ0FI0EzbgxRk1qHTNlJ3SC2KiG52zZs6FeKuh2erV25z+SfhV2hawBjsC/v7ISbhbBkdlZgpnB46I74hclAU3SKvQozsjB2XDZumxaHSHhKrN5GIfbMK7WB9tJIrc1vbuxR3Sc+pBklsg8DHuxO/RRkb+y10yGNNnrYgbw2nZg7ONN49ZcTrelsGROyvldpW1HOvxibTwonpyPKkv5YD0sGskM96UwZDSt0oYsha4TtpAk/OFSGtKatyPOB83Rxvpk5IqhLTB/1vpcrhKSqoQ0t37GtwWbaQvSqsQUpXsU8n/vl1KaRVCqpJ1uDXaSB+UWCGkm8Sfok30QYkVQlpDvE16j2JVlBoI/CWtvq+KUocsOEPaJlbFv+1eoIS5rP/jD7wSbaJrSg6E9IKYqih5yCLdixxW/oF1gtIbchTvRZvoktIDgTeiDXTJGEhmlH4OgXOk80gV1FAhR6RnJVVQQyCkJUNVUEsgu6MNdEUtgYwVkhn7og10RS2BVPNsZAwkM8ZAMmMMJDP+AZlr/74mUzbuAAAAAElFTkSuQmCC'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=52.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABoCAYAAAAdHLWhAAAABHNCSVQICAgIfAhkiAAABENJREFUeJztneFR2zAUgD86QTZAI2SDeoNmg3qDdoOyQdkAOgF0gtAJoBMknQA2SH8It4kkhzhIftKTvrvcYSDO030n6enZkS+AHTq5kA4gBh+kA2gcpwnKnCaoAHbOq1S2HLbDSAYTC009aOscG4EYoqNJkEo0C1pIBxADTYIenOOlRBCx0SToxTk2EkHERpOgJ+fYSASRAi1p9gI9bTlAU6NeOGxL8fOQpiEO/EShE4ghKk1QAWga4pYctuVZNpw4aBIEyuYhbUMcwL1z/FUkioho60ErlA1z2gSBf+mhlwzmPWgc4sAf5lYiUURCYw9ys7miL+BpFAR2TbTfrlvJYN6DVkFuslBsL9IqCPxk4VYymHPRLKjHb19xC1fNgsDvRWvRaM5Au6AOv429YDyT0S4I7LrIrS4Uc1NJDYIMfhH1TjKgKdQgCOAKv61FFFJrEQT2xpLisrqaBBn8oW5D5vNRTYIgXGF4JGNJtQkCuMZvd7broxoFgV9M3QE3kgGNUaugBeGkITtJtQqCcUlrMpqTahYE4cwuq8ShdkFgJYV60oYM1klNkGVsuNsBXwTjaoL2WBDO7obanciQ1wT5hNZJQxX889zBNEFhVoSThyHLm21uaoLGMYzPS8OayaQOogl6myvGe1NyUU3QaRj8K7OhRCL6HNUETaPDvxEllEzcEOkLZE3QefS8LWqQdYddS01OLC7wpajYCG9GVthL5x8nvOcBO6c9vb6GPR7+4Ow5FBK0df5p/2S/8TeMaFiW2F61Ai5jnvitLhq1y1bCCnub8bHM79TXu08wTIifEja4ZJbYIfCeM4SFhrj3sH0N5Af+1iwNywIrbfn6c7f3N4MzPIYSAsP/RddwsuF3UyfCa+DnhPc0InSYqV12g0CBsWCiL3s6TpsQNyjZ+SMxSdelPaeVQ0zsD1bELIUDg+1VxzK/b6k+vHBmrewYjot6pPUml1kFDSwZv5T8TOH7GERGRNBAz3gy8X3uYDJFVBDYtdVYIrEmk3vRBBEXNPA1EMwwL9UsKRtBYOemLS152CcrQTB+w+AzdUrKThCM3zBY43CXpaCBW5qkrAVBWNJaMqCZyV4QhIe7a8mAZqQIQWOJQw0VhyIEgZW0pb7MrhhBEN7a8lE0ovQUJQjCFYcryYASU5wgCO9WZSQDSkiRghYUvFvVRIoUBOHtLTvBeFJRrCDw10cb0WjSULSgUFbXSwaUgKIFgV8K0taLihdk0D0XFS8I/F6kqZiqQpDBb4iWr8KoEAT+4lVLtVuNoB6dyYIaQeBXFzRcjjgQVPoTuFQ9aUsjHX4RtXRUDXGg7LmpKBviQOnjoQeaoEZytD2/W90cBH6jSr7RUd0cBPDLOS49UfiHFkHu/kFNUGa4u5qUPMQdoFVQJxFECrQIUrtFmhZBatEiaOscX0oEkQJN21+qWdTto6UHqaUJypwmKHP+AqC4DAX4hycDAAAAAElFTkSuQmCC'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:RecordingPen(29mvs) {frame=Rect(0.00,0.00,100.00,100.00)}>\"]},\"execution_count\":7,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"tile = (P().rect(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2))\\n\",\"    .f(0)\\n\",\"    .data(frame=rect)\\n\",\"    .nshow())\\n\",\"\\n\",\"# Maybe clearer what the shape is if it's outlined\\n\",\"\\n\",\"tile.copy().outline(2)\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"BQv0YIYiJ5jl\"},\"source\":[\"If you repeat that tile in the x and y dimensions, you start to see the appeal of the tiles when patterned.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":421},\"executionInfo\":{\"elapsed\":4,\"status\":\"ok\",\"timestamp\":1668709372785,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"2T7BvxvPpA8i\",\"outputId\":\"ea021278-3b0c-4631-95fc-4a9731d06200\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=400.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"n = 8\\n\",\"\\n\",\"truchet0 = (tile.copy()\\n\",\"    .layer(n)\\n\",\"    .spread()\\n\",\"    .layer(n)\\n\",\"    .stack()\\n\",\"    .nshow())\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"IZzCouIYKCLT\"},\"source\":[\"That can be shorter though.\\n\",\"\\n\",\"`.layer(n)​.spread()​.layer(n)​.stack()` means copy the original path `n` times (via `layer`) and then `spread` them out horizontally. And then copy that one spread-out row `n` more times (again with `layer`), and then `stack` those new copies vertically. (Stack is the vertical version of spread).\\n\",\"\\n\",\"I started doing this pattern a lot, so I added a function that encapsulates that idiom: `.gridlayer` — a method that does those four operations as a single operation, like this:\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":421},\"executionInfo\":{\"elapsed\":3,\"status\":\"ok\",\"timestamp\":1668709372785,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"wk5RMJkKKBMn\",\"outputId\":\"08a87001-8136-4654-a342-96d71305a5ca\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=400.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"truchet1 = (tile.copy()\\n\",\"    .gridlayer(n)\\n\",\"    .nshow())\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"9jvl9YpJKBiT\"},\"source\":[\"Because these are Truchet tiles, we can rotate them to create interesting patterns. In this first rotation, we'll rotate every other one (i.e. rotate \\\"by column\\\") to get a kind of sine wave look.\\n\",\"\\n\",\"This is where the `.mapvrc` function becomes very useful: we can **map** by **r**ow and **c**olumn. Which is why the `lambda` here gets three arguments: r, c, p — row, column, path.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":239},\"executionInfo\":{\"elapsed\":175,\"status\":\"ok\",\"timestamp\":1668709372957,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"tgSfysButCay\",\"outputId\":\"78c0050b-0392-406f-9225-188fadef7c7c\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=200.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":10,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(truchet1\\n\",\"    .copy()\\n\",\"    .scale(0.5)\\n\",\"    .mapvrc(lambda r, c, p: p.rotate(90 if c%2 else 0)))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"8AsTQAPSKjbs\"},\"source\":[\"A special case of mapping by row & column is `mapvch` — shorthand for **m**ap-**ch**ecker. You get two args here in your callback: the first is a boolean that indicates whether or not you’re in a \\\"black\\\" square on a checkerboard.\\n\",\"\\n\",\"Here we rotate 90° if `b` is `True`, which gets us this nice offset circles pattern.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":239},\"executionInfo\":{\"elapsed\":3,\"status\":\"ok\",\"timestamp\":1668709372957,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"C_7Glns2tMoQ\",\"outputId\":\"77f52d83-67fb-42ae-8316-5f733c1fcdbf\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=200.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":11,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(truchet1\\n\",\"    .copy()\\n\",\"    .scale(0.5)\\n\",\"    .mapvch(lambda b, p: p.rotate(90 if b else 0)))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"44pt8PggJnQk\"},\"source\":[\"Maybe a little easier to understand if we add a little color. Here the green tiles have been rotated 90 degrees; the blue tiles have not been rotated at all.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":239},\"executionInfo\":{\"elapsed\":212,\"status\":\"ok\",\"timestamp\":1668709373167,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"9IzDb7LGJPto\",\"outputId\":\"bbe91811-3349-4115-de76-1c26781cd7bf\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=200.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":12,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(truchet1\\n\",\"    .copy()\\n\",\"    .scale(0.5)\\n\",\"    .mapvch(lambda b, p: p\\n\",\"        .rotate(90 if b else 0)\\n\",\"        .f(hsl(0.6) if b else hsl(0.3))))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"y5_Oa91aK_zT\"},\"source\":[\"Of course, it’s just as much fun to rotate things randomly. Here we accomplish that with a `random_series` (which lets us get repeatable randomization), and the ever-useful `mapv` function, which optionally gives us two args in our lambda. (If we ask for two args, the first is an index, the second is the path.)\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":239},\"executionInfo\":{\"elapsed\":5,\"status\":\"ok\",\"timestamp\":1668709373168,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"LNoYZ6AvqXmv\",\"outputId\":\"6dcacb48-f11b-466c-e4ae-b596322f523a\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=200.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":13,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"rs = random_series(-2, 2, seed=2)\\n\",\"\\n\",\"(truchet1\\n\",\"    .copy()\\n\",\"    .scale(0.5)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs[i]))))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"yTmhTVaTxIjp\"},\"source\":[\"# Variations\\n\",\"\\n\",\"And now I'd like to freestyle some patterns based on the above.\\n\",\"\\n\",\"One key difference from the above: in these patterns, we’re creating the \\\"tile\\\" on the fly and layering it into a pattern — all in a single expression.\\n\",\"\\n\",\"(The `nshow` call lets us view an _intermediate_ result, which means we can see how the tile looks before the rest of the patterning code.)\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":501},\"executionInfo\":{\"elapsed\":477,\"status\":\"ok\",\"timestamp\":1668709373641,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"2EO14TTlvXQO\",\"outputId\":\"4a132576-31a0-498a-921e-cc4a22f3c4a0\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAABCtJREFUeJzt3c2PX1Mcx/HXKGnRCoa0qGo81UNV0oWQRiQlsbGSEMSGhVgQ/4G9pZ2dWGCBtUhKYkGCCBFPbcRDS6poqtUg9VCL85sak9H+5j78vuece9/JJzOL38x8zvnc77n3nnvOnTkcVwercSzaRFtOizbQIeuiDXRBTYGsjTbQBTUFMlZIZoyBZMbF0Qa6oKZAro420AVjIJlRUyBbog10QU2BjBWSGfPYHG2iLTUFAjujDbRlDCQz5tQzuQjf46JoE22orUI2KPzkXlsgcE+0gTbUNmTBF7gq2kRTaqyQK3FjtImm1BgIPBBtoCk1DlnwHTZGm2hCrRVyCR6ONtGEWisEvsHl+DvayEqotULgMjwYbWKl1FwhsEdh0/I1Vwjprv2xaBMrofYKgV+k4etQtJFpqL1CSKtRnoo2MS1DqBBSG7fjw2gjp2IIFUI68F7AWdFGTsVQAoFr8Vy0iWk4PjA90k239cNQziFL2Y4Pok0sx5CGrMW8iiuiTSzHUCsE9uImHIg2spihVghswi6cG21kMUMOBLbiNZmFEn3Vk4M+k8nyoaFXyALX4B3peXwoYyD/cqkUyi3RRqKHi9x0DI+36tGWRHdArnoJZ7bo18ZENzxnfYRtzbu2GdGNzl1/4mkz3Acf3eBStB/3N+zjFRHd0NL0Pu7DqiadPQ3RDSxVX0lXY52f+KMbVrp+xjPSRGVrhjzb2wef4lm8jK+b/IIxkP74Eq9PtAsHp/mhMZDZsR+fS6spd0++PyStGzs60cG5yYfnpfVLaydf53G9tPJvy0QXzND8YJk79UdOsBG3L1IVb9/JjZUEspStuBcPKXRzTK3MSRXzPH4TfxlaujrlPDyJHzJoWKnqhdV4VNqiHN3A0tQrq/AEDmfQ0FI0EzbgxRk1qHTNlJ3SC2KiG52zZs6FeKuh2erV25z+SfhV2hawBjsC/v7ISbhbBkdlZgpnB46I74hclAU3SKvQozsjB2XDZumxaHSHhKrN5GIfbMK7WB9tJIrc1vbuxR3Sc+pBklsg8DHuxO/RRkb+y10yGNNnrYgbw2nZg7ONN49ZcTrelsGROyvldpW1HOvxibTwonpyPKkv5YD0sGskM96UwZDSt0oYsha4TtpAk/OFSGtKatyPOB83Rxvpk5IqhLTB/1vpcrhKSqoQ0t37GtwWbaQvSqsQUpXsU8n/vl1KaRVCqpJ1uDXaSB+UWCGkm8Sfok30QYkVQlpDvE16j2JVlBoI/CWtvq+KUocsOEPaJlbFv+1eoIS5rP/jD7wSbaJrSg6E9IKYqih5yCLdixxW/oF1gtIbchTvRZvoktIDgTeiDXTJGEhmlH4OgXOk80gV1FAhR6RnJVVQQyCkJUNVUEsgu6MNdEUtgYwVkhn7og10RS2BVPNsZAwkM8ZAMmMMJDP+AZlr/74mUzbuAAAAAElFTkSuQmCC'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=408.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/64...>\"]},\"execution_count\":14,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"# Outlining the tiles\\n\",\"\\n\",\"rs2 = random_series(-2, 2, seed=1)\\n\",\"\\n\",\"(P().rect(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2))\\n\",\"    .f(0)\\n\",\"    .data(frame=rect)\\n\",\"    .nshow()\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i])))\\n\",\"    .collapse()\\n\",\"    .mapv(lambda p: p.outline(8)))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"GX6DEILnMDmc\"},\"source\":[\"(If you were to uncomment the xor in this one, you'd get an inverse pattern.)\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":493},\"executionInfo\":{\"elapsed\":210,\"status\":\"ok\",\"timestamp\":1668709374041,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"Iz1Smzunvv2E\",\"outputId\":\"32851169-0179-42d2-b03c-91bf7c1d5737\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=400.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":15,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().rect(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2).outline(4))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2).outline(4))\\n\",\"    #.xor(P(rect))\\n\",\"    .f(0)\\n\",\"    .nshow()\\n\",\"    .data(frame=rect)\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i]))))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"ZmAVEEy9MI6K\"},\"source\":[\"This one kind of looks like tennis balls?\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":492},\"executionInfo\":{\"elapsed\":348,\"status\":\"ok\",\"timestamp\":1668709374387,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"4NQsDs9lwiNz\",\"outputId\":\"94ead3b6-8fbe-4d32-f1ff-2d8ccad43a78\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=49.643830969929695 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABjCAYAAACPO76VAAAABHNCSVQICAgIfAhkiAAACAVJREFUeJzlnXuwVVMcxz+3wu1xezAMhRqKRBnK9CCR92MiybvI5DmqIVPMGCND8hzllVdhJnmEMB7DMEOKCiFF9JhQSFy3ujcU1x+/czj3dM4++7f2euxz+858Z7rTvXt9fr99zn6s9VtrQTrVBxgNPA4sAOozfl55nDNy/nYpMBMYBxxtjbQRqhlwAjAV+In/E5jvt5XHPSbiWL8B04GTgR0SR9AI1Bm4G1hP8aTleqHy+L1iHrcamIZ8IJomCagcdRbwPvESletvlO3sa9BGNXAbsLNpcOWiEcBy9AnK+mdle+0StLUJmEgjPClnAisxT0yutfo1YXubgElAG4O2U6XuwBzsnISs91QyvGep3d+Aa5Vtp0KVwBTsnoSsj1eyTLXc/iLgACVDMPVEbrQuTkQ9cLWSZ7QjjjFKDu+6CXcnIevHlEyHOGSZBbRQ8jhXS+BN3J+IeuBDA75qhzyLgfYGTE7UEViCnxNRD9Qh9ySNZjhmWodcnoOqB8kfHU08UMk5zAPTJvQPF9bUE6gpAejKE5WsrYC/PHBtBc5XsiVWP2BjQvAknm/A/IxHvssN+Ix0ELDBQ0BR/hv5tGt0ike+f4BzlXxqdQB+9BhUlM824P/ZM+PpBoyx1BoZoAl9ErJ+xSCG8Z4Z64ADDTgjVQG87jmQUt6K9Mpq1Aq37xyFvBrLnYwTPAcQ11cYxHJjAM63DDgLyueNT+sPDOJpi/TA+mYdbcC6DXjUmHQa3MUgrosDcG4G9jFg/U8PBYDWerphbHMDsM4xZKUn8rwcOtmlvAXpH9Nqf/y8led7mAErHwcANfWjJgEC1wdg/U4LeXYAyCQ2/XY0QbrkffOqhm9XBABM6ic0AeZoL/x37/wKVMWBu9IzmE0fHifAAsotA/XlcaWgmgDfBwCz5a8xL9X0MeaR63XAjlFAp3kGcuHrogIsoas8s14WBfO2ZxgX3ozZzTyrsR5ZlxSD2N8jhGt/FJ3vkhrukbVvIYBbPAL48J0lUx6tY5FvmWvO6YUat1ULmyafXDLl0ToUeUlzyVhHXu1V74AJc+lq9LW5+WoDvOyY8ySQR1mAwQmB06q2wGvox8tzVYM8ZY61QlRYx+X+sJDwn2KXnkOJZ/qY6oKb7pP/nqqqUpAsH56lyXoJXYL9mrE9IN0jebatLZqOUhvgBuRN2gbbOZDe8W1Xfkib9Ri6jGTT4+qB+8F9UXAa/TqwkzrlpXUEMnfdpNryC4B5AZKRBn+Au3l6LZCKwmeA3+MyVSBVdrs5gkq7lgKnAqsct3MMMACZCr13jhuoIvOLrZFn8ZYZtwK6AgdTRvPXDFUDXIi82PlWa+Tb2TrjWOqJzOGeAnxO+EuMC98eNxlpUxWytMOthCl5ceW5pGhKmKk6A3fgv8rbhTcC19BI1hAZgtSWhk5qUn+J+Zh66tQNeJLwSU3qaci8lEahPYHJQC3hE2vqP5GHl0bzCrA78DThE5vEtciiLm0t5yaYjkRKakInNonrgGeRaWIuulW8axzhk2rDG5F744l20+Nf3WlcY++1wKtIVWZHbTIqtH/gQFVIhcSQ0CAO9DXSG/st0v+1Aulq/6HQL1cALyDzMGqQAuBfMgf5MnMQXxqFPLFsL9qEfJNqM//eAA3Xjc335sz/3wsMBXZxDDgQP7VKaTVPKf9gKfJ419kg2XHUm/ArMAQ7Gdcl+ON5wEiguTrl0eqOvbHlcvF8sFOQUA3cDOyqzXqE9kNudKGT5Mv3gwxu2DzoZPQrFxRTVxTDlmXui7JB2y5iWw9coEh6lPoGTJBPd80GfLujBt4BOsXPe1ENSkGyXLrBDNhjHTa0EZkzl1SXBkiSLzeo5WqK+7UG7yN5veu0gAlz6UH5gT7sodEFJOt+bo70DIROnm1vszZu1MYfNr2EZIM0nSnvgap8P1Es0LWeAJaRrArjHE+cPty/WJA+19JYSbIT8pxHVpcfyqJqh4xi+YL5CvPOx/aEXc7VhkeVCvIBz0CfEXMdjQIa45nVptcS4+myUwCwJGv4fRKA14ZLfiuyejAAnOmuLeU4U3eNJsDd8T/IswXpOjdRuS2zMUIb4B0BIJdhNjYyMACrqbV7DQIyX2B1ANhJJrCUz/Tp3obx0T8QsMnlKsQCXlo/bhBXA90VANpkSwZI93J+q5BZYYn1aQD44QacIVbjjGvjy1O+OuF/+NOkZquDZ8a4nmAQS6SOx/+iwyZDt2l7zH2P/xfMsSrfK+xHdqQV0XmeGaO8Gscb9T7iOSDtDl+VSLlk6BNRhywe5lRNkBVqfAU1w4DxDY98hfwHcJQBt7F8TqLU9ur6XIGzkI9W8iZWJf5OiLYv52BPXPmuxfM3IleVSG2U6yBNlpLwvbNmNbKpb1BVArNxG2iNAddMx0y5XoNMtU6NXM/RO0zJk6S6XuO5JF8h1IkG4O7yMF7JMtgRR9ZbkGXxnLzQ2dJuwIvYD1573+jqgCHrZUAvJU9QDcXuhBdtX1VTZGNFmydhKzLoZmNZVu/aBbtlo1rZnPy/mDL7NhTTfsBLJE+Idp9UG2/iS4Gz1BGXgfqhn9CZa+0uwknWKlmEnakMqVdbpG5Iu4vySGU7JiVH75K3Nvn2pD7IfSVOqWbJTaPyNDHGMeuRmUP34KGXtVzUHLkM3YNcIgolbaLymFEvovOQDVy0L5PO1Cw0QI42I90qszM/VyH3mB5ItUg3CkwqKaFqpKZ1JTLQsxx5Y56LjDekSv8CEfEO8NGCAzYAAAAASUVORK5CYII='/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=399.6438309699297 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":16,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().oval(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2).outline(6))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2).outline(6))\\n\",\"    .f(0)\\n\",\"    .nshow()\\n\",\"    .data(frame=rect)\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i]))))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"RG7liKp5MOAg\"},\"source\":[\"I'd love to see a wall that looked this:\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":481},\"executionInfo\":{\"elapsed\":4,\"status\":\"ok\",\"timestamp\":1668709374387,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"E-brZ6FLwyqr\",\"outputId\":\"72519a51-2aea-44cb-db9d-c4500cda6873\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=44.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABYCAYAAABxlTA0AAAABHNCSVQICAgIfAhkiAAABOJJREFUeJztnVuIVWUYhp+xMhuosBAiyHQ6E0FKmlYmRtEJopCKyuxI2eEmgsiLQCMoIhlEKgovoqITRHRRXlhGNWRDpqUyQiZFQmURCUOWZK4u/r1tz3Zy9vf9h+9buh94L2T+xXr3M2v/s9da/9oCVE5zNzKWOui8X8YJX0RJzhCO/zpLi0g8Cz5dOL4rWIj0CN4GDOcoEsPBJBhgTfIWkXgWDDBTOL4rWMgc4fgPsrSIwLvgi4Tjh4DtOYpo8S5YegQDvJK8RQTeBR8PnC3c5vUcRbR4FwwwXzh+cyMuqIPgBYpt+pO3iMD8fL2DSKeJI4GfHfR2fS2ileuF43cDK3IUkdJDMO2dH4ApyLr2At8DkzL06Zi6HMGTgauF2+wCHs3QRYz5PNVh3lO+vvXGvc3FdZq9hCNZyjRgj1XvukwREP5ePKzYbgPGH9usj0xpTla8xqOAb436mguT5g2FYIBzgL+6gjvLdJ1jbu4K7ixrlYIBni7c1VyWNvcqBQO8WLCnuShthoETlIJ7KCfZXFRM3lYKhnKSzSXFRnq9uJ0VmfuZC4rNMNCntdvg8Yz9zAWlyFfABK3dBvOAHzN0M5eTKi+o1f7HROCdxL3MxaTMg2q1I7mVMPV0BY+S+/ReR3Ai4VNKV/AouVPvdT/mEub4ruC2xJzpjcYthJVDXcEt0Vw/HosrgI8EHcwl5M6SGJsH4CTgMWDrGPs3F1Aiue9onEJYWrAc+Kx133W5bZ+CD4GbgF8L7W86MOswwrMNQ4SzmL+BY4DxhUqUpA9YSLjL/F2B/f0EfPF/PzyNsCasHxjE/i2eOk8qhGWlF7gDGMBeTqp8A8xKKSkVZwLPAL9gLylFVhKmRXccAdxAePDEWlJsdgD3A4cnNZSQPuBZ7EXFZhvhk4ZbphKW8FuLis06wrvTLdOAj7EXFZutwF2J3STlduB37EXFZgewDJid1E4iJgFvYS8pVbYTzg/m0sFtqh6RqjiuBV4Gji64zxJ82cggYe7e2PrDkoIBziIspJ5aeL8l+ZNwiryexhKve4BzCxaYCKzG/q1eKiP+MUA4S7uR8NBJTkquD3MjuD1bCA+SaNeAjUW/AwGmglvzPnBplM7RWexAggvBzWwifj1YOw84EOFGcDPrgPMjpLazxIEMV4KbeZV0T1OudCDEneAK+A24Ru91H+OAdx1IcSe4mZeAY5Vym0wgfN+DtRiXgivCg9uxt2JOBf5wIMel4GYe0dptMN+BHNeCK+Aprd0GuZf3115wBTyH/qLSeOwega2N4Ap4XikYYAbwjwNRrgVXxE0XTzgQ5V5wRdwfPs3aXA8purO96C8YXedAlnvBFbAT3TeXQNxS/kNGcEW4naLhMgfCaiG4Qj8ff+JAWi0E70Z3W+oqB9JqIbgCVikEQ7iVZS2uFoIr4GKF4EUOetdG8KBCcC/hGrR19zHj4XvTZgJXCrfZBbyWoUsWzH/L6P73gDkOencS8wLNSFcX9RCe5LHufcB4mCKaPCQcXwFv5iiSGvPfckuk9/PcTxOejmCQL9tfS/hmVbd4E3ybcPwewrPBbvEm+ELgOOE2AzmKpMKbYIDLheM/zdIiER4FXyIc/3mWFok4GATvJHxTgEs8Cu5D/nFtS44iKfAoGOAC4fihLC0S4FXwecLxbgX/C5FlnvR8kivGAAAAAElFTkSuQmCC'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=394.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":17,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().rect(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2).outline(6))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2).outline(6))\\n\",\"    .intersection(P(rect.inset(6)))\\n\",\"    .f(0)\\n\",\"    .nshow()\\n\",\"    .data(frame=rect)\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i]))))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"eYfBED8PMVx2\"},\"source\":[\"Here the initial pattern changes — cutting circles out of a circle, rather than circles from a square.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":493},\"executionInfo\":{\"elapsed\":291,\"status\":\"ok\",\"timestamp\":1668709374675,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"ucKpbklbxCaX\",\"outputId\":\"ee1b31a4-137b-4387-e665-4845a9365720\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAABXdJREFUeJztnV1oHFUUx3+brVYlaupGqyHWUkuj+WitSMGPIlQR9KGgbcUPUBQFBRWflIL0QURQRKm++KIpYlEw+OiL9ataUYOSB0lTY22NwdiSVNsGE2vM+nB2yFqT7M7MvffcO7M/+JOnTc75n5nZmTvnnhTwn+VAR0WrgS6gFTgXaK78XAYUtALMOm3A/cBbwChQrlMljWCzyirgOWCI+gtwulY4jzpjNAMPAHtJXoRqdbsNPzu0AS8CxzFTiEjXukwiC3QCu4BTmC1EpC3OMgmcEtALzGKnEJG2u0ooVArAo8Ax7BYiUq+btMLkSqAfN4WItM9JZgGyGZjEbTHKwLiL5EKiCLyC+0JUa6XtJEPhAuBzdItRBh60nWgItAM/ol+MMvC25Vy9pwMYQ78Qkcbspus31+DuljaO1thM2jbFhJ/rAj5Flr194wjyfZYbViFJa58JC2nYXur+cREwgr7ptbTOlgG2iXvJ2kcY1+gTwB7tIGyzC/0jv16N2rHAHx5C3+S4yuxDYg8wjb7BcXUYaDJvhy5FYD/65ibVfeYt0eUJ9E1NowPmLdGjFblb0TY1rR4zbYwWb6JvpgmdwM8VhVisRd9Ik3rdrD3ueR99E01qFrjKqEMO6cR+h4iGBoFzDPrkjD70zbOl9wz65IQO9E2zrYeNueWA59E3zIXWmzLMNr+gb5YL/QZcbsgza9yAvlEu9TOyGcgrqhff7lWLQocVyDuTFu1AFmIc/aNWQ1/jYVHWoW+MpvYDl6R20QDRJWuTahT6XIGcKau1A2kUZI5LkaKo78QqoNOt7qtOAY+ncjQlXfME1ZAss5ydwtdENCHLJQ3+z1bkErbW5R9tFGRxeoDvgJ3INm7rNCF3GA0Wpoj0FgwDd7v4g1+hf70OSd8Cd5G8Ub0mhzxIMkQdQu7GjH/x+7ThJkT9gbyz3xDX+PkoIJtugu/K8IRBZL98H9I5GZsCMAWcZS6mBhV+Aj6qaA8wUc+HCshp18A+Y8j4qR+Qjsoh4HfgJLJSMglMRFPYSvx3QlsJeYJfw9w0t1aHweeV6Thj8dqBm6rUZiWkfDOeZk5hN3AnMoSs3Uw8ueegiV9SQM6Y3cgNgvZtaMgaiOl9TZYBO4CjHiQXovbGt7w+lgKP4M/IjVD0rq0tX38hT68dwJPIloAGtXG2wehi4B30j0Df5WQ1uZpNSNegduK+6urk1ibnQmQAgXbyPmppCl9TUQReqCPAPGkwlaOGuAN9I3zRaym9NMb1ZGO3b1rdntZIk/Tg98gn25rFw/7ileT3dXJ/ZIJPs0AOAzciZ0re6NMOYDG6kRc32kety8uV96vlG8jPyvFn1Yn7dMmq5htgm3YQjtitHUAcsv7wOEVgHT9LgC/RN86WXjJnlTuWk839j38ScOPIVvQNNK2XjTqkwCfom2hKU8iqd9B0AjPom2lCOwx7o8ZO9M1MqxEU33uYpoXwN6huNu6KMs+ib2pSZXL8eQvSoKxtblxNUEf7rbVtWRaZRhrCN2oHEoMycCvwvXYgtiihf8THUWbuqhYjlNmQH9gywDe2oG92LQ0Q6CTUJJyB380RB5BLa67oRd/4+TRCTjc03Ya++adrFA/mbmnRDPyDfhEiDSGN5bnGl9Eg/cD5aZPx9Z16HD7WDgD55wUbgePagfjAzeidFTPAU/ZTDIvz0CnGUeA6B/kFietNph/S+PJelC9wU4hR8tMvloo3sFuIv5GWndwsg6TlaewUYhJ4FbjMXSrZ4B7MFuII8AyBdRX6xC2kL8IMslS+DTjTbfjZYz3JCzEAbMeTxcAl2gEYoq5pbRUOIk/3sSa9uSIrBRmv/DzG3IS2k8CvzE1wG0beaXu9vPEvhgiY2TqiZ7EAAAAASUVORK5CYII='/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=400.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":18,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().oval(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2))\\n\",\"    .f(0)\\n\",\"    .nshow()\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i]))))\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":493},\"executionInfo\":{\"elapsed\":234,\"status\":\"ok\",\"timestamp\":1668709374905,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"nu0b17VPyZaM\",\"outputId\":\"d31bf401-a661-4bbb-ae76-1a58b69e1eb2\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=50.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=400.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:/8...>\"]},\"execution_count\":19,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"(P().rect(rect)\\n\",\"    .difference(P().oval(rect).t(rect.w/2).outline(2))\\n\",\"    .difference(P().oval(rect).t(-rect.w/2).outline(2))\\n\",\"    .f(0)\\n\",\"    .nshow()\\n\",\"    .data(frame=rect)\\n\",\"    .gridlayer(n)\\n\",\"    .mapv(lambda i, p: p.rotate(90*int(rs2[i])))\\n\",\"    .mapvch(lambda b, p: p.xor(P().rect(p.ambit(th=1, tv=1).inset(0))) if b else p)\\n\",\"    #.f(hsl(0.9, 0.8, 0.6))\\n\",\"    )\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"zfFykcmQMjfr\"},\"source\":[\"# Hexagons\\n\",\"\\n\",\"Here’s a variation on the square tiles above, this time using a hexagon tile with a pattern I (once again) cribbed [from Maurice Meilleur](https://mauricemeilleur.net/truchet_tiles).\\n\",\"\\n\",\"An open question: does this pattern have something to do with Aphex Twin?\\n\",\"\\n\",\"(I’ll admit: because I'm very bad at math, this one took me a very long time to figure out, and also the code is much less flowing.)\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":535},\"executionInfo\":{\"elapsed\":297,\"status\":\"ok\",\"timestamp\":1668709375200,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"DnW0_mV0OmGP\",\"outputId\":\"90848ac1-a78d-4a12-9db3-56da25646327\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=51.96152448654175 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGgAAABpCAYAAADWQGYEAAAABHNCSVQICAgIfAhkiAAAA8NJREFUeJzt3U1oXFUUB/BfWtuqwTZCUSqGgFgrgoooiBiortx058JPLAVFsS7Uld+K4sdGFwUXalGkagVRXIpEEBFbQRBULBi0FGpFbLGlWtpao4trtA1Okpl599076fnBgezmnPvPzMvMS3Ko04WYwF8t1XsYa2WyAbcCm/CH9sKZrsN4BsPZpxxAi7ER+7QfzMzag/UYyjrxAFmLHcoHM7O+wOUZ567eeXhf+SBmqylswapMZ1ClYTyHI8oHMN/6DQ9jWYbzqMYQNuAn5Q+819qJ65s+mFp8ovwBN1VbGj6bjha19UDY3OJj5fZa6QZyafPNZ656tfFTqcgqHFD+kHutH7G88VOpzFocU/6wu61DuCTDeVRpg/IH3k1NYV2Wk6jY88of/Hzr3kxnUL1HlT/82eoYbss2/YC4BUeVD2NmHcS1GeceKFdhUvlQpuszrMk68QBaisek+zKlgvkVd4lbDbM6H29qP5xNOLuF+RaMNXgbf8oXymG86CS7ndC0Men2xM+aC+Z7PICVLc5xUrhV+izsS90F8ju2Sc+W61rvug+DfjG8DOdgRPqFkxHpXf/+f+oAduHbUg2GEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCGEOQ3iidBOho0ND0t/PhDrta/O/XYUeRECVi4AqFwFVLgKqXARUuQiochFQ5SKgykVAlYuAKhcBVS4CqlwEVLkIqHIRUOUioMpFQJWLgCoXAVUuAqpcBFS5CKhyEVDlIqDKRUCVi4AqFwFV7hR8jitLN9Kjr7DHf7sa9kqLoo7f5TCKi0o12Kft01+sNxhL0LfiDlzR5aCnSWvY7sYHFcwxV+3CDTOHOB1PK7ui7P/qBzyk2V0/o3hWszuJmqiDeBDLZmt+DO9W0OwO3CzvdXKp9KzaXXjWKbyOs7pp/hp8XaDZSdzUTaMNuUeZZ9R23b9k/2uRtBXxlxYaPYInpe/qUs7EK9J3dO55d0sbxRpZsjUibUnM1ew2XNBEow0Zl3ev61PSNb9xqzHRcLNbsSRHs31agY81O+s70jU+u3X4roGGH2mj2T4swRv6n/MbXN1y7+B+6UfDXpq+vUC/vXpZbzPuxZ0F+j3BSunC2s1C2heKdNq7xbp7uTsqzXhGgV47uhSfmrv5Dw3mZ4DLze9lfUK6VlfrRp3f+O3EcLnW+rZa52AmpWvzQDgVj0sbgI8fYrxkUw3Z6MSZ9uM+6YPngXMu3pIG2Vy4lyZ9JF1zX7JA9oGPS6/hC8UoLi7dRAghhBBCCKEnfwMUKlwWaIAAUAAAAABJRU5ErkJggg=='/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/html\":[\"<img width=545.5960078847187 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"from coldtype.fx.shapes import polygon\\n\",\"\\n\",\"r = Rect(120, 120)\\n\",\"\\n\",\"hex = P().ch(polygon(6, r))\\n\",\"hexr = hex.ambit(th=1, tv=1)\\n\",\"p1y = hex._val.value[0][-1][-1][-1]\\n\",\"\\n\",\"rr = r.w/4\\n\",\"\\n\",\"hex_pattern = (hex.copy()\\n\",\"    .intersection(P()\\n\",\"        .append(P().oval(r.inset(rr)).t(0, rr*2))\\n\",\"        .append(P().rect(hexr.take(rr*2, \\\"S\\\"))\\n\",\"            .difference(P().oval(r.inset(rr)).t(0, -rr*2))))\\n\",\"    .f(0)\\n\",\"    .data(frame=hexr)\\n\",\"    .nshow()\\n\",\"    .gridlayer(10, lead=-hexr.h-p1y)\\n\",\"    .mapvrc(lambda r, c, p: p.t(hexr.w/2 if not r%2 else 0, 0))\\n\",\"    .mapv(lambda i, p: p.rotate(120*int(rs2[i]), th=0, tv=0))\\n\",\"    .fssw(0, 0, 2)\\n\",\"    .nshow())\\n\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"MsyZY-onNACr\"},\"source\":[\"Here’s that same pattern altered slightly and sent through a rasterization pass with `phototype`, which we’re using here to soften the edges of all the boolean path operations.\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":379},\"executionInfo\":{\"elapsed\":568,\"status\":\"ok\",\"timestamp\":1668709375767,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"tTTfT92NqHjH\",\"outputId\":\"062e10b2-8cba-494a-f908-c5323d178be1\"},\"outputs\":[{\"data\":{\"text/html\":[\"<img width=340.0 src='data:image/png;base64,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'/>\"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"},{\"data\":{\"text/plain\":[\"<®:P:RecordingPen(5mvs)>\"]},\"execution_count\":21,\"metadata\":{},\"output_type\":\"execute_result\"}],\"source\":[\"from coldtype.fx.skia import phototype\\n\",\"\\n\",\"(hex_pattern\\n\",\"    .copy()\\n\",\"    .pen()\\n\",\"    .align(Rect(1000, 1000))\\n\",\"    .unframe()\\n\",\"    .intersection(P(Rect(1000, 1000).take(800, \\\"CX\\\").square()))\\n\",\"    .outline(4)\\n\",\"    .fssw(1, 0, 0)\\n\",\"    .zero()\\n\",\"    .ch(phototype(Rect(800, 800).inset(60), blur=3, cutw=20, fill=0)))\"]},{\"cell_type\":\"markdown\",\"metadata\":{\"id\":\"hsPg8SkPNrYr\"},\"source\":[\"# Animation\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":321,\"referenced_widgets\":[\"3fd5f0ced32348f181e22bc3efee9c2a\",\"fdef570afc144d5e84ca92dfc6b588ef\",\"73c9ad6897cb427f9ef5e6ba0f1541ce\",\"c8250b3204aa4e3ab8834240590c588b\",\"062c6adcfdca4b63a24cdb6a08b82978\",\"0ebae87610d64e51a95cc461a9017360\",\"d2caef1c5c214d8fb25b370bf3c6dfeb\",\"8047f7d4afee447184239945629abcb2\",\"13eeb928c6ad4f2f91e0e72581196ab7\",\"9145c42c85cf4132b4ecf7a36f3630e4\",\"16f3d0d32040430fa33aaaaa26210423\"]},\"executionInfo\":{\"elapsed\":4324,\"status\":\"ok\",\"timestamp\":1668709580564,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"oqT8gwbLwbHk\",\"outputId\":\"1e047a75-9769-417a-ea0f-d2c53d4cd804\"},\"outputs\":[{\"data\":{\"text/html\":[\"\\n\",\"        <video width=300.0 controls loop=true autoplay>\\n\",\"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\"        </video>\\n\",\"        \"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"@animation((600, 600), bg=1, tl=30, render_show=True)\\n\",\"def tennis_balls(f):\\n\",\"    tb = f.a.r.take(100, \\\"SW\\\")\\n\",\"    return (P().oval(tb)\\n\",\"        .difference(P().oval(tb).t(tb.w/2).outline(6))\\n\",\"        .difference(P().oval(tb).t(-tb.w/2).outline(6))\\n\",\"        .f(0)\\n\",\"        .data(frame=tb)\\n\",\"        .gridlayer(6)\\n\",\"        .mapv(lambda i, p: p.rotate(90*int(rs2[i])))\\n\",\"        .mapv(lambda i, p: p.rotate(f.e(\\\"eeio\\\", 0, r=(0, 180)))))\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":271,\"referenced_widgets\":[\"cd64aeedd7b1451e9df97136a3826719\",\"d4c56c7f2c074beebd177dfb560ea013\",\"9416f6985cc9429483ab4c351e12fa0f\",\"ae29ce027cd4460c95c4b9af36e2b386\",\"01dd4a2d8f274198af1d9b6d88836bde\",\"bd00098e63554691b82d323b851e0a51\",\"2100c17b674141aaab7f30692c59ae21\",\"e5cde23f6e47408f84ce041c1eca4c0a\",\"1ab616a121a14f1d8bf00f508f597a6a\",\"ebf1182e99e24bdcb55992ca431a0054\",\"7f5eb12ff6fb4a239a631bd83155a35b\"]},\"executionInfo\":{\"elapsed\":17608,\"status\":\"ok\",\"timestamp\":1668709473978,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"FXLPhqFxNtOa\",\"outputId\":\"e69a43b3-5450-43ea-eb06-61f358af03bd\"},\"outputs\":[{\"data\":{\"text/html\":[\"\\n\",\"        <video width=250.0 controls loop=true autoplay>\\n\",\"            <source src=\\\"data:video/mp4;base64,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AAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABAAAAAABAAAGAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAIAAAAAAIAAAIAAAAAAQAABAAAAAABAAAIAAAAAAIAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAMAAAQAAAAAAQAACAAAAAACAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoAAAAAAQAABAAA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\\\" type=\\\"video/mp4\\\">\\n\",\"        </video>\\n\",\"        \"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"tr = Rect(100)\\n\",\"tn = 5\\n\",\"\\n\",\"at = AsciiTimeline(7, 30, \\\"\\\"\\\"\\n\",\"<\\n\",\"[0 ]                           [1 ]\\n\",\"  [1    ]           [0  ]\\n\",\"             [2  ]             [2  ]\\n\",\"                     [3 ]        [3  ]\\n\",\"                      [4 ]    [4 ]\\n\",\"            [5         ]           [5  ]   <\\n\",\"             [6  ]               [6  ]\\n\",\"\\\"\\\"\\\")\\n\",\"\\n\",\"@animation((500, 500), tl=at, bg=1, render_show=True)\\n\",\"def offset_turns(f):\\n\",\"    return (P(tr)\\n\",\"        .difference(P()\\n\",\"            .append(P().oval(tr).t(tr.w/2))\\n\",\"            .append(P().oval(tr).t(-tr.w/2)))\\n\",\"        .f(0)\\n\",\"        .data(frame=tr)\\n\",\"        .gridlayer(tn)\\n\",\"        .mapv(lambda i, p: p.rotate(at.ki(f\\\"{i%6}\\\").ec(\\\"eeio\\\", (0, 90)))))\"]},{\"cell_type\":\"code\",\"execution_count\":null,\"metadata\":{\"colab\":{\"base_uri\":\"https://localhost:8080/\",\"height\":271,\"referenced_widgets\":[\"fdb2e6bcf5684aa18e858a1ae89d0e93\",\"618d8b346950454ca0543d6b16027749\",\"0edf883083694bbca7d8fe1e2a159d8d\",\"4d9e3562cdc94126b7fc27c1592dff94\",\"1661eba632684a14bccce00e96d8ae82\",\"28d93f13345f4dbc9baef75b13e8b8bc\",\"ce5ab8240ec049f18c83831f8cf4b368\",\"fa8a919d90c74fa8aa9e9f6bb8cc6d5d\",\"a065ba9b3e654b4c80e69d3d55bfb190\",\"86d1f226b7244854b6cebe5e4eb2e751\",\"27e54603485b4200bf4cfcda2f855a93\"]},\"executionInfo\":{\"elapsed\":15114,\"status\":\"ok\",\"timestamp\":1668709494688,\"user\":{\"displayName\":\"Rob Stenson\",\"userId\":\"15987375555675088907\"},\"user_tz\":480},\"id\":\"QV1AvUVgP22J\",\"outputId\":\"ae6b9035-8a9e-42e5-bb81-b46a3c8ad8c4\"},\"outputs\":[{\"data\":{\"text/html\":[\"\\n\",\"        <video width=250.0 controls loop=true autoplay>\\n\",\"            <source src=\\\"data:video/mp4;base64,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AAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAADAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAEAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAYAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAEAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAABgAAAAABAAACAAAAAAEAAAQAAAAAAQAABgAAAAABAAACAAAAAAIAAAQAAAAAAQAACAAAAAACAAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAS0AAAABAAAEyHN0c3oAAAAAAAAAAAAAAS0AAEBlAAAEBgAAAJgAAABEAAAAYAAABL0AAAJqAAAAjAAAAb0AAAezAAADDQAAAuIAAA48AAAJVQAABM4AAAgkAAAOPQAABZIAAAQfAAACxgAACd0AAALVAAAB8AAAATEAAAdtAAABQgAAAMQAAADyAAAFZwAAAiIAAADTAAABZwAABr8AAAM5AAABiQAAAfYAAATTAAAF7AAACVgAAAX1AAADOgAAAt0AAAc1AAACJAAABfcAAAF3AAAGFwAAAgIAAAFdAAAA8QAABLUAAAE5AAAAdwAAAG4AAANtAAAAZQAAAEEAAAAzAAACaAAAAGIAAABIAAAANAAAARIAAABNAAAALgAAACkAAABpAAAANwAAACkAAAApAAAARQAAADkAAAAoAAAAKgAAAEMAAAA4AAAAKgAAACoAAAA4AAAAOQAAACsAAAAqAAAAUwAAAD0AAAAqAAAALAAAAMcAAABEAAAALQAAAC0AAAKiAAAAegAAADoAAABaAAADrQAAAGwAAABfAAAAZQAABgcAAAGgAAAAvQAAAYIAAAX5AAAB9AAADGkAAAWJAAACPQAAAwcAAAxzAAAGoAAABScAAA9WAAAFgAAAA0EAAALTAAAMKgAAA9MAAAK4AAACdQAAC14AAAOwAAAB5AAAAi4AAAilAAACnAAABaAAAAc2AAAGCgAACpAAAANXAAACpgAABb8AAAgUAAACeAAAAeoAAAcLAAACgwAAAZEAAAFrAAAHjgAAAjYAAAFsAAABNwAACPEAAAI/AAABHwAAANoAAAqMAAADhgAAAQMAAAICAAAJ0AAAAr4AABKgAAAIZQAAA2MAAAW2AAAbHQAADoQAAAiqAAAH1AAAHA8AAAy3AAAJdgAABp0AABqkAAAKrgAABh4AAAdxAAAVnwAABw0AABGVAAAFyQAAA9MAAAKsAAAH+gAAAnYAAAGlAAAAowAAA5gAAAClAAAAgQAAAEkAAACXAAAAXwAAAEYAAABCAAAAaQAAAF0AAABEAAAAQwAAAFkAAABVAAAAQwAAAEMAAABHAAAAVgAAAEIAAABCAAAATwAAAFUAAABCAAAAQgAAAGwAAABWAAAAQgAAAEIAAABMAAAAVgAAAEIAAABBAAAC7wAAAJMAAABkAAAAowAABIoAAAJ3AAAAswAAAaoAAAtyAAAE8AAAAm4AAAPBAAARdgAAC0AAAAY0AAAHBQAAFFYAAAn1AAAFhgAABZ8AABfLAAALVwAACIMAAAaMAAAWRwAAB/YAAAXpAAAEdgAADyIAAAWAAAADHwAAAw4AAA5rAAAFUwAAAt0AAAK/AAAItAAAA/QAAAQ/AABMyQAAC/YAAAVBAAAC+wAAAk8AAAgxAAACdAAAB4cAAAouAAACbgAABkMAAAcqAAAN3gAABXoAAAVRAAAG+AAACtkAAAQrAAAC5AAAAbQAAAYxAAACjQAAAaQAAAD5AAADdAAAAJwAAABwAAAAVgAAAj0AAABvAAAASgAAAD4AAABAAAAAQQAAAD0AAAAvAAAAHAAAAD0AAAAvAAAALwAAABwAAAA9AAAALwAAAC8AAAAcAAAAPQAAAC8AAAAvAAAAHAAAAD0AAAAvAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU3LjgzLjEwMA==\\\" type=\\\"video/mp4\\\">\\n\",\"        </video>\\n\",\"        \"],\"text/plain\":[\"<IPython.core.display.HTML object>\"]},\"metadata\":{},\"output_type\":\"display_data\"}],\"source\":[\"@animation((500, 500), tl=at, bg=1, render_show=True)\\n\",\"def offset_turns_colorful(f):\\n\",\"    return (P(tr)\\n\",\"        .difference(P()\\n\",\"            .append(P().oval(tr).t(tr.w/2))\\n\",\"            .append(P().oval(tr).t(-tr.w/2)))\\n\",\"        .f(0)\\n\",\"        .data(frame=tr)\\n\",\"        .gridlayer(tn)\\n\",\"        .mapv(lambda i, p: p\\n\",\"            .rotate(at.ki(f\\\"{i%6}\\\").ec(\\\"eeio\\\", (0, 90)))\\n\",\"            .f(hsl(i%6/6))))\"]}],\"metadata\":{\"colab\":{\"authorship_tag\":\"ABX9TyPvZHh5L7/1eANuk/20JoaR\",\"provenance\":[]},\"kernelspec\":{\"display_name\":\"Python 3\",\"name\":\"python3\"},\"language_info\":{\"codemirror_mode\":{\"name\":\"ipython\",\"version\":3},\"file_extension\":\".py\",\"mimetype\":\"text/x-python\",\"name\":\"python\",\"nbconvert_exporter\":\"python\",\"pygments_lexer\":\"ipython3\",\"version\":\"3.11.7\"},\"widgets\":{\"application/vnd.jupyter.widget-state+json\":{\"01dd4a2d8f274198af1d9b6d88836bde\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":\"hidden\",\"width\":null}},\"062c6adcfdca4b63a24cdb6a08b82978\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":\"hidden\",\"width\":null}},\"0ebae87610d64e51a95cc461a9017360\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"0edf883083694bbca7d8fe1e2a159d8d\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"FloatProgressModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"FloatProgressModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"ProgressView\",\"bar_style\":\"\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_fa8a919d90c74fa8aa9e9f6bb8cc6d5d\",\"max\":301,\"min\":0,\"orientation\":\"horizontal\",\"style\":\"IPY_MODEL_a065ba9b3e654b4c80e69d3d55bfb190\",\"value\":301}},\"13eeb928c6ad4f2f91e0e72581196ab7\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"ProgressStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"ProgressStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"bar_color\":null,\"description_width\":\"\"}},\"1661eba632684a14bccce00e96d8ae82\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":\"hidden\",\"width\":null}},\"16f3d0d32040430fa33aaaaa26210423\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"1ab616a121a14f1d8bf00f508f597a6a\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"ProgressStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"ProgressStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"bar_color\":null,\"description_width\":\"\"}},\"2100c17b674141aaab7f30692c59ae21\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"27e54603485b4200bf4cfcda2f855a93\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"28d93f13345f4dbc9baef75b13e8b8bc\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"3fd5f0ced32348f181e22bc3efee9c2a\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HBoxModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HBoxModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HBoxView\",\"box_style\":\"\",\"children\":[\"IPY_MODEL_fdef570afc144d5e84ca92dfc6b588ef\",\"IPY_MODEL_73c9ad6897cb427f9ef5e6ba0f1541ce\",\"IPY_MODEL_c8250b3204aa4e3ab8834240590c588b\"],\"layout\":\"IPY_MODEL_062c6adcfdca4b63a24cdb6a08b82978\"}},\"4d9e3562cdc94126b7fc27c1592dff94\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_86d1f226b7244854b6cebe5e4eb2e751\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_27e54603485b4200bf4cfcda2f855a93\",\"value\":\" 299/301 [00:11&lt;00:00, 27.18it/s]\"}},\"618d8b346950454ca0543d6b16027749\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_28d93f13345f4dbc9baef75b13e8b8bc\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_ce5ab8240ec049f18c83831f8cf4b368\",\"value\":\" 99%\"}},\"73c9ad6897cb427f9ef5e6ba0f1541ce\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"FloatProgressModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"FloatProgressModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"ProgressView\",\"bar_style\":\"\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_8047f7d4afee447184239945629abcb2\",\"max\":30,\"min\":0,\"orientation\":\"horizontal\",\"style\":\"IPY_MODEL_13eeb928c6ad4f2f91e0e72581196ab7\",\"value\":30}},\"7f5eb12ff6fb4a239a631bd83155a35b\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"8047f7d4afee447184239945629abcb2\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"86d1f226b7244854b6cebe5e4eb2e751\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"9145c42c85cf4132b4ecf7a36f3630e4\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"9416f6985cc9429483ab4c351e12fa0f\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"FloatProgressModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"FloatProgressModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"ProgressView\",\"bar_style\":\"\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_e5cde23f6e47408f84ce041c1eca4c0a\",\"max\":301,\"min\":0,\"orientation\":\"horizontal\",\"style\":\"IPY_MODEL_1ab616a121a14f1d8bf00f508f597a6a\",\"value\":301}},\"a065ba9b3e654b4c80e69d3d55bfb190\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"ProgressStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"ProgressStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"bar_color\":null,\"description_width\":\"\"}},\"ae29ce027cd4460c95c4b9af36e2b386\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_ebf1182e99e24bdcb55992ca431a0054\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_7f5eb12ff6fb4a239a631bd83155a35b\",\"value\":\" 299/301 [00:13&lt;00:00, 18.05it/s]\"}},\"bd00098e63554691b82d323b851e0a51\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"c8250b3204aa4e3ab8834240590c588b\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_9145c42c85cf4132b4ecf7a36f3630e4\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_16f3d0d32040430fa33aaaaa26210423\",\"value\":\" 29/30 [00:02&lt;00:00, 13.17it/s]\"}},\"cd64aeedd7b1451e9df97136a3826719\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HBoxModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HBoxModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HBoxView\",\"box_style\":\"\",\"children\":[\"IPY_MODEL_d4c56c7f2c074beebd177dfb560ea013\",\"IPY_MODEL_9416f6985cc9429483ab4c351e12fa0f\",\"IPY_MODEL_ae29ce027cd4460c95c4b9af36e2b386\"],\"layout\":\"IPY_MODEL_01dd4a2d8f274198af1d9b6d88836bde\"}},\"ce5ab8240ec049f18c83831f8cf4b368\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"d2caef1c5c214d8fb25b370bf3c6dfeb\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"DescriptionStyleModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"DescriptionStyleModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"StyleView\",\"description_width\":\"\"}},\"d4c56c7f2c074beebd177dfb560ea013\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_bd00098e63554691b82d323b851e0a51\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_2100c17b674141aaab7f30692c59ae21\",\"value\":\" 99%\"}},\"e5cde23f6e47408f84ce041c1eca4c0a\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"ebf1182e99e24bdcb55992ca431a0054\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"fa8a919d90c74fa8aa9e9f6bb8cc6d5d\":{\"model_module\":\"@jupyter-widgets/base\",\"model_module_version\":\"1.2.0\",\"model_name\":\"LayoutModel\",\"state\":{\"_model_module\":\"@jupyter-widgets/base\",\"_model_module_version\":\"1.2.0\",\"_model_name\":\"LayoutModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/base\",\"_view_module_version\":\"1.2.0\",\"_view_name\":\"LayoutView\",\"align_content\":null,\"align_items\":null,\"align_self\":null,\"border\":null,\"bottom\":null,\"display\":null,\"flex\":null,\"flex_flow\":null,\"grid_area\":null,\"grid_auto_columns\":null,\"grid_auto_flow\":null,\"grid_auto_rows\":null,\"grid_column\":null,\"grid_gap\":null,\"grid_row\":null,\"grid_template_areas\":null,\"grid_template_columns\":null,\"grid_template_rows\":null,\"height\":null,\"justify_content\":null,\"justify_items\":null,\"left\":null,\"margin\":null,\"max_height\":null,\"max_width\":null,\"min_height\":null,\"min_width\":null,\"object_fit\":null,\"object_position\":null,\"order\":null,\"overflow\":null,\"overflow_x\":null,\"overflow_y\":null,\"padding\":null,\"right\":null,\"top\":null,\"visibility\":null,\"width\":null}},\"fdb2e6bcf5684aa18e858a1ae89d0e93\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HBoxModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HBoxModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HBoxView\",\"box_style\":\"\",\"children\":[\"IPY_MODEL_618d8b346950454ca0543d6b16027749\",\"IPY_MODEL_0edf883083694bbca7d8fe1e2a159d8d\",\"IPY_MODEL_4d9e3562cdc94126b7fc27c1592dff94\"],\"layout\":\"IPY_MODEL_1661eba632684a14bccce00e96d8ae82\"}},\"fdef570afc144d5e84ca92dfc6b588ef\":{\"model_module\":\"@jupyter-widgets/controls\",\"model_module_version\":\"1.5.0\",\"model_name\":\"HTMLModel\",\"state\":{\"_dom_classes\":[],\"_model_module\":\"@jupyter-widgets/controls\",\"_model_module_version\":\"1.5.0\",\"_model_name\":\"HTMLModel\",\"_view_count\":null,\"_view_module\":\"@jupyter-widgets/controls\",\"_view_module_version\":\"1.5.0\",\"_view_name\":\"HTMLView\",\"description\":\"\",\"description_tooltip\":null,\"layout\":\"IPY_MODEL_0ebae87610d64e51a95cc461a9017360\",\"placeholder\":\"​\",\"style\":\"IPY_MODEL_d2caef1c5c214d8fb25b370bf3c6dfeb\",\"value\":\" 97%\"}}}}},\"nbformat\":4,\"nbformat_minor\":0}\n"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/templates/_footer.j2",
    "content": ""
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/templates/_header.j2",
    "content": "{% if url == \"/\" %}<h1>The Coldtype Blog</h1>{% else %}<h1><a href=\"/\">The Coldtype Blog</a></h1>{% endif %}"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/templates/_post.j2",
    "content": "<div class=\"post\">\n  <div class=\"headline\">\n    <h1>{{ page.title }}</h1>\n    <!--<div class=\"colab-callout\">\n    <a class=\"colab-link\" href=\"https://colab.research.google.com/drive/{{page.path.stem}}\" target=\"_blank\">💻 View/run\n      on Colab</a>\n  </div>-->\n  </div>\n  {{ page.content|safe }}\n</div>"
  },
  {
    "path": "examples/sites/blog.coldtype.xyz/templates/index.j2",
    "content": "<ul>\n  {% for post in public_posts %}\n  <li class=\"post-link\">\n    <a href=\"/{{ post.slug }}\">\n      <h2><span class=\"grocer\">“</span>{{ post.title }}<span class=\"grocer\">”</span> <span class=\"date\">{{\n          post.date }}</span></h2>\n    </a>\n  </li>\n  {% endfor %}\n</ul>"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/assets/style.css",
    "content": "@import \"examples/sites/blog.coldtype.xyz/assets/style.css\";\n\n.wrapper {\n    max-width: 950px;\n    margin: auto auto;\n    padding: 20px;\n}\n\n.index .wrapper {\n    max-width: 500px;\n}\n\n.page {\n    display: flex;\n}\n\n.page aside {\n    width: 30%;\n    font-size: 85%;\n}\n\n.page .post {\n    width: 70%;\n}\n\n@media (max-width: 700px) {\n    .page aside {\n        display: none;\n    }\n    .page .post {\n        width: 100%;\n    }\n}\n\nheader h1 {\n    text-align: center;\n}\n\n.post h1 {\n    margin-top: 0px;\n}\n\n.colab-callout {\n    margin-bottom: 0px;\n}\n\n.menu {\n    padding-right: 10px;\n}\n\n.menu h3 {\n    --mono-font: fvs(wght=0.75);\n    text-transform: uppercase;\n    margin-top: 20px;\n    margin-bottom: 10px;\n}\n\n.menu a {\n    --mono-font: fvs(wght=0.65);\n    padding: 2px 2px 2px 20px;\n}\n\n.menu a:hover {\n    background-color: hsl(330, 80%, 95%);\n}\n\n.menu .current {\n    color: #555;\n}"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/coldtype.goodhertz.com.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\nfrom functools import partial\n\nimport inspect, markdown\n\nfrom time import time\nfrom textwrap import dedent\nfrom coldtype.runon import Runon\nfrom collections import namedtuple\n\nfrom pygments import highlight\nfrom pygments.lexers import PythonLexer\nfrom pygments.formatters import HtmlFormatter\nfrom lxml.html import fragment_fromstring, tostring\n\nclasses = [ P, Style, Rect, Scaffold, Runon ]\n\ndecorators = [\n    renderable,\n    animation,\n]\n\nfunctions = [\n    StSt,\n    Glyphwise\n]\n\nroot = Path(\"./coldtype\").resolve()\n\noutput = {\n    \"decorators\": [],\n    \"classes\": [],\n    \"functions\": [],\n}\n\ndoc = namedtuple(\"doc\", [\"itself\", \"path\", \"docstring\", \"signature\", \"methods\"])\n\ndef classes_functions(s:site):\n    for k, v in output.items():\n        for x in globals()[k]:\n            docstring = inspect.getdoc(x)\n            if docstring:\n                docstring_md = markdown.markdown(docstring, extensions=[\"smarty\", \"mdx_linkify\", \"fenced_code\", \"codehilite\"], extension_configs={\"codehilite\":{\"css_class\":\"highlight\"}})\n                path = Path(inspect.getfile(x)).relative_to(root)\n                sig = None\n                src = None\n                methods = []\n\n                if inspect.isclass(x):\n                    src = inspect.getsource(getattr(x, \"__init__\"))\n                    src = dedent(f\"class {x.__name__}:\\n\" + src.split(\"):\")[0] + \"):\")\n                    \n                    _methods = inspect.getmembers(x)\n                    for m in _methods:\n                        try:\n                            _path = Path(inspect.getfile(m[1])).relative_to(root)\n                        except (TypeError, ValueError):\n                            _path = None\n                        \n                        if _path == path and m[1].__name__ not in [\"__init__\", \"__call__\", \"__repr__\", \"__eq__\"]:\n                            ds = inspect.getdoc(m[1])\n                            if ds:\n                                ds_md = markdown.markdown(ds, extensions=[\"smarty\", \"mdx_linkify\", \"fenced_code\", \"codehilite\"], extension_configs={\"codehilite\":{\"css_class\":\"highlight\"}})\n                                _src = dedent(inspect.getsource(m[1]).split(\"->\")[0])\n                                _highlit = fragment_fromstring(highlight(_src, PythonLexer(), HtmlFormatter(linenos=False)))\n                                _sig = tostring(_highlit, pretty_print=True, encoding=\"utf-8\").decode(\"utf-8\")\n                                methods.append(doc(m[1], path, ds_md, _sig, None))\n                    \n                    methods = sorted([*set(methods)], key=lambda m: m.itself.__name__)\n\n                else:\n                    src = dedent(inspect.getsource(x).split(\"->\")[0])\n                \n                if src:\n                    highlit = fragment_fromstring(highlight(src, PythonLexer(), HtmlFormatter(linenos=False)))\n                    sig = tostring(highlit, pretty_print=True, encoding=\"utf-8\").decode(\"utf-8\")\n\n                output[k].append(doc(x.__name__, path, docstring_md, sig, methods))\n            \n            #if inspect.isclass(x):\n            #    print(path, k, inspect.isclass(x))\n\n    page = Page(None, None, f\"classes_functions.html\", \"Classes & Functions\", \"_docs\", None, None, None, None)\n    s.render_page(page, dict(docs=output))\n    return page\n\nhierarchy = {\n    \"mains\": [\"introduction.html\", \"about.html\", \"overview.html\", \"install.html\", \"classes_functions.html\"],\n    \"tutorials\": [\"tutorials/shapes.html\", \"tutorials/geometry.html\", \"tutorials/text.html\", \"tutorials/animation.html\", \"tutorials/drawbot.html\", \"tutorials/blender.html\"],\n    \"cheatsheets\": [\"cheatsheets/viewer.html\", \"cheatsheets/easing.html\", \"cheatsheets/rectangles.html\", \"cheatsheets/oneletter.html\", \"cheatsheets/text.html\"],\n}\n\ndef section(section, site):\n    return sorted([p for p in site.pages if p.slug in hierarchy[section]], key=lambda p: hierarchy[section].index(p.slug))\n\ninfo = dict(\n    title=\"Coldtype Tutorials\",\n    description=\"These are Coldtype tutorials\",\n    navigation={\n        #\"Home\": \"/\",\n        #\"About\": \"/about\"\n        \"coldtype.xyz\": \"https://coldtype.xyz/\",\n        \"blog\": \"https://blog.coldtype.xyz/\",\n        \"github\": \"https://github.com/coldtype\",\n        \"youtube\": \"https://www.youtube.com/channel/UCIRaiGAVFaM-pSErJG1UZFA\",\n        \"q&a forum\": \"https://github.com/goodhertz/coldtype/discussions\",\n    })\n\n@site(ººsiblingºº(\".\")\n    , port=8008\n    , sources=dict(\n        mains=partial(section, \"mains\"),\n        tutorials=partial(section, \"tutorials\"),\n        cheatsheets=partial(section, \"cheatsheets\"))\n    , generators=dict(\n        classes_functions=classes_functions)\n    , info=info\n    , template=lambda _: \"_page\"\n    , slugs=\"nested,html\"\n    , fonts={\n        \"text-font\": dict(regular=\"MDSystem-VF\"),\n        \"mono-font\": dict(regular=\"MDIO-VF\")})\ndef website(_):\n    website.build()\n\ndef release(_):\n    website.upload(\"coldtype.goodhertz.com\", \"us-east-1\", None)"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/about.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'author': 'Rob Stenson', 'title': 'About', 'date': '11/29/2022'}\"\n      ]\n     },\n     \"execution_count\": 1,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"About\\\",\\n\",\n    \"    date=\\\"11/29/2022\\\"\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#hide-publish\\n\",\n    \"%pip install -q \\\"coldtype[notebook]\\\"\\n\",\n    \"#!pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\n    \"from coldtype.notebook import *\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## What is Coldtype?\\n\",\n    \"\\n\",\n    \"*Coldtype is a cross-platform library to help you precisely & programmatically do display typography with Python.*\\n\",\n    \"\\n\",\n    \"Here’s a brief example of some text in a box.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=600.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLAAAAFeCAYAAACVV+aaAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xl4VdW5P/BvwpQQIIkMKjIJOAGWCEICYUgCCBZbouhP1FpQ69j6lNbSXmcc214cqPWK9VYNzmitYSY5mU7CPEgCRGaSMIUhgcxzcn5/eHPKEJJ19nDWXnt/P8/DY6sryQvknOz93e96V4DH4/GAiIiIiIiIiIjIogJlF0BERERERERERNQaBlhERERERERERGRpDLCIiIiIiIiIiMjSGGAREREREREREZGltW/pXwYEBPi7DiIiIiIiIiIiIrR03iA7sIiIiIiIiIiIyNIYYBERERERERERkaUxwCIiIiIiIiIiIktjgEVERERERERERJbGAIuIiIiIiIiIiCyNARYREREREREREVkaAywiIiIiIiIiIrI0BlhERERERERERGRpDLCIiIiIiIiIiMjS2uv5YI/HY1QdRERERERERERkYwEBAZo/lh1YRERERERERERkaQywiIiIiIiIiIjI0hhgERERERERERGRpTHAIiIiIiIiIiIiS2OARURERERERERElsYAi4iIiIiIiIiILI0BFhERERERERERWRoDLCIiIiIiIiIisjQGWEREREREREREZGkMsIiIiIiIiIiIyNIYYBERERERERERkaUxwCIiIiIiIiIiIktjgEVERERERERERJbGAIuIiIiIiIiIiCyNARYREREREREREVkaAywiIiIiIiIiIrI0BlhERERERERERGRpDLCIiIiIiIiIiMjSGGAREREREREREZGlMcAiIiIiIiIiIiJLY4BFRERERERERESWxgCLiIiIiIiIiIgsjQEWERERERERERFZGgMsIiIiIiIiIiKyNAZYRERERERERERkaQywiIiIiIiIiIjI0hhgERERERERERGRpTHAIiIiIiIiIiIiS2OARURERERERERElsYAi4iIiIiIiIiILI0BFhERERERERERWRoDLCIiIiIiIiIisjQGWEREREREREREZGkMsIiIiIiIiIiIyNIYYBERERERERERkaUxwCIiIiIiIiIiIktjgEVERERERERERJbGAIuIiIiIiIiIiCyNARYREREREREREVkaAywiIiIiIiIiIrI0BlhEREREREREZJqMjAx8//33sssgxTHAIiIi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ifr6en3uc59zOgYME26BVVJSYnMSROJLX/qS9u/fr6ysrHG9brS8ivWV32THCiwzLV26VM8995wWL14cle2xwsE+fNlCoqHAgpM4piISFFiImVtvvZUnymGMcJ8+QoFlFpfLpQceeEC33HLLuF9LeeUcVmCZpa6uTvv27dNDDz2kwsLCqG2XAss+4X7Z4jML8eJf//qX0xGQxLiwhkhQYCFm8vLytH37dqdjwGGZmZn6zGc+o8OHD6u3tzes1/BlwBxFRUX65S9/qVWrVo37tUeOHKG8chAnimaoqKjQd77zHT3zzDMKhUJR3z63ENon3AKrtLTU5iSIVLifP8kyxD3WBRYFO87EXEFEgrMcxNTll1+u9vZ2p2PAAYWFhbrpppv0t7/9Tffcc49mz54d9mv5MmCG/v5+Pffcc2pqahr3a0dGRhQKhSivHMQKLGcVFxdrx44devHFF7VmzRrbiia+INqH213i38GDB8P6uWQZ4h7rAouCHWca78N/AElKdzoAks/u3bs1d+5cnTp1yukoiIHKykpt2LBBn/3sZ5WTkxPRNliB5ayioiLdeeedGhwcjOj1IyMj8vl8YX9xQHS4XC61trbK7/fL7/dHVDxi4txut66//npt2rQp4mPgeFBg2YcCC4km1gUWT0lNbqWlpdY5SW9vLxeoEREKLMRcTU2NNm/erK1btzodBTZqa2vT+vXrdemll054WxRYzunv79fu3bsjnl935MgRhUIhyqsY8Xg88vv9CgQC8nq9ERUmyXLrjN2qq6u1ceNGXXXVVcrMzIzZflnhYB9ud0GiYYg77JSTk6OOjg4FAgEFAgF5PB6nIyEBUGDBEbfccot+9atf6YknnnA6CqLI5XJpYGBAmzdvjuqH1NSpU6O2LYSnuLhYd911lwYGBiLeBgPb7Tdt2jTramZPT09UHpQxb9487d+/PwrpklNbW5s2bdqkUCjkyGooVmDZ691335XL5XI6BhAV//znP2O6P45PiS01NVWNjY1WYdXe3s7xElFHgQVHpKamat++fZo/f76OHj3qdBxMUHFxsa6++mp9/vOft6VsysjIiPo2cX6rV6/Wt771LRUVFUW8je9+97vasGED5VWUTZ48WZ2dnVZpVVNT43Qk6IPPtFAopBtvvFELFy50PAvs88477/CFLI4xxH2s06dP680330ya/15EX1VV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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"@renderable((1200, 350), bg=1)\\n\",\n    \"def render(r):\\n\",\n    \"    return (P(\\n\",\n    \"        P(r.inset(10)).outline(5).f(0),\\n\",\n    \"        StSt(\\\"COLDTYPE\\\", Font.ColdtypeObviously(), 250,\\n\",\n    \"                wdth=1, tu=-170, r=1, rotate=15, kp={\\\"P/E\\\":-100})\\n\",\n    \"            .align(r)\\n\",\n    \"            .fssw(0, 1, 20, 1)\\n\",\n    \"            .translate(0, 4)))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Some oddities to note if you’re familiar with other graphics programming environments:\\n\",\n    \"\\n\",\n    \"* There is no \\\"canvas\\\"; all graphics are *structured data* `return`-ed from a function to the renderer, which does all the actual drawing-to-a-virtual-canvas.\\n\",\n    \"\\n\",\n    \"* There is an idiomatic emphasis on *method-chaining*, which (I feel) is an underappreciated way to do graphics programming, since the resulting code is easily editable and experimentable. Of course, some (like the creator of Python) have called this style of programming \\\"un-Pythonic.\\\" Take from that what you will!\\n\",\n    \"\\n\",\n    \"* As might already be clear from the first two points, coldtype is not meant to be a good introduction to programming. The point here is to be a toolkit that can help you create professional graphics, particularly *complex animations* that blend multiple data sources.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## Why is Coldtype?\\n\",\n    \"\\n\",\n    \"There are lots of ways to set type with code. Most ways — HTML/CSS/JS, Processing, etc. — are great for 90% of what most people want to do with Latin-based writing systems. Then the road runs out and you can’t do anything else.\\n\",\n    \"\\n\",\n    \"Coldtype is an offroad vehicle that lets you keep driving where there are no roads. Like many vehicles built for specialized use, it is not particularly user-friendly. It has no doors (please climb in through the window), and the steering wheel is not very intuitive, also it’s got a manual transmission, and you should probably know how to code (or be willing to learn) if you’re going to drive it alone out into the desert. (I apologize for how automotive this metaphor is getting. Probably should’ve gone with some metaphor about people making custom synthesizers in the 70s.)\\n\",\n    \"\\n\",\n    \"## What about DrawBot?\\n\",\n    \"\\n\",\n    \"If you’ve heard of [DrawBot](https://drawbot.com/) — another offroad vehicle — you may be wondering how Coldtype is different. The answer is that Coldtype provides a very different programming idiom, one based around creating and modifying structured data, rather than — as is common in most creative coding platforms (including DrawBot and Processing) — an idiom based around a metaphorical canvas that you render to directly.\\n\",\n    \"\\n\",\n    \"I should point out that DrawBot is fantastic and that Coldtype would not exist without DrawBot, mostly because using DrawBot was my first time driving in the typographical offroad. That said, Coldtype exists somewhat as a response to things I found awkward when programming long-form animations with DrawBot. (Also, you can use [DrawBot as a library from within Coldtype](/tutorials/drawbot.html).)\\n\",\n    \"\\n\",\n    \"## Why not HTML/CSS/JavaScript?\\n\",\n    \"\\n\",\n    \"I think since I started doing animations with Python a couple years ago (using DrawBot), typographic tools in JS have gotten a lot better, but I always found it awkward to program animations in JS, since I never found a good way to run a headless browser when I needed to rasterize frames for an animation. That said, the programming style of Coldtype is very influenced by JS programming patterns (like method-chaining and liberal use of anonymous functions), so if you're familiar with JS, you might feel at home writing a Coldtype program.\\n\",\n    \"\\n\",\n    \"## What about Adobe products?\\n\",\n    \"\\n\",\n    \"I’ve learned over the last few years to distrust any *Type Tool* in an Adobe product (or anywhere else). Yes, those can be very good — like HTML+CSS — for doing simple Latin-based typography for static designs. But then, all of a sudden, they are very bad. You can think of Adobe products as a train that you get on and you can fall asleep in a nice seat and the train will get you where you want to go, except when you wake up and realize you wanted to go somewhere the train doesn't go and you think *i guess i’ll walk there* (Walking in this metaphor is when you right click and hit *Convert to Outlines*.)\\n\",\n    \"\\n\",\n    \"Walking can be a lot of fun, and you get to see a lot. Drawing is a lot like walking. Fabulous exercise; great learning experience. But sometimes you want to get there faster or you want to go farther.\\n\",\n    \"\\n\",\n    \"## What can coldtype do?\\n\",\n    \"\\n\",\n    \"* [Vulfpeck, “LAX”](https://www.youtube.com/watch?v=NzxW8nxgENA)\\n\",\n    \"\\n\",\n    \"* [\\\"Buggin’ Out (Phife Dawg’s Verse)](https://vimeo.com/377148622)\\n\",\n    \"\\n\",\n    \"* [A 3D type specimen](https://vimeo.com/354292807)\\n\",\n    \"\\n\",\n    \"* [Goodhertz plugins](https://goodhertz.com)\\n\",\n    \"\\n\",\n    \"* Anything recent on [robstenson.com](https://robstenson.com)\\n\",\n    \"\\n\",\n    \"## How does coldtype rasterize graphics?\\n\",\n    \"\\n\",\n    \"Coldtype is written in a modular fashion, to allow rasterization/vectorization using a number of different backends. For most of its life before October 2020, I used Coldtype as a frontend to the DrawBot rasterizer (itself a frontend to the CoreGraphics rasterization engine), as well as a frontend for a custom JSON-serializer (used for Goodhertz plugins). You can still use Coldtype with DrawBot as the rasterizer (or with [DrawBot as a direct canvas](tutorials/drawbot.html)), but as of now, Coldtype by default rasterizes using the [skia-python](https://kyamagu.github.io/skia-python) package, which is cross-platform, quite fast, and has great support for image manipulation, via GL shaders.\\n\",\n    \"\\n\",\n    \"You can also use Coldtype to draw graphics directly with the skia-python package, as demonstrated in the `test/test_skia_direct.py` file in this repository.\\n\",\n    \"\\n\",\n    \"There is also support for (in varying degrees of quality): SVG, Cairo, Blender, and AxiDraw (a robotic drawing machine). (TODO add tutorial links for all of these, well except for Cairo, skia-python is just better than Cairo.)\\n\",\n    \"\\n\",\n    \"## Why “coldtype”?\\n\",\n    \"\\n\",\n    \"Coldtype refers to the short-lived era of early [semi-digital typesetting](https://en.wikipedia.org/wiki/Phototypesetting) (extending roughly from the late 1940s to the widespread adoption of personal computing in the early 1990s), during which time computers were used to control various analog photographic processes for setting type, technologies now known, usually, as “phototype,” but sometimes also known as “coldtype,” to distinguish it from hot-metal type, which was the previous standard.\\n\",\n    \"\\n\",\n    \"Phototype/coldtype was a hybrid moment in typographic history, and a fascinating one — 500 years of metal-type-based assumptions were upended all at once, as letters now did not need to live on a rectangular metal body, meaning they could get really close together, and designers could begin to think of type as a 2D material that could be layered and manipulated in new and exciting ways. To me, some of the spirit of that time has been lost with mainstream digital typesetting tools, which in many ways preserve more of the spirit of metal type than the spirit of phototype. That is, today's tools make it very easy to do many things, like set a great big column of text, but those same tools make it very difficult to do many other cool things, like pop a stylistic set on and off while varying a WDTH axis and re-ordering glyphs from left-to-right, so they overlap properly. This library is a way to make some of those difficult things easy; consequently, many of the easy things become difficult.\\n\",\n    \"\\n\",\n    \"## Is Coldtype capitalized?\\n\",\n    \"\\n\",\n    \"I can’t decide, as you may be able to tell from this documentation’s inconsistent capitalization scheme.\\n\",\n    \"\\n\",\n    \"## Who works on this?\\n\",\n    \"\\n\",\n    \"This library is mostly the work of me, [Rob Stenson](https://robstenson.com), but I want to acknowledge the work of some people and projects who’ve helped bring this project to life:\\n\",\n    \"\\n\",\n    \"* [Goodhertz](https://goodhertz.com) has supported the open-sourcing of this library, which was originally written to set text in audio plugin interfaces.\\n\",\n    \"\\n\",\n    \"* Coldtype Obviously is a open-source subset of the commercially-available font [Obviously](https://ohnotype.co/fonts/obviously) by OHno Type Co; s/o to James Edmondson for donating those 8 characters to this project.\\n\",\n    \"\\n\",\n    \"* Mutator Sans included for testing was written by Erik van Blokland, Copyright (c) 2017\\n\",\n    \"\\n\",\n    \"* Recursive Mono Casual Italic is an [open-source typeface](https://github.com/arrowtype/recursive) by [Arrow Type](https://www.arrowtype.com)\\n\",\n    \"\\n\",\n    \"* Coldtype also relies heavily on the incredible library [fontTools](https://github.com/fonttools/fonttools)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.11\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/cheatsheets/easing.md",
    "content": "---\ntitle: \"Easing Cheatsheet\"\n---\n\nIn the context of easing, the first letter of an easing mnemonic refers to the type of curve, listed from gentlest to steepest:\n\n* `q` == \"quadratic\"\n* `s` == \"sine\"\n* `c` == \"cubic\"\n* `e` == \"exponential\"\n\nThe ending of a mnemonic refers to the entry/exit of the curve:\n\n* `eio` == \"ease-in-out\"\n* `ei` == \"ease-in\"\n* `eo` == \"ease-out\"\n\nPut together you get can mnemonics like these:\n\n* `eeio` == \"exponential-ease-in-out\"\n* `ceo` == \"cubic-ease-out\"\n* `sei` == \"sine-ease-in\"\n\netc.\n\nGiven a frame object ``f`` in an ``@animation`` renderable:\n\n```python\nfrom coldtype import *\n\n@animation(timeline=60) # duration of 60 frames\ndef easing_example(f):\n    square = P(f.a.r.inset(300)).f(0)\n    return square.rotate(f.e(\"eeio\", 1, rng=(-10, 10)))\n```\n\nIn the line ``f.e(\"eeio\", 1, rng=(-10, 10))``, the ``1`` refers to the number of loops, and the ``rng=`` sets a range of values that will be traversed by the easing. By default, this value is rng=(0, 1), so the value would cycle back and forth between 0 and 1 **one-time** (loops=1) over the course of the animation's duration. If you set loops to 0, the value would traverse from 0 to 1 in only one direction and not return to 0 (meaning the value would \"pop\" back to 0 when the animation itself loops.)"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/cheatsheets/oneletter.md",
    "content": "---\ntitle: \"One-Letters Cheatsheet\"\n---\n\nHere are some common one-letter abbreviations you'll find throughout idiomatic Coldtype code.\n\n* ``e`` usually refers to \"easing\", as in the ``f.e`` function (frame.easing)\n* ``f`` usually refers, when used as a variable, to the ``Frame`` object that is passed to an ``@animation`` renderable.\n* ``.f`` refers, when used as a function, to *fill*, as in the fill color of a path\n* ``.s`` refers, when used as a function, to *stroke*, and ``.sw`` refers to *stroke width*\n* ``.fssw`` refers to fill-stroke-strokewidth as a single concept. This is something I use all the time in my own work, as I almost never set a stroke without also setting the fill (usually to -1 to be transparent).\n* ``r`` usually refers, when used as a variable, to the ``Rect`` object that is passed to a ``@renderable`` renderable.\n* ``f.a.r`` is a common shorthand for frame.animation.rect, i.e. the rectangle frame of an ``@animation`` renderable."
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/cheatsheets/rectangles.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\",\\n\",\n    \"    title=\\\"Rectangles Cheatsheet\\\",\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"A quick reference for `Rect`(angles)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype import Rect\\n\",\n    \"\\n\",\n    \"# N.B. Coldtype has point (0,0) at bottom-left\\n\",\n    \"\\n\",\n    \"# three equivalent ways to declare a rect\\n\",\n    \"\\n\",\n    \"a = Rect(0, 0, 1080, 1080) # x, y, w, h\\n\",\n    \"b = Rect(1080, 1080) # just 2 args will be w & h\\n\",\n    \"c = Rect([0, 0, 1080, 1080]) # can also be 1-arg (a list)\\n\",\n    \"\\n\",\n    \"# simple modifications\\n\",\n    \"\\n\",\n    \"r = Rect(1080, 1080)\\n\",\n    \"a = r.inset(100, 100) # 100-px padding on all sides\\n\",\n    \"b = r.inset(200, 50) # 200-px inset on left side and right side, 50-px inset on the top and bottom\\n\",\n    \"c = r.offset(10, 20) # 10-px translation on x-axis (i.e. to-the-right), 20-px translation on y-axis (i.e. up)\\n\",\n    \"\\n\",\n    \"# getting values from a rect\\n\",\n    \"\\n\",\n    \"r = Rect(1080, 1080)\\n\",\n    \"r.x # x coordinate of bottom-left\\n\",\n    \"r.y # y coordinate of bottom-left\\n\",\n    \"r.w # width\\n\",\n    \"r.h # height\\n\",\n    \"# -or-\\n\",\n    \"r[0] # x\\n\",\n    \"r[1] # y\\n\",\n    \"r[2] # w\\n\",\n    \"r[3] # h\\n\",\n    \"x, y, w, h = r\\n\",\n    \"\\n\",\n    \"# can be splat'd\\n\",\n    \"def use_rect(x, y, w, h):\\n\",\n    \"    return x + w, y + h\\n\",\n    \"use_rect(*r)\\n\",\n    \"\\n\",\n    \"# compass points\\n\",\n    \"\\n\",\n    \"r.pc # point-center\\n\",\n    \"r.pn # point-north\\n\",\n    \"r.ps # point-south\\n\",\n    \"r.pe, r.pw # point-east, point-west\\n\",\n    \"r.pne, r.pse, r.psw, r.pnw # northeast, southeast, southwest, northwest\\n\",\n    \"# all of these values yield a Point object, which has x/y props & behaves like a list\\n\",\n    \"r.pc.x # x coordinate of the center of the rect\\n\",\n    \"r.pc.y # y coordinate of the center of the rect\\n\",\n    \"r.pc[0] # x\\n\",\n    \"r.pc[1] # y\\n\",\n    \"\\n\",\n    \"# quick columns\\n\",\n    \"\\n\",\n    \"r = Rect(0, 0, 1080, 1080)\\n\",\n    \"a, b, c = r.subdivide(3, \\\"mnx\\\") # 'a' would be the first column, 'c' the last (left-to-right)\\n\",\n    \"a, b, c, d = r.subdivide(4, \\\"mxx\\\") # 'a' would be the first column, 'd' the last (right-to-right)\\n\",\n    \"columns = r.subdivide(8, \\\"W\\\") # columns holds a list of 8 columns arrayed west-to-east (left-to-right) (b/c of the W argument, equivalent to \\\"mnx\\\")\\n\",\n    \"\\n\",\n    \"# quick rows\\n\",\n    \"\\n\",\n    \"a, b, c, d = r.subdivide(4, \\\"mxy\\\") # 'a' would be the first row, 'd' the last (top-to-bottom)\\n\",\n    \"a, b, c, d = r.subdivide(4, \\\"mxy\\\") # 'a' would be the first row, 'd' the last (top-to-bottom)\\n\",\n    \"rows = r.subdivide(8, \\\"N\\\") # rows holds a list of 8 rows arrayed north-to-south (top-to-bottom) (b/c of the \\\"N\\\" argument, equivalent to \\\"mxy\\\")\\n\",\n    \"\\n\",\n    \"# quick slicing and dicing\\n\",\n    \"\\n\",\n    \"r = Rect(1080, 1080)\\n\",\n    \"r.take(100, \\\"W\\\") # 100px-wide rect sliced off the western half of the original rect, i.e. Rect(0, 0, 100, 1080)\\n\",\n    \"\\n\",\n    \"# \\\"edge\\\" shorthand\\n\",\n    \"\\n\",\n    \"\\\"mnx\\\" == \\\"W\\\" == \\\"⊢\\\" # aka minimum-x aka the left-hand edge of a rectangle, aka the western edge\\n\",\n    \"\\\"mny\\\" == \\\"S\\\" == \\\"⊥\\\" # aka minimum-y aka the bottom edge of a rectangle, aka the southern edge\\n\",\n    \"\\\"mxx\\\" == \\\"E\\\" == \\\"⊣\\\" # aka maximum-x aka the right-hand edge of a rectangle, aka the eastern edge\\n\",\n    \"\\\"mxy\\\" == \\\"N\\\" == \\\"⊤\\\" # aka maximum-y aka the top edge of a rectangle, aka the northern edge\\n\",\n    \"\\\"mdx\\\" == \\\"CX\\\" == \\\"⌶\\\" # aka middle-x aka the center vertical \\\"edge\\\", or line of a rectangle (a line going from the top to the bottom right down the middle)\\n\",\n    \"\\\"mdy\\\" == \\\"CY\\\" == \\\"Ｈ\\\" # aka middle-y aka the center horizontal \\\"edge\\\" of a rectangle (a line going from the left to the right right through the middle (separating the bottom half from the top half))\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/cheatsheets/text.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"Text Cheatsheet\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\"\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype import *\\n\",\n    \"\\n\",\n    \"# an exact path to a font file\\n\",\n    \"fnt = Font.Cacheable(\\\"/System/Library/Fonts/SFNS.ttf\\\")\\n\",\n    \"\\n\",\n    \"# listing fonts that match a pattern\\n\",\n    \"\\n\",\n    \"fnt = Font.List(\\\"Times\\\") # returns exact paths that can be passed to Font.Cacheable\\n\",\n    \"\\n\",\n    \"# finding and loading the first font matching a pattern\\n\",\n    \"\\n\",\n    \"fnt = Font.Find(\\\"Times\\\")\\n\",\n    \"\\n\",\n    \"# The StSt — the quickest way to get from plaintext to a vector/path representation of that text in a given font\\n\",\n    \"\\n\",\n    \"StSt(\\\"Text\\\", fnt, 100) # simplest StSt invocation\\n\",\n    \"\\n\",\n    \"# Building and aligning a StSt\\n\",\n    \"\\n\",\n    \"r = Rect(1080, 1080)\\n\",\n    \"(StSt(\\\"Text\\\", fnt, 100)\\n\",\n    \"    .align(r)) # center aligns\\n\",\n    \"\\n\",\n    \"(StSt(\\\"Text\\\", fnt, 100)\\n\",\n    \"    .align(r, \\\"mnx\\\", \\\"mny\\\")) # align to bottom-left\\n\",\n    \"\\n\",\n    \"(StSt(\\\"Text\\\", fnt, 100)\\n\",\n    \"    .align(r, \\\"⊢\\\", \\\"⊥\\\")) # also aligns to bottom-left\\n\",\n    \"\\n\",\n    \"(StSt(\\\"Text\\\", fnt, 100,\\n\",\n    \"    r=1)) # r=1 reverses direction of the glyphs\\n\",\n    \"\\n\",\n    \"# Variable fonts\\n\",\n    \"\\n\",\n    \"fnt = Font.Find(\\\"SFNS.ttf\\\")\\n\",\n    \"\\n\",\n    \"vtxt = (StSt(\\\"Variable\\\", fnt, 100,\\n\",\n    \"    wght=1, opsz=0)) # maximum weight, minimum optical size\\n\",\n    \"\\n\",\n    \"vtxt = (StSt(\\\"Variable\\\", fnt, 100,\\n\",\n    \"    wght=0, # minimum weight\\n\",\n    \"    opsz=1, # maximum optical size\\n\",\n    \"    ro=1, # remove the overlaps (useful for var fonts when applying a stroke)\\n\",\n    \"    ))\\n\",\n    \"\\n\",\n    \"# If your variable font has a width axis, you can pass a fit= argument to a StSt constructor in order to have it automatically fit to a given width — here we'll use the included Mutator Sans fitted to the \\n\",\n    \"\\n\",\n    \"fit_txt = (StSt(\\\"VARIABLE WIDTH\\\", Font.MutatorSans(), 100,\\n\",\n    \"    wdth=1, # fitting always goes from wide to narrow, so make sure to set to max wdth (unless you want it to never be that wide)\\n\",\n    \"    fit=r.w-100) # -100 is just some quick padding\\n\",\n    \"    .align(r))\\n\",\n    \"\\n\",\n    \"# Multi-line text\\n\",\n    \"# N.B. there is no line-breaking in Coldtype; all line-breaks must be manually done (or you can use drawBot as a package within coldtype to generate multi-line strings that can be vectorized with drawBot.BezierPath)\\n\",\n    \"\\n\",\n    \"txt = (StSt(\\\"Multi-\\\\nline\\\", fnt, 100, \\n\",\n    \"    leading=50) # a pixel amount between each line\\n\",\n    \"    .align(r))\\n\",\n    \"\\n\",\n    \"txt = (StSt(\\\"Multi-\\\\nline\\\", fnt, 100, \\n\",\n    \"    leading=50, xa=\\\"mnx\\\") # left align each line\\n\",\n    \"    .align(r))\\n\",\n    \"\\n\",\n    \"txt = (StSt(\\\"Multi-\\\\nline\\\", fnt, 100, \\n\",\n    \"    leading=50, xa=\\\"mxx\\\") # right align each line\\n\",\n    \"    .align(r))\\n\",\n    \"\\n\",\n    \"# If you want the text as a single vector (pen), you can do something like this:\\n\",\n    \"\\n\",\n    \"txt = txt.pen()\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/cheatsheets/viewer.md",
    "content": "---\ntitle: \"Viewer Cheatsheet\"\n---\n\nThe most common viewer shortcuts:\n\n* ``spacebar`` play the animation\n* ``<left>`` go back one frame\n* ``<right>`` go forward one frame\n* ``shift+<left>`` go back ten frames\n* ``shift+<right>`` go forward ten frames\n* ``a`` render all the frames of the animation to disk\n* ``cmd+a`` render just the current frame to disk\n* ``,`` display the rendered version of a frame (and hit ``,`` again to display the live version) — in general this is useful if you want to play the disk-rendered version of an animation (for playing back at correct framerate/speed if animation generation is complex & consequently not realtime)\n* ``.`` toggle audio support (if you have the ``[audio]`` extra successfully installed)\n* ``<home>`` go to frame 0\n* ``q`` quits viewer and kills running coldtype program (equivalent to ctrl-c in command-line or hitting the X in the viewer window)\n* ``r`` trigger an arbitrary ``release`` function defined in your source\n* ``b`` trigger an arbitrary ``build`` function defined in your source\n\nUtilities:\n\n* ``v`` opens the automatic timeline viewer (only applicable for animations, mostly used for MIDI and AsciiTimeline-based animations)\n* ``p`` prints the current tree\n* ``u`` loads the next file in the directory (sorted alphabetically)\n* ``y`` loads the previous file in the directory (sorted alphabetically)\n* ``s`` shows the current file output directory in the finder\n\n\n## Command-line window modifications\n\nTo \"pin\" the window to corner of your screen, use the window-pin ``-wp`` argument and pass a compass direction (NE, SE, SW, NW), i.e. ``coldtype my-program.py -wp SE`` to have the window appear in the south-east corner of your screen\n\nTo remove the window background and chrome and make the window itself completely transparent, pass ``-wt 1`` as an argument, i.e. ``coldtype my-program.py -wt 1``\n\nTo change the initial scale of the window, pass the preview-scale argument ``-ps 2`` (for example), to get a double-sized window, i.e. ``coldtype my-program.py -ps 2``\n\nTo change the opacity of your graphics displayed in the window, pass the window-opacity argument ``-wo 0.5`` (for example), to get a half-transparent window, i.e. ``coldtype my-program.py -wo 0.5``\n\n(All of these arguments can be combined, i.e. a window pinned to the south-west corner of your screen, with no background, 0.75 transparency, and a default size of 0.5x, would be: ``coldtype my-program.py -wt 1 -wp SW -wo 0.75 -ps 0.5``)"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/classes_functions.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"Classes & Functions\\\",\\n\",\n    \"    date=\\\"1/7/2023\\\",\\n\",\n    \"    blank=True,\\n\",\n    \")\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/install.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\",\\n\",\n    \"    title=\\\"Install\\\",\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"<iframe width=\\\"560\\\" height=\\\"315\\\" src=\\\"https://www.youtube.com/embed/hCGF6FZCSqc\\\" title=\\\"YouTube video player\\\" frameborder=\\\"0\\\" allow=\\\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\\\" allowfullscreen></iframe>\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"* Install a Python >= 3.7\\n\",\n    \"* If you don’t have a Python >= 3.7, I’d recommend the latest Python (available from [python.org/downloads](https://python.org/downloads)\\n\",\n    \"\\n\",\n    \"If you want to try coldtype in a blank virtual environment:\\n\",\n    \"\\n\",\n    \"Using a virtualenv (based on a python >= 3.7) (aka `python3.10 -m venv venv` and then `source venv/bin/activate`), run:\\n\",\n    \"\\n\",\n    \"* `pip install \\\"coldtype[viewer]\\\"`\\n\",\n    \"* `coldtype demo`\\n\",\n    \"\\n\",\n    \"That last command should pop up a window. If you hit the spacebar with that window focused, you should see an animation start playing.\\n\",\n    \"\\n\",\n    \"---\\n\",\n    \"\\n\",\n    \"To write your own script, make a python file in your repo, like *test.py*, and put some code in it, like:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype import *\\n\",\n    \"\\n\",\n    \"@renderable()\\n\",\n    \"def test(r):\\n\",\n    \"    return P().oval(r)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Then you can run that like so — `coldtype test.py` — and a large pink oval should pop up on your screen.\\n\",\n    \"\\n\",\n    \"You may also notice the command is still hanging, meaning it hasn't exited. So if you edit test.py and hit save, you should see the change immediately pop up in the same window. For instance, try insetting the oval and making it a different color, so that your code looks something like this:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype import *\\n\",\n    \"\\n\",\n    \"@renderable()\\n\",\n    \"def test(r):\\n\",\n    \"    return P().oval(r.inset(100)).f(hsl(0.8))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now the oval should have some padding and be purple-ish.\\n\",\n    \"\\n\",\n    \"To quit the running program, as with all CLI programs, you can hit *ctrl c* and that should kill the program. Or you can type *kill* into the command line while the program is running and it should have the same effect. (That’s not something that’ll usually work, but it works in coldtype.)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"name\": \"python\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/introduction.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'author': 'Rob Stenson', 'date': '1/6/2023', 'title': 'Introduction'}\"\n      ]\n     },\n     \"execution_count\": 1,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\",\\n\",\n    \"    title=\\\"Introduction\\\",\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Coldtype\\n\",\n    \"\\n\",\n    \"Coldtype is a cross-platform library for programming and animating display typography with Python.\\n\",\n    \"\\n\",\n    \"Put another way: do you want to make typographic graphics and animations with code? This is a good & idiosyncratic way to do that.\\n\",\n    \"\\n\",\n    \"🌋 **Disclaimer**: coldtype is alpha-quality software 🌋\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"TLDR (if you're using a virtualenv based on python >= 3.7):\\n\",\n    \"\\n\",\n    \"```\\n\",\n    \"pip install \\\"coldtype[viewer]\\\"\\n\",\n    \"coldtype demo\\n\",\n    \"```\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here’s the complete code and the animation it renders:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"\\n\",\n       \"        <video width=400.0 controls loop=true autoplay>\\n\",\n       \"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\n       \"        </video>\\n\",\n       \"        \"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from coldtype import *\\n\",\n    \"from coldtype.notebook import * #hide-publish\\n\",\n    \"\\n\",\n    \"@animation((800, 300), timeline=60, bg=1, render_show=1)\\n\",\n    \"def demo(f):\\n\",\n    \"    return (Glyphwise(\\\"COLDTYPE\\\", lambda x:\\n\",\n    \"        Style(Font.ColdtypeObviously(), 150\\n\",\n    \"            , wdth=f.adj(-x.i*15).e(\\\"eeo\\\", 1)))\\n\",\n    \"        .align(f.a.r)\\n\",\n    \"        .f(0))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Here’s an example of a coldtype program:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=350.0 src='data:image/png;base64,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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from coldtype import * #hide-publish\\n\",\n    \"from coldtype.notebook import *\\n\",\n    \"\\n\",\n    \"fnt = Font.ColdtypeObviously()\\n\",\n    \"\\n\",\n    \"@renderable((700, 350))\\n\",\n    \"def coldtype_simple(r):\\n\",\n    \"   return (StSt(\\\"COLDTYPE\\\", fnt, 350,\\n\",\n    \"         wdth=0, tu=20, r=1, rotate=10)\\n\",\n    \"      .align(r)\\n\",\n    \"      .f(hsl(0.65, 0.6)))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you’re familiar with other graphics programming libraries, that code snippet might seem a little odd, given that it’s **canvas-less** & highly **abbreviated**, with a idiomatic emphasis on **method-chaining** & **structured data** (which can make programming **animations** a lot easier and faster). *More on those bold words on the [about](/about.html) page.*\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.11.7\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/overview.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"Overview\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\",\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#hide-publish\\n\",\n    \"from coldtype.notebook import *\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Anatomy of a Coldtype Program\\n\",\n    \"\\n\",\n    \"When run locally with the coldtype viewer, a coldtype program is a source file, a Python file with a ``*.py`` file extension. Inside that file, you can write anything you want, but at the very least you'll need do two things:\\n\",\n    \"\\n\",\n    \"1. Import the coldtype library\\n\",\n    \"2. Define a renderable function\\n\",\n    \"\\n\",\n    \"So to get going from scratch, create a new Python source file, something like *anatomy.py* or whatever you want to call it.\\n\",\n    \"\\n\",\n    \"Then for the first line:\\n\",\n    \"\\n\",\n    \"```python\\n\",\n    \"from coldtype import *\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"(You could also do `import coldtype`, but for the examples in this documentation, `from coldtype import *` is the idiomatic import.)\\n\",\n    \"\\n\",\n    \"For the second requirement – **defining a renderable function** — all you need is a function that accepts a single argument, a `Rect`, like so:\\n\",\n    \"\\n\",\n    \"```python\\n\",\n    \"def show_something(r:Rect):\\n\",\n    \"    return P().rect(r)\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"If you followed the install instructions and have activated your virtual environment, you can now run this file from the command-line, like so:\\n\",\n    \"\\n\",\n    \"```\\n\",\n    \"coldtype anatomy.py\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"Unfortunately, you won't see anything other than a window that pops up and says: \\\"Nothing found.\\\"\\n\",\n    \"\\n\",\n    \"That's because we didn't tell the renderer that anything in our source file is `renderable`. We can remedy that situation by adding the `@renderable` decorator right above where we define our rendering function.\\n\",\n    \"\\n\",\n    \"So let’s create a new function and mark it as renderable.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=270.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAAIcCAYAAAC9/nd8AAAABHNCSVQICAgIfAhkiAAACRVJREFUeJzt1kEJACAAwEA1uc01xRDkLsGem2fsMwAAQut1AADwP8MBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkDMcAEDOcAAAOcMBAOQMBwCQMxwAQM5wAAA5wwEA5AwHAJAzHABAznAAADnDAQDkDAcAkLspkwa2RIGCXgAAAABJRU5ErkJggg=='/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"@renderable()\\n\",\n    \"def really_show_something(r:Rect):\\n\",\n    \"    return P().rect(r)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Now when you save the source file (no need to stop it and restart it on the command line), you should see a gigantic pink rectangle. If you try changing something about that rectangle, like adding `.f(hsl(random()))` to the end of the return statement, or change the `.rect` to an `.oval`, as soon as you save the source file, you should see changes in the viewer.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=270.0 src='data:image/png;base64,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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"@renderable()\\n\",\n    \"def really_show_something(r:Rect):\\n\",\n    \"    return P().oval(r).f(hsl(0.3))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"What about text?\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=400.0 src='data:image/png;base64,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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"@renderable((800, 300))\\n\",\n    \"def sample_text(r):\\n\",\n    \"    return P(\\n\",\n    \"        P().oval(r.inset(20)).f(hsl(random())),\\n\",\n    \"        StSt(\\\"COLDTYPE\\\",\\n\",\n    \"            Font.ColdtypeObviously(), 200,\\n\",\n    \"            wdth=0, tu=100, rotate=10)\\n\",\n    \"            .align(r)\\n\",\n    \"            .f(1))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"(Some of that text-setting code might seem a little bewildering, but all of it’s covered in the Text tutorial in this documentation.)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Workflow of a Coldtype Program\\n\",\n    \"\\n\",\n    \"At this point you might be wondering, *how do I save what's on screen to a file on my computer?*\\n\",\n    \"\\n\",\n    \"If you’re familiar with DrawBot, you might think you need to write some code to do that, but one of the core tenets of coldtype is that rendering and rasterizing are handled by the renderer, not by the source code. This makes some things that are easy in DrawBot difficult in Coldtype, but it also makes many things that are difficult in DrawBot extremely easy in Coldtype.\\n\",\n    \"\\n\",\n    \"If you have your program running, to render what you have so far to disk, you can focus on the Coldtype viewer window and hit the `a` key on your keyboard. That should print some things out on the command-line, including the path of a brand-new png file.\\n\",\n    \"\\n\",\n    \"A few notes:\\n\",\n    \"\\n\",\n    \"* The name of the file created is the name of the source file combined with the name of the function. So in this case, the `sample_text` function rendered to a png called `renders/overview_sample_text.png`. The `renders` folder is automatically created by the renderer. (All of this can be customized, but this is the default behavior for all non-animation graphics.)\\n\",\n    \"\\n\",\n    \"* `a` stands for \\\"all,\\\" as in `render-all`. In Coldtype there is a distinction between rendering all of what a file represents, versus just a segment (workarea) of what a file represents. If you're coding a small number of static graphics like the pink rectangle in our source file, the distinction between render-all and render-workarea is basically meaningless, because it takes such a short amount of time to render everything. But when you’re working on an animation — when you’re rendering 3000 frames and each frame takes a few milliseconds to render — the distinction becomes crucial.\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.5\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/animation.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {},\n      \"outputs\": [],\n      \"source\": [\n        \"dict(\\n\",\n        \"    author=\\\"Rob Stenson\\\",\\n\",\n        \"    title=\\\"Animation\\\",\\n\",\n        \"    date=\\\"11/29/2022\\\"\\n\",\n        \")\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"QC6cYncZTbSM\"\n      },\n      \"source\": [\n        \"#### __N.B.__\\n\",\n        \"\\n\",\n        \"There are lots of examples of somewhat complex animation in the [examples/animations](https://github.com/goodhertz/coldtype/tree/main/examples/animations>) folder in the coldtype repository, but here are some simpler (and shorter) ones, that demonstrate the fundamentals of how animations are built in coldtype.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 1,\n      \"metadata\": {\n        \"id\": \"vQqKKBu6fSZh\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"#hide-publish\\n\",\n        \"%pip install -q coldtype[notebook]\\n\",\n        \"#!pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\n        \"from coldtype.notebook import *\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"CwcUbsLlm-dr\"\n      },\n      \"source\": [\n        \"## A circle moving\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 3,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 323,\n          \"referenced_widgets\": [\n            \"bfdb2e3af11e4420aa5fee146015a813\",\n            \"ba7d48de62b54b328aded13f6a33db50\",\n            \"633e32188b994141ace0d5a191307168\",\n            \"560eba413abb4bddbe32ecbbbecd2216\",\n            \"44a8dcc25bf1472cbf16394402c8d2e9\",\n            \"06f952bd1d01459884e9fb9667f99b29\",\n            \"49c00b6f011942fea03698c27a3f6780\"\n          ]\n        },\n        \"id\": \"A8_pGQ6vfe7j\",\n        \"outputId\": \"70ff1076-ea0e-415b-a548-70f48b768714\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"\\n\",\n              \"        <video width=270.0 controls loop=true autoplay>\\n\",\n              \"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\n              \"        </video>\\n\",\n              \"        \"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@animation((540, 540), timeline=60, bg=1, render_show=1)\\n\",\n        \"def circle(f):\\n\",\n        \"    return (P().oval(f.a.r.inset(120)\\n\",\n        \"        .offset(f.e(\\\"eei\\\", 1, rng=(-f.a.r.w/2, f.a.r.w/2)), 0))\\n\",\n        \"        .f(hsl(0.7)))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ckjOCzI3np1A\"\n      },\n      \"source\": [\n        \"## A letter flying\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 4,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 323,\n          \"referenced_widgets\": [\n            \"04861d0eaee24b78a8bfceb61f2a73f8\",\n            \"96ca4d76d285483686346f2cf65eb04f\",\n            \"20edb4cc9ab24fa69dbcab8dc822a704\",\n            \"db671e01989642d4860294466cf1a3de\",\n            \"a537f66528c74e239f98d73ed4d7693e\",\n            \"d9b1902acbf442d6a4bd223b7bf6bd08\",\n            \"6e6e06c1613141ba9a182c038076aa3d\"\n          ]\n        },\n        \"id\": \"CH7Y341Ffr_M\",\n        \"outputId\": \"b2e59956-9279-4abd-d11c-f6692d35e1fe\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"\\n\",\n              \"        <video width=270.0 controls loop=true autoplay>\\n\",\n              \"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\n              \"        </video>\\n\",\n              \"        \"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@animation((540, 540), bg=0, timeline=24, render_show=1)\\n\",\n        \"def flying(f):\\n\",\n        \"    return P(\\n\",\n        \"        P().rect(f.a.r)\\n\",\n        \"            .f(hsl(f.e(\\\"qeio\\\", 0))),\\n\",\n        \"        StSt(\\\"A\\\", Font.MutatorSans(),\\n\",\n        \"            50, wght=0.2)\\n\",\n        \"            .align(f.a.r)\\n\",\n        \"            .scale(f.e(\\\"eei\\\", 0, rng=(1, 120)))\\n\",\n        \"            .rotate(f.e(\\\"qeio\\\", 0, rng=(0, 360)))\\n\",\n        \"            .f(1))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"yl-jQtUqqiGU\"\n      },\n      \"source\": [\n        \"## Simple variation\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 5,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 323,\n          \"referenced_widgets\": [\n            \"437ab795916e455385b0490a5cbb141e\",\n            \"cb6e231ea4ec42fa81f58c9543577a64\",\n            \"ac336c4a53bb416eb5ca9d80cd510afe\",\n            \"69ef1749f6ee433688087f0faba7d7bd\",\n            \"4dc0a2c7c57c401baa4feb035166eaff\",\n            \"a47e01d7757e42ebb4d194c998683c36\",\n            \"8847a2a280b840198999a43a90c43e7a\"\n          ]\n        },\n        \"id\": \"KUH3FPI0qHbN\",\n        \"outputId\": \"70491080-3e9e-453d-bf4d-837f4fdd36c5\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"\\n\",\n              \"        <video width=540.0 controls loop=true autoplay>\\n\",\n              \"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\n              \"        </video>\\n\",\n              \"        \"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@animation((1080, 540), timeline=50, bg=hsl(0.4), render_show=True)\\n\",\n        \"def vari(f):\\n\",\n        \"    return (StSt(\\\"CDELOPTY\\\",\\n\",\n        \"        Font.ColdtypeObviously(), 200,\\n\",\n        \"        wdth=f.e(\\\"eeio\\\", 1))\\n\",\n        \"        .align(f.a.r)\\n\",\n        \"        .f(1))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"QvTOQcXTp8Dh\"\n      },\n      \"source\": [\n        \"## A variable wave\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 6,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 323,\n          \"referenced_widgets\": [\n            \"c75724b103154e1eb9ada5bd8089ffed\",\n            \"6a31dbb7de73486e8a788d1c14ff257a\",\n            \"1b94fc58721349d2b61146a70d7b0944\",\n            \"d2d5a6f4271f4c0dabed5784647c110b\",\n            \"cd5b60363e984fa680dff5204402d4ac\",\n            \"ea7aeb9bd43940a2aa9aa1fe0e63bcc6\",\n            \"0f6f2c236fdc486b811f8c0c56e3ad7b\"\n          ]\n        },\n        \"id\": \"4E1F649RoK4C\",\n        \"outputId\": \"3e45a785-1499-4722-a830-f4f94f92ed13\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"\\n\",\n              \"        <video width=540.0 controls loop=true autoplay>\\n\",\n              \"            <source src=\\\"data:video/mp4;base64,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\\\" type=\\\"video/mp4\\\">\\n\",\n              \"        </video>\\n\",\n              \"        \"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@animation((1080, 540), timeline=50, bg=hsl(0.6), render_show=1)\\n\",\n        \"def wave(f):\\n\",\n        \"    return (Glyphwise(\\\"COLDTYPE\\\", lambda g:\\n\",\n        \"        Style(Font.ColdtypeObviously(), 200,\\n\",\n        \"              wdth=f.adj(-g.i*3).e(\\\"seio\\\", 1)))\\n\",\n        \"        .align(f.a.r)\\n\",\n        \"        .f(1))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"NgNsQgpuS_Hk\"\n      },\n      \"source\": [\n        \"## Note on running Coldtype locally\\n\",\n        \"\\n\",\n        \"To generate a full set of frames for a coldtype animation on your local computer (as opposed to here on Colab), hit the `a` key in the viewer app — once you do, you should see the command line prompt printing out a bunch of information about frames being rendered. (Also, once you do that, you can hit `shift+space` to preview the animation in real time at the correct frame rate, using the cached frames.)\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"colab\": {\n      \"collapsed_sections\": [],\n      \"name\": \"Coldtype Animation Tutorial.ipynb\",\n      \"provenance\": []\n    },\n    \"kernelspec\": {\n      \"display_name\": \"Python 3.10.5 ('venv': venv)\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.10.5\"\n    },\n    \"vscode\": {\n      \"interpreter\": {\n        \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n      }\n    },\n    \"widgets\": {\n      \"application/vnd.jupyter.widget-state+json\": {\n        \"02a14a2d803346758db76bd32a576180\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_5f8f603c45754f219d151f8afdb13e5d\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_d8ca640546dc4f67901782e647a3d518\",\n            \"value\": \" 49/50 [00:03&lt;00:00, 14.18it/s]\"\n          }\n        },\n        \"04861d0eaee24b78a8bfceb61f2a73f8\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"VBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [\n              \"widget-interact\"\n            ],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"VBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"VBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_96ca4d76d285483686346f2cf65eb04f\",\n              \"IPY_MODEL_20edb4cc9ab24fa69dbcab8dc822a704\"\n            ],\n            \"layout\": \"IPY_MODEL_db671e01989642d4860294466cf1a3de\"\n          }\n        },\n        \"067c65a794b342cc94c879508bcdb3c2\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"ProgressStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"ProgressStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"bar_color\": null,\n            \"description_width\": \"\"\n          }\n        },\n        \"06f952bd1d01459884e9fb9667f99b29\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"SliderStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"SliderStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\",\n            \"handle_color\": null\n          }\n        },\n        \"0aff7a198fbd457794be9368c03c5720\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"0f6f2c236fdc486b811f8c0c56e3ad7b\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"197e3308b173413f90434ab3516242c6\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_c6bb573528334cd3be0d344b9fce1728\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_be860646020445dfbc6878ce5f3da130\",\n            \"value\": \" 49/50 [00:02&lt;00:00, 19.50it/s]\"\n          }\n        },\n        \"1b94fc58721349d2b61146a70d7b0944\": {\n          \"model_module\": \"@jupyter-widgets/output\",\n          \"model_module_version\": \"1.0.0\",\n          \"model_name\": \"OutputModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/output\",\n            \"_model_module_version\": \"1.0.0\",\n            \"_model_name\": \"OutputModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/output\",\n            \"_view_module_version\": \"1.0.0\",\n            \"_view_name\": \"OutputView\",\n            \"layout\": \"IPY_MODEL_0f6f2c236fdc486b811f8c0c56e3ad7b\",\n            \"msg_id\": \"\",\n            \"outputs\": [\n              {\n                \"data\": {\n                  \"text/html\": \"<img width=540.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAIcCAYAAAAT/R6VAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xl0nPtd5/lvLSqV9s2LLNuSbMu2vO/XN3dLCJCEsAUIkGYChOnJcOZ095mZpumBGZpmCUzoPsPpOTPD0EwDARoI5MKhQwP3JmS7+/W+yItsy5JtWYutfatSqZb5Q5FVy1NVT5V+z/J76v06h0NULpWeq/V5Ps938X3o576REgAAAAAAAI35nT4AAAAAAACAjSLgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPgAAAAAAAA2iPg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4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2ApPs9eQM3t0tAAAAAElFTkSuQmCC'/>\",\n                  \"text/plain\": \"<IPython.core.display.HTML object>\"\n                },\n                \"metadata\": {},\n                \"output_type\": \"display_data\"\n              }\n            ]\n          }\n        },\n        \"1c82e07be30542a395dba7927cfa729c\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"20edb4cc9ab24fa69dbcab8dc822a704\": {\n          \"model_module\": \"@jupyter-widgets/output\",\n          \"model_module_version\": \"1.0.0\",\n          \"model_name\": \"OutputModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/output\",\n            \"_model_module_version\": \"1.0.0\",\n            \"_model_name\": \"OutputModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/output\",\n            \"_view_module_version\": \"1.0.0\",\n            \"_view_name\": \"OutputView\",\n            \"layout\": \"IPY_MODEL_6e6e06c1613141ba9a182c038076aa3d\",\n            \"msg_id\": \"\",\n            \"outputs\": [\n              {\n                \"data\": {\n                  \"text/html\": \"<img width=270.0 src='data:image/png;base64,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'/>\",\n                  \"text/plain\": \"<IPython.core.display.HTML object>\"\n                },\n                \"metadata\": {},\n                \"output_type\": \"display_data\"\n              }\n            ]\n          }\n        },\n        \"314f2b895cd14b1db927c05420430202\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"3c9a95ff656f47a9945eedadaf018a0d\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"3f0d562e20494f169b1f14682aced177\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_74030c01b4964bc091ec673b48278993\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_3c9a95ff656f47a9945eedadaf018a0d\",\n            \"value\": \" 97%\"\n          }\n        },\n        \"422e00cbb23546faa5c065c9e13e83eb\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"43308ade94d448c0aaf5bd71b75a9fed\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"437ab795916e455385b0490a5cbb141e\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"VBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [\n              \"widget-interact\"\n            ],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"VBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"VBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_cb6e231ea4ec42fa81f58c9543577a64\",\n              \"IPY_MODEL_ac336c4a53bb416eb5ca9d80cd510afe\"\n            ],\n            \"layout\": \"IPY_MODEL_69ef1749f6ee433688087f0faba7d7bd\"\n          }\n        },\n        \"44a8dcc25bf1472cbf16394402c8d2e9\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"49c00b6f011942fea03698c27a3f6780\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"4cbb64a73c374eb18a6dd48b338051c2\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"4dc0a2c7c57c401baa4feb035166eaff\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"4e431b5a4e474bd7b3f72b4c660c2711\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"ProgressStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"ProgressStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"bar_color\": null,\n            \"description_width\": \"\"\n          }\n        },\n        \"53aa89214ad74b078fc5b877cfd085e8\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_e20317954dd94a2689c581589aab0c21\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_f6c9fd24875a42fe9846adbc42ada232\",\n            \"value\": \"100%\"\n          }\n        },\n        \"55d05667c1ea44b78281c8cdaa7d5b6f\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_9eb8b3259aa04b5089e688ea1649458d\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_422e00cbb23546faa5c065c9e13e83eb\",\n            \"value\": \" 98%\"\n          }\n        },\n        \"560eba413abb4bddbe32ecbbbecd2216\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"5a52b2c9de8149ab96d47eac2361c8b1\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"ProgressStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"ProgressStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"bar_color\": null,\n            \"description_width\": \"\"\n          }\n        },\n        \"5f8f603c45754f219d151f8afdb13e5d\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"633e32188b994141ace0d5a191307168\": {\n          \"model_module\": \"@jupyter-widgets/output\",\n          \"model_module_version\": \"1.0.0\",\n          \"model_name\": \"OutputModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/output\",\n            \"_model_module_version\": \"1.0.0\",\n            \"_model_name\": \"OutputModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/output\",\n            \"_view_module_version\": \"1.0.0\",\n            \"_view_name\": \"OutputView\",\n            \"layout\": \"IPY_MODEL_49c00b6f011942fea03698c27a3f6780\",\n            \"msg_id\": \"\",\n            \"outputs\": [\n              {\n                \"data\": {\n                  \"text/html\": \"<img width=270.0 src='data:image/png;base64,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'/>\",\n                  \"text/plain\": \"<IPython.core.display.HTML object>\"\n                },\n                \"metadata\": {},\n                \"output_type\": \"display_data\"\n              }\n            ]\n          }\n        },\n        \"69ef1749f6ee433688087f0faba7d7bd\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"6a24d7d5acd340768e625fb7fbc239fe\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_d300c9571b214fbcbe68c7f8a93d3119\",\n              \"IPY_MODEL_7a2889dc6ad54326892560057f177caf\",\n              \"IPY_MODEL_197e3308b173413f90434ab3516242c6\"\n            ],\n            \"layout\": \"IPY_MODEL_a115c437fb394320b0da2cb7163cfdb0\"\n          }\n        },\n        \"6a31dbb7de73486e8a788d1c14ff257a\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"IntSliderModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"IntSliderModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"IntSliderView\",\n            \"continuous_update\": false,\n            \"description\": \"f.i\",\n            \"description_tooltip\": null,\n            \"disabled\": false,\n            \"layout\": \"IPY_MODEL_cd5b60363e984fa680dff5204402d4ac\",\n            \"max\": 49,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"readout\": true,\n            \"readout_format\": \"d\",\n            \"step\": 1,\n            \"style\": \"IPY_MODEL_ea7aeb9bd43940a2aa9aa1fe0e63bcc6\",\n            \"value\": 0\n          }\n        },\n        \"6e6e06c1613141ba9a182c038076aa3d\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"74030c01b4964bc091ec673b48278993\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"77c5bf8c053d477c888f6717bda13cfa\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_d44bb7280c134550bef865aae512f4c6\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_d1ddc4ef041f4621b4296af8833d9f20\",\n            \"value\": \" 24/24 [00:00&lt;00:00, 37.78it/s]\"\n          }\n        },\n        \"7a2889dc6ad54326892560057f177caf\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"FloatProgressModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"FloatProgressModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"ProgressView\",\n            \"bar_style\": \"\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_43308ade94d448c0aaf5bd71b75a9fed\",\n            \"max\": 50,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"style\": \"IPY_MODEL_5a52b2c9de8149ab96d47eac2361c8b1\",\n            \"value\": 50\n          }\n        },\n        \"8847a2a280b840198999a43a90c43e7a\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"888cfb6ab4464a8e9770167948beaba7\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"FloatProgressModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"FloatProgressModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"ProgressView\",\n            \"bar_style\": \"\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_1c82e07be30542a395dba7927cfa729c\",\n            \"max\": 24,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"style\": \"IPY_MODEL_067c65a794b342cc94c879508bcdb3c2\",\n            \"value\": 24\n          }\n        },\n        \"8ccc9578378f4c9ab705f74788d596d1\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"941b6cfd0beb474288cbe7ec85301dab\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"FloatProgressModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"FloatProgressModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"ProgressView\",\n            \"bar_style\": \"\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_0aff7a198fbd457794be9368c03c5720\",\n            \"max\": 60,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"style\": \"IPY_MODEL_4e431b5a4e474bd7b3f72b4c660c2711\",\n            \"value\": 60\n          }\n        },\n        \"96ca4d76d285483686346f2cf65eb04f\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"IntSliderModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"IntSliderModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"IntSliderView\",\n            \"continuous_update\": false,\n            \"description\": \"f.i\",\n            \"description_tooltip\": null,\n            \"disabled\": false,\n            \"layout\": \"IPY_MODEL_a537f66528c74e239f98d73ed4d7693e\",\n            \"max\": 23,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"readout\": true,\n            \"readout_format\": \"d\",\n            \"step\": 1,\n            \"style\": \"IPY_MODEL_d9b1902acbf442d6a4bd223b7bf6bd08\",\n            \"value\": 23\n          }\n        },\n        \"981e9cd4af5b4e119115f5b8911c5c24\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"9c27177f679f41e899d697ab7816a107\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"ProgressStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"ProgressStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"bar_color\": null,\n            \"description_width\": \"\"\n          }\n        },\n        \"9eb8b3259aa04b5089e688ea1649458d\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"a115c437fb394320b0da2cb7163cfdb0\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"a47e01d7757e42ebb4d194c998683c36\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"SliderStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"SliderStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\",\n            \"handle_color\": null\n          }\n        },\n        \"a537f66528c74e239f98d73ed4d7693e\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"ac336c4a53bb416eb5ca9d80cd510afe\": {\n          \"model_module\": \"@jupyter-widgets/output\",\n          \"model_module_version\": \"1.0.0\",\n          \"model_name\": \"OutputModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/output\",\n            \"_model_module_version\": \"1.0.0\",\n            \"_model_name\": \"OutputModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/output\",\n            \"_view_module_version\": \"1.0.0\",\n            \"_view_name\": \"OutputView\",\n            \"layout\": \"IPY_MODEL_8847a2a280b840198999a43a90c43e7a\",\n            \"msg_id\": \"\",\n            \"outputs\": [\n              {\n                \"data\": {\n                  \"text/html\": \"<img width=540.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAIcCAYAAAAT/R6VAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xl0ZGle3vknQhFSSAqtqUwpdyn3fa2s6qW6aKAbGLPYxtN4sLHhDDY2ZwaP5zBjH+Bgexh7fGzw8YwH28eHYWkMPTYNuIFmKLoN1UtV15K7ct8zlZJy1RZaIhTr/JEVyntvLIqI+96IuKXv56+KkPTGLS3ddZ94f88b+PRbP50TAAAAAACAjwUbfQEAAAAAAABuEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAAAADA9wg4AAAAAACA7xFwAAAAAAAA3yPgAAAAAAAAvkfAAQAAAAAAfI+AAwAAAAAA+B4BBwAAAAAA8D0CDgAAAAAA4HsEHAAAAAAAwPcIOAAAAAAAgO8RcAAAAAAAAN8j4AAAAAAAAL5HwAEAAAAAAHyPgAMAAAAAAPgeAQcAAAAAAPA9Ag4AAAAAAOB7BBwAAAAAAMD3CDgAAAAAAIDvEXAAAAAAAADfI+AAAAAAAAC+R8ABAAAAAAB8j4ADAAAAAAD4HgEHAAAAAADwPQIOAAAAAADgewQcAAAA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BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAPcEBAAAA7AkOAAAAYE9wAAAAAHuCAwAAANgTHAAAAMCe4AAAAAD2BAcAAACwJzgAAACAvQAljaFUd6vwWwAAAABJRU5ErkJggg=='/>\",\n                  \"text/plain\": \"<IPython.core.display.HTML object>\"\n                },\n                \"metadata\": {},\n                \"output_type\": \"display_data\"\n              }\n            ]\n          }\n        },\n        \"ae7906dad19d4e5a8dd98bb089fcf174\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_3f0d562e20494f169b1f14682aced177\",\n              \"IPY_MODEL_941b6cfd0beb474288cbe7ec85301dab\",\n              \"IPY_MODEL_dd6bba0ccbed4a2e957d6410c3a46cf0\"\n            ],\n            \"layout\": \"IPY_MODEL_4cbb64a73c374eb18a6dd48b338051c2\"\n          }\n        },\n        \"b127b473785145859c09a4252584e587\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"b910bfa8acaa4a51af94cc7d38ff9d13\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"ba7d48de62b54b328aded13f6a33db50\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"IntSliderModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"IntSliderModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"IntSliderView\",\n            \"continuous_update\": false,\n            \"description\": \"f.i\",\n            \"description_tooltip\": null,\n            \"disabled\": false,\n            \"layout\": \"IPY_MODEL_44a8dcc25bf1472cbf16394402c8d2e9\",\n            \"max\": 59,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"readout\": true,\n            \"readout_format\": \"d\",\n            \"step\": 1,\n            \"style\": \"IPY_MODEL_06f952bd1d01459884e9fb9667f99b29\",\n            \"value\": 0\n          }\n        },\n        \"be860646020445dfbc6878ce5f3da130\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"bfdb2e3af11e4420aa5fee146015a813\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"VBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [\n              \"widget-interact\"\n            ],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"VBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"VBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_ba7d48de62b54b328aded13f6a33db50\",\n              \"IPY_MODEL_633e32188b994141ace0d5a191307168\"\n            ],\n            \"layout\": \"IPY_MODEL_560eba413abb4bddbe32ecbbbecd2216\"\n          }\n        },\n        \"c6bb573528334cd3be0d344b9fce1728\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"c75724b103154e1eb9ada5bd8089ffed\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"VBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [\n              \"widget-interact\"\n            ],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"VBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"VBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_6a31dbb7de73486e8a788d1c14ff257a\",\n              \"IPY_MODEL_1b94fc58721349d2b61146a70d7b0944\"\n            ],\n            \"layout\": \"IPY_MODEL_d2d5a6f4271f4c0dabed5784647c110b\"\n          }\n        },\n        \"cb6e231ea4ec42fa81f58c9543577a64\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"IntSliderModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"IntSliderModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"IntSliderView\",\n            \"continuous_update\": false,\n            \"description\": \"f.i\",\n            \"description_tooltip\": null,\n            \"disabled\": false,\n            \"layout\": \"IPY_MODEL_4dc0a2c7c57c401baa4feb035166eaff\",\n            \"max\": 49,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"readout\": true,\n            \"readout_format\": \"d\",\n            \"step\": 1,\n            \"style\": \"IPY_MODEL_a47e01d7757e42ebb4d194c998683c36\",\n            \"value\": 0\n          }\n        },\n        \"cd5b60363e984fa680dff5204402d4ac\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"cd94402037b44ec6bc759085d156dcde\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"d1ddc4ef041f4621b4296af8833d9f20\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"d2d5a6f4271f4c0dabed5784647c110b\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"d300c9571b214fbcbe68c7f8a93d3119\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_ddf633f6286d47e1bd2e8f16dadaa9e7\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_314f2b895cd14b1db927c05420430202\",\n            \"value\": \" 98%\"\n          }\n        },\n        \"d44bb7280c134550bef865aae512f4c6\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"d577385865e24560a43faf19daabd25c\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_53aa89214ad74b078fc5b877cfd085e8\",\n              \"IPY_MODEL_888cfb6ab4464a8e9770167948beaba7\",\n              \"IPY_MODEL_77c5bf8c053d477c888f6717bda13cfa\"\n            ],\n            \"layout\": \"IPY_MODEL_b127b473785145859c09a4252584e587\"\n          }\n        },\n        \"d6be721629d144709382f06237dbe853\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"FloatProgressModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"FloatProgressModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"ProgressView\",\n            \"bar_style\": \"\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_b910bfa8acaa4a51af94cc7d38ff9d13\",\n            \"max\": 50,\n            \"min\": 0,\n            \"orientation\": \"horizontal\",\n            \"style\": \"IPY_MODEL_9c27177f679f41e899d697ab7816a107\",\n            \"value\": 50\n          }\n        },\n        \"d8ca640546dc4f67901782e647a3d518\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"d9b1902acbf442d6a4bd223b7bf6bd08\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"SliderStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"SliderStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\",\n            \"handle_color\": null\n          }\n        },\n        \"db671e01989642d4860294466cf1a3de\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"dd6bba0ccbed4a2e957d6410c3a46cf0\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HTMLModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HTMLModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HTMLView\",\n            \"description\": \"\",\n            \"description_tooltip\": null,\n            \"layout\": \"IPY_MODEL_8ccc9578378f4c9ab705f74788d596d1\",\n            \"placeholder\": \"​\",\n            \"style\": \"IPY_MODEL_cd94402037b44ec6bc759085d156dcde\",\n            \"value\": \" 58/60 [00:02&lt;00:00, 23.74it/s]\"\n          }\n        },\n        \"ddf633f6286d47e1bd2e8f16dadaa9e7\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"e20317954dd94a2689c581589aab0c21\": {\n          \"model_module\": \"@jupyter-widgets/base\",\n          \"model_module_version\": \"1.2.0\",\n          \"model_name\": \"LayoutModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/base\",\n            \"_model_module_version\": \"1.2.0\",\n            \"_model_name\": \"LayoutModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"LayoutView\",\n            \"align_content\": null,\n            \"align_items\": null,\n            \"align_self\": null,\n            \"border\": null,\n            \"bottom\": null,\n            \"display\": null,\n            \"flex\": null,\n            \"flex_flow\": null,\n            \"grid_area\": null,\n            \"grid_auto_columns\": null,\n            \"grid_auto_flow\": null,\n            \"grid_auto_rows\": null,\n            \"grid_column\": null,\n            \"grid_gap\": null,\n            \"grid_row\": null,\n            \"grid_template_areas\": null,\n            \"grid_template_columns\": null,\n            \"grid_template_rows\": null,\n            \"height\": null,\n            \"justify_content\": null,\n            \"justify_items\": null,\n            \"left\": null,\n            \"margin\": null,\n            \"max_height\": null,\n            \"max_width\": null,\n            \"min_height\": null,\n            \"min_width\": null,\n            \"object_fit\": null,\n            \"object_position\": null,\n            \"order\": null,\n            \"overflow\": null,\n            \"overflow_x\": null,\n            \"overflow_y\": null,\n            \"padding\": null,\n            \"right\": null,\n            \"top\": null,\n            \"visibility\": null,\n            \"width\": null\n          }\n        },\n        \"ea7aeb9bd43940a2aa9aa1fe0e63bcc6\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"SliderStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"SliderStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\",\n            \"handle_color\": null\n          }\n        },\n        \"f6c9fd24875a42fe9846adbc42ada232\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"DescriptionStyleModel\",\n          \"state\": {\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"DescriptionStyleModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/base\",\n            \"_view_module_version\": \"1.2.0\",\n            \"_view_name\": \"StyleView\",\n            \"description_width\": \"\"\n          }\n        },\n        \"ff696df1e2b74b5f9fd871d850e0c6f9\": {\n          \"model_module\": \"@jupyter-widgets/controls\",\n          \"model_module_version\": \"1.5.0\",\n          \"model_name\": \"HBoxModel\",\n          \"state\": {\n            \"_dom_classes\": [],\n            \"_model_module\": \"@jupyter-widgets/controls\",\n            \"_model_module_version\": \"1.5.0\",\n            \"_model_name\": \"HBoxModel\",\n            \"_view_count\": null,\n            \"_view_module\": \"@jupyter-widgets/controls\",\n            \"_view_module_version\": \"1.5.0\",\n            \"_view_name\": \"HBoxView\",\n            \"box_style\": \"\",\n            \"children\": [\n              \"IPY_MODEL_55d05667c1ea44b78281c8cdaa7d5b6f\",\n              \"IPY_MODEL_d6be721629d144709382f06237dbe853\",\n              \"IPY_MODEL_02a14a2d803346758db76bd32a576180\"\n            ],\n            \"layout\": \"IPY_MODEL_981e9cd4af5b4e119115f5b8911c5c24\"\n          }\n        }\n      }\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/blender.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'author': 'Rob Stenson', 'title': 'Blender', 'date': '1/9/2023'}\"\n      ]\n     },\n     \"execution_count\": 6,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"Blender\\\",\\n\",\n    \"    date=\\\"1/9/2023\\\",\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"#hide-publish\\n\",\n    \"from coldtype.notebook import *\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Behind the scenes, Coldtype uses the Skia library to rasterize two-dimensional vectors. But what if we want to rasterize *three-dimensional* graphics? One option is to use Blender.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"\\n\",\n    \"Because Blender has an incredible Python API, it's not too difficult to use it programmatically — i.e. to write a normal Coldtype script, mark a few things (with metadata specific to Blender), and then let Blender & Coldtype take care of the translation to three dimensions. Here's an example:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype.blender import *\\n\",\n    \"\\n\",\n    \"fnt = Font.Find(\\\"SwearCilatiVariable\\\")\\n\",\n    \"\\n\",\n    \"@b3d_animation(timeline=60)\\n\",\n    \"def varfont(f):\\n\",\n    \"    return (Glyphwise(\\\"Vari\\\", lambda g:\\n\",\n    \"        Style(fnt, 325,\\n\",\n    \"            opsz=f.adj(-g.i*5).e(\\\"seio\\\", 1, rng=(0.98, 0)),\\n\",\n    \"            wght=f.adj(-g.i*15).e(\\\"seio\\\", 1, rng=(0.98, 0))\\n\",\n    \"            ))\\n\",\n    \"        .align(f.a.r)\\n\",\n    \"        .mapv(lambda i, p: p\\n\",\n    \"            .ch(b3d(lambda bp: bp\\n\",\n    \"                .extrude(f.adj(-i*5)\\n\",\n    \"                    .e(\\\"ceio\\\", 1, rng=(0.015, 3)))))))\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Running Code in Blender\\n\",\n    \"\\n\",\n    \"First off, your virtual environment needs to be built with the same version of Python as the Blender version you’re targeting.\\n\",\n    \"\\n\",\n    \"Behind the scenes, Coldtype uses a tool called `b3denv` to communicate with Blender, and `b3denv` — installed as a dependency of Coldtype — makes it easy to create a virtual environment using the Python bundled with Blender.\\n\",\n    \"\\n\",\n    \"```bash\\n\",\n    \"b3denv python -m venv benv\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"Now you’ll have a blender-specific virtual environment named `benv`, which you can activate the usual way, `source benv/scripts/activate` on Mac.\\n\",\n    \"\\n\",\n    \"To get a Blender window to show up, all you need to do is use the ``@b3d_animation`` decorator in place of the standard @animation decorator, and add ``-bw 1`` to the command-line invocation. Or, if you want a set of sensible CLI defaults, try ``-p b3d`` instead, which stands for ``--profile=b3d`` and sets ``-bw 1`` as part of some other settings in the b3d profile.\\n\",\n    \"\\n\",\n    \"So, to use an example from the Coldtype repo, you could save the code from above and run:\\n\",\n    \"\\n\",\n    \"```bash\\n\",\n    \"coldtype examples/blender/varfont.py -p b3d\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"This should launch both a standard Coldtype window (with a 2D Skia renderer) and a Blender GUI window, which should automatically render the same thing as the 2D window, except in 3D. Put another way: you do not need to open Blender yourself, since Coldtype launches it as a background process (necessary to connect the live-code-reloading part of Coldtype to Blender). To quit both Coldtype and Blender, just hit ctrl-c in the terminal.\\n\",\n    \"\\n\",\n    \"What's different in Blender is that the contents of the scene aren’t re-created from scratch every time you render; instead, you annotate specific elements in your returned result, then those annotated results are displayed in Blender, as persistent objects. This means you can use Blender in a hybrid fashion, creating objects using the GUI, saving the file, and then re-saving your Coldtype source file for automatic updates in Blender itself.\\n\",\n    \"\\n\",\n    \"If you’d like to skip seeing the 2D Coldtype window, you can use `--b3dlo` instead. \"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/drawbot.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"dict(\\n\",\n    \"    author=\\\"Rob Stenson\\\",\\n\",\n    \"    title=\\\"DrawBot\\\",\\n\",\n    \"    date=\\\"1/6/2023\\\"\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Drawbot-in-Coldtype\\n\",\n    \"\\n\",\n    \"Though [DrawBot](https://drawbot.com) and Coldtype encourage different programming styles, DrawBot can be used inside Coldtype, by using a special type of renderable — the `@drawbot_script` renderable.\\n\",\n    \"\\n\",\n    \"### Installing\\n\",\n    \"\\n\",\n    \"DrawBot is not installed by default with Coldtype, so you’ll need to install DrawBot in your virtualenv, like so:\\n\",\n    \"\\n\",\n    \"```\\n\",\n    \"pip install git+https://github.com/typemytype/drawbot\\n\",\n    \"```\\n\",\n    \"\\n\",\n    \"Now that you’ve got the module version of DrawBot installed, with just a little bit of preamble and the `@drawbot_script` renderable, you can now use Coldtype to do anything you'd normally do in a DrawBot script.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=250.0 src='data:image/png;base64,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3RwgQIAAAQIFCAj0AopoCAQIECBAQKCbAwQIECBAoAABgV5AEQ2BAAECBAgIdHOAAAECBAgUICDQCyiiIRAgQIAAAYFuDhAgQIAAgQIEBHoBRTQEAgQIECAg0M0BAgQIECBQgIBAL6CIhkCAAAECBAS6OUCAAAECBAoQEOgFFNEQCBAgQICAQDcHCBAgQIBAAQICvYAiGgIBAgQIEBDo5gABAgQIEChAQKAXUERDIECAAAECAt0cIECAAAECBQgI9AKKaAgECBAgQECgmwMECBAgQKAAAYFeQBENgQABAgQICHRzgAABAgQIFCAg0AsooiEQIECAAAGBbg4QIECAAIECBAR6AUU0BAIECBAgINDNAQIECBAgUICAQC+giIZAgAABAgQEujlAgAABAgQKEBDoBRTREAgQIECAgEA3BwgQIECAQAECAr2AIhoCAQIECBAQ6OYAAQIECBAoQECgF1BEQyBAgAABAgLdHCBAgAABAgUICPQCimgIBAgQIEBAoJsDBAgQIECgAAGBXkARDYEAAQIECAh0c4AAAQIECBQgINALKKIhECBAgAABgW4OECBAgACBAgQEegFFNAQCBAgQICDQzQECBAgQIFCAgEAvoIiGQIAAAQIEBLo5QIAAAQIEChAQ6AUU0RAIECBAgIBANwcIECBAgEABAgK9gCIaAgECBAgQEOjmAAECBAgQKEBAoBdQREMgQIAAAQIC3RwgQIAAAQIFCAj0AopoCAQIECBAQKCbAwQIECBAoAABgV5AEQ2BAAECBAgIdHOAAAECBAgUICDQCyiiIRAgQIAAAYFuDhAgQIAAgQIEBHoBRTQEAgQIECAg0M0BAgQIECBQgIBAL6CIhkCAAAECBAS6OUCAAAECBAoQEOgFFNEQCBAgQICAQDcHCBAgQIBAAQICvYAiGgIBAgQIEBDo5gABAgQIEChAQKAXUERDIECAAAECAt0cIECAAAECBQgI9AKKaAgECBAgQECgmwMECBAgQKAAAYFeQBENgQABAgQICHRzgAABAgQIFCAg0AsooiEQIECAAAGBbg4QIECAAIECBAR6AUU0BAIECBAgINDNAQIECBAgUICAQC+giIZAgAABAgQEujlAgAABAgQKEBDoBRTREAgQIECAgEA3BwgQIECAQAECAr2AIhoCAQIECBAQ6OYAAQIECBAoQECgF1BEQyBAgAABAgLdHCBAgAABAgUICPQCimgIBAgQIEBAoJsDBAgQIECgAAGBXkARDYEAAQIECAh0c4AAAQIECBQgINALKKIhECBAgAABgW4OECBAgACBAgQEegFFNAQCBAgQICDQzQECBAgQIFCAgEAvoIiGQIAAAQIEBLo5QIAAAQIEChAQ6AUU0RAIECBAgIBANwcIECBAgEABAgK9gCIaAgECBAgQEOjmAAECBAgQKEBAoBdQREMgQIAAAQIC3RwgQIAAAQIFCAj0AopoCAQIECBAQKCbAwQIECBAoAABgV5AEQ2BAAECBAgIdHOAAAECBAgUICDQCyiiIRAgQIAAAYFuDhAgQIAAgQIEBHoBRTQEAgQIECAg0M0BAgQIECBQgIBAL6CIhkCAAAECBAS6OUCAAAECBAoQEOgFFNEQCBAgQICAQDcHCBAgQIBAAQICvYAiGgIBAgQIEBDo5gABAgQIEChAQKAXUERDIECAAAECAt0cIECAAAECBQgI9AKKaAgECBAgQECgmwMECBAgQKAAAYFeQBENgQABAgQICHRzgAABAgQIFCAg0AsooiEQIECAAAGBbg4QIECAAIECBAR6AUU0BAIECBAgINDNAQIECBAgUICAQC+giIZAgAABAgQEujlAgAABAgQKEBDoBRTREAgQIECAgEA3BwgQIECAQAECAr2AIhoCAQIECBBYAwGBYRI477zz0s9//vO2Q/7oRz+a9ttvv7btchqMxT5z+qUNAQJlCQj0suppNG0EZs+enaZPn96mVUqbbrpp1wJ9LPbZdoAaECBQnIBT7sWV1IAIECBAYBgFBPowVt2YCRAgQKA4AYFeXEkNiAABAgSGUWCoPkPfcccd06JFi9rW+c1vfnO6+uqr27brdYNZs2alo446Kms306ZNS4cddlhWW40IlCowd+7cNHXq1LbDmzhxYrrhhhvattOAwCAJDFWg/+EPf0jLli1rW5/ly5e3bdOPBgsWLEjz5s3L2tX8+fOz2mlEoGSBhQsXZv0/s3Tp0pIZjG1IBZxyH9LCGzYBAgQIlCUg0Muqp9EQIECAwJAKCPQhLbxhEyBAgEBZAgK9rHoaDQECBAgMqYBAH9LCGzYBAgQIlCUg0Muqp9EQIECAwJAKCPQhLbxhEyBAgEBZAgK9rHoaDQECBAgMqYBAH9LCGzYBAgQIlCUg0Muqp9EQIECAwJAKCPQhLbxhEyBAgEBZAgK9rHoaDQECBAgMqYBAH9LCGzYBAgQIlCUg0Muqp9EQGGqB1VdfPWv8q63mR18WlEYDJWBWD1S5dJYAgVYCL33pS1u9/d/3ctv9dwX/QWAABAT6ABRJFwkQyBPIDeqXvOQleRvUisAACawxQH3V1ZoKLFq0KN18883pgQceSI8++mh65JFHGn//4x//SK94xSvS+uuv3/iz3nrrpTe+8Y1pjz32SPHflnoJ/Oc//0l33HFHuvfee9PChQvT448//t+/o5YRluuuu25aZ5110vjx4xt/b7jhhmnHHXdMr3vd62oxmNxAz21Xi0HpBIFMAYGeCaXZiwXih/11112Xrr766jRz5sy0fPnyFzdo8a9x48al7bffPu27777pgx/8YIpQsIyNQPwCdtNNNzX+3HLLLWnx4sUddyTq+fa3vz29973vTbvvvnvaZptt0lh9Rp175J3brmMMKxAYQwGn3McQfxB3/eSTT6Zp06alN73pTelTn/pU48i8kzCPMT///PNpzpw56YQTTkiTJ09OZ555Znr22WcHkWNg+3zPPfekAw88MG288cbpiCOOSFdddVWlMF9Rz1//+tfpjDPOSLvsskvadNNN02WXXZaee+65vvvkHnnntuv7AOyQwCgEBPoo8IZt1R/96Edp6623ThdccEGK07PdWJ555pl02mmnNY7Yb7vttm5s0jZaCMyfPz8dddRRabvttkvXX399i5bV34p9HHnkkY193HDDDdU3VGHN3KB2hF4B1yq1FxDotS/R2HfwiSeeSO9///vToYcemh577LGedOhPf/pT43Tt9773vZ5s30ZT+spXvpK23HLLdOmll/bl6DnOAhxwwAFpt912a1xX0Y8a5AZ1brt+9Nk+CHRLQKB3S7LQ7USAx0Vst956a19GGEd2cSbA0j2B+Ejk6KOPTieffHJ6+umnu7fhzC3dfvvtadddd01//OMfM9eo3iz3CD23XfWeWJNA/wUEev/NB2aPDz/8cOOouR8/iFegxOfrhx9+eONiuxWv+bu6wFNPPdU4Sr7kkkuqb6QLaz700ENpypQpafbs2V3YWvNN5B55C/Tmht4ZXAGBPri162nPH3zwwcap0r/85S893c9IG4/P56dOnZrmzZs30tteyxSIW83iqvMbb7wxc43eNosLKvfZZ5+e/rK25pprZl1hv9Zaa/V2sLZOYAwE3LY2Buh132UE6sc+9rH0t7/9LburG220UeNz9giQSZMmNe5XjtuZFixYkP7617+m6dOnp2uvvTb7s9Q4NfzpT386XXnlldl90PDFAp/85CfTnXfe+eIXM/71qle9qvHLXHz2PWHChMY953GfedQk6hl/4n71uG0xPifvZFm2bFnjDExcCR9/erHE0fe///3vlpt2hN6Sx5sDKiDQB7Rwvez2WWed1fiBnbOP1772temkk05qHFGvscaq0+mVr3xl4xa3uEf5y1/+cvr617/euE0t57Pc+CUgrsTea6+9crqizf8InHfeeanTK8zjFrbTTz+9cVTf7Ah24sSJjb1ETU455ZR0//33p6997WvpO9/5zv/svfV/Ll26NB188MGN0++9CFaB3trfu+UKOOVebm0rjey3v/1tI3hzVo4jrLj/OI4ERwrzlbcRIfHZz342xQNM1l577ZXfHvHfcc97TviPuPKQvhhH5SeeeGL26OM09Re+8IVGLffee+/ULMxH2mA8j+Ccc85pXDT51re+daQmI7529913N+bCiG+O8sWcz9Fz2oyyG1Yn0HcBgd538vruMIIzPrvOeVDMFltskWbMmJE22GCDjge01VZbpWuuuSbl/FCNz/Lj1K4lTyCOfj/+8Y9nP6gnvp3sBz/4QeMXgJx6NOtF3Ncev6jFEwBzl4svvrjxMUxu+9x2OUf9oxlrbj+0I9BvgVXPkfa7BzXcX9yq1ckpxF4NoddXBK/c7/gBG/eDt1viiO673/1u41ne7do2e3/bbbdNxx13XIrT++2WH/7wh40rtdu1835Kl19+ebrvvvuyKOIah4suuijtueeeWe3bNYrn9v/4xz9ufEQSZ3pyllNPPTXFWYHoS7eWl73sZW03lRP6bTeiAYGaCQj0EQoSF+4cc8wxI7xT7kvxmM7zzz8/a4DxyNY4Qh/tEhe9xSNC43nirZb44pf4JcsXurRSSo2HxcTp79zl+OOPbzz+Nbd9Trv4KOWKK65Ib3vb29KSJUvarhJfBBNneuJZB91aco6+BXq3tG2nTgJOudepGmPYl7gALeeq9rgCOp7h3o0ljug+8pGPtN1UXHUfIWFpLRA1zD06j1+O4nqGXizxMcxnPvOZ7E2fffbZ2W1zGuaEdU7o5+xLGwJ1EhDodarGGPbl3HPPzdr7QQcdlOLK9W4t8W1rOUvc8mZpLRB3EOQucYV6/HLWq+XYY49NK66Ib7ePWbNmVbq9rtl2BXozGa+XLiDQS69wxvjiSXDxQzVniQuuurnEl73E96W3W+66667Gt7S1azes78dV47/85S+zhh/fZx7PGejlEkfA8S1uucuFF16Y27Rtu5xAz2nTdkcaEKiZgECvWUHGojvxGXXOMn78+MbXnea07aRNfIVquyUeYZrzkUC77ZT6fu4vZDH+eFpbXN3e62W//fbL3sXMmTOz27ZrmHM6PadNu/14n0DdBAR63SoyBv3JPbLbeeede9K7zTffPGu7cZRuGVkgt4axdu7HHCPvKf/VeHrgO97xjqwV4jG/jzzySFbbdo1yjr5z2rTbj/cJ1E1AoNetImPQn7lz52btdYcddshq12mjeEJZzvK73/0up9lQtskN9Ne85jVpp5126ptR3JKWu8S3snVjyQlrR+jdkLaNugm4ba1JRXIv6Gmyeldejmdmx4NCernEl68sXLgwaxfxVLBeLK9+9auzNhufE1tWFYhn5ed+T308za0fp9tX9DJuX8td4peS/fffP7d503Y5YZ3TpukOvEGgpgICfYTCxKnCfn5l6AhdaLwUt2odcsghzd7uyutz5szJ3k6vAj33qvlFixZl93WYGuYenYfJZptt1lea3I9TolOdzMVWg8g5Qs9p02of3iNQRwGBXseq9LFPnVxoFp+9dvKc79xh5N47/a9//St3k0PV7u9//3v2eDsJ2OyNtmgYdzDEN7XFV7m2WzoZR6tt5YR1TptW+/AegToKCPQ6VqWPfcr5QbuiO7nBu6J9t//+5z//2e1NFrG9TmrYq68sbQW5ySabZB19L168uPG0u9VWG92lPTmn03PatBqT9wjUUWB0/+fUcUT61JHAIJ3GdoQ+cmk7qeHrX//6kTfSw1fjK3Zzlwj10S45R98CfbTK1q+jgECvY1X62KdOwqCP3RpxV47QR2RJndSwl0+HG7l3qaMn0nUylmb7ywn0nDbNtu91AnUVEOh1rUyf+tWNH6B96mrja12fffbZfu1uYPbTySn3eH5+v5fcix6jX92YjzlH3wK937PA/vohIND7oVzjfXTjB2g/h9fNr9nsZ797ua9OajgWR+idBHonv5w0M20X1nHbXj9v3WvWT68T6LaAQO+26IBtb7QXIPV7uGus4TrO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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"from coldtype.drawbot import *\\n\",\n    \"from drawBot import *\\n\",\n    \"\\n\",\n    \"@drawbot_renderable((500, 300))\\n\",\n    \"def db_text(r):\\n\",\n    \"    fontSize(100)\\n\",\n    \"    text(\\\"Hello!\\\", (50, 50))\\n\",\n    \"\\n\",\n    \"db_text.notebook_display() #hide-publish\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"Unlike other renderables, the `@drawbot_renderable` renderable is “self-rasterizing,” meaning what it communicates to the renderer is not data about what to draw, but the path to a pre-baked image. The details of that process aren't that important, but the takeaway is that this is pretty close to a normal DrawBot programming session, with the caveat that when you zoom in and out in the viewer, the script must re-render completely, because what you’re seeing is an image (and not a PDF like you see the DrawBot app). (More about zooming down below in \\\"Scaling.\\\")\\n\",\n    \"\\n\",\n    \"Another caveat is that drawBot's ``newPage`` and ``size`` functions won’t work, as the dimensions of a graphic must be passed to the ``@drawbot_renderable`` decorator, ala ``@drawbot_renderable((500, 500))`` if you wanted a 500px x 500px graphic. (More down below on why ``newPage`` doesn’t make sense in Coldtype.)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Combining Idioms\\n\",\n    \"\\n\",\n    \"You might be wondering why you’d want to use DrawBot in Coldtype. To me, one big upside is being able to use any text editor you want, rather than the DrawBot app itself.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/html\": [\n       \"<img width=250.0 src='data:image/png;base64,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gTRWhtOYjSX04RRjcqc6a9asMN9888VCcp9g6mDg7rvvDhdddFG44447wrve9a7wmte8pnXlUj9ph7pnPetZcXxxTTA9MJDGynDaORH0GnjdYIMNAhN/gqmHgd/97ndh++23jxVbeuml+yLoqZ+06x/YWhNMLwyksTKc9p5wgt7pdMKf/vSncNttt4Vll102LLHEEpU1JfyMGTOyMA8//HC0CTEZv/jFL87ec9M07a7IuQfSAnzePsjTTz8dbr311lgPpHl8DBZffPEw99ztUEx6qPdvv/328MADD4SllloqLLPMMqX5+7K0vX/qqadiW5AvfgLUoRfk24Pw//d//xfuueeeSBwXWWSRyiTURuT5+te/Pih8L3xXJmof67aH8iE97vWcb+ei93/4wx9i+8yePZvoEYrCVX178MEHwy9+8YvY71/+8peHmTOrrWD//ve/w4033hie+9znhle/+tVZf6jKV/n7a6/w/X5XXnX7Avnlca40dCXM3/72t9hHn/3sZ8fxvthii+lz5bUpnssSKypn3TqSJvGbzHcqB+2On8ICCywQXvva14Z55plHn0qv5PX73/8+YP5kbC288MKlYf2HumPHx2lzT/mAonYv+ta0DdvgrE09JlUcc5LoNPkZkaIVOubAUhnvmmuuieEIu9NOOxWGPeiggzo2gWfhlK7Z3AvDW0eOYVdbbbWOMQCdd77znR1z9Irv9tlnn644TdOuwsEZZ5yRldHsfF35EO9b3/pWxybjLAz14DfXXHN1jCCPCV+V169//evO1ltv3XnBC14wJr2XvvSlnaL8q9LjmzFKMa1VVlmlsCzGiHTe+973ZrhU+Wmbz372s53777+/MJ5vDxtsnd12263zwhe+MCu3MTMdc5wsjEt4c5rs2MSchSdf2tZU4Nm7Qw45pDB+VZ3rtofKr/r664Ybbpjlm2//Y445pmMMZCwjdVRZ8uH0nmv+G+Nj1VVX7RBf+dqk27nhhhuy9Hx8I+KdN77xjR2b/LLwNkF3jjjiiM773//++O45z3lOYVyfDvdf+cpXsjSuvfbaMXHMYz37/u1vf3vM9y996UvxOzhQ2r6PNe0LagfaXun5qxHxzhZbbNExYpaVSzibf/75O7/5zW+yeGaLz8L8z//8T6cpnn2++XtfzqZ1JK02c5I5s3ZWXnnlrnY3dXXHnHM7RrCyeufL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KMqVZ27eKeGWolIe3ZIouURJnj3Is0j0+utNNwldvaOLIoqU3Nv5z3edftM6c2b2nr337H1mzp7f53POzKxZz9+avX7r91u/x5PDVKd7updoeEfhLiI/6YMp6pa7u6lVa9eUyBeJhDxfQyIxRz47GRN0n4gKZbadIrOy7CVr888/q7emTC75N3WKenPuDDXto7meUzNp0iSbQNxzzz2aeM+ePVvNnDlTE7EtW7aoQYMGeZZfsGCBmjVrluaGx40bpznPv/3tbzp/pnV7NurxYuDAgVokzmuIKNzsF198ocXl77//vtp77709SronQ8SvuOIKNWPGDC1unzNnjhbjt2nTRhfYsGGDbse9tFI9e/ZUiM07duyo3nvvPTV16lR13HHH6ewQ1CVLlhQrSh42EMCJJ56oli9frj7++GM9BvrAsQEE9I477lDr16+3y86bN09NnjzZfh45cqT62fom+BOLAPvlzptU+obYvEuXLmrjxo2K45SP589Tc975QC37cIHqcGl7XePo8WPUyjWrnc3Yz0NGDlf7WPi/7+891aL3ZqhPrL/IQXxkF7kpc+twegdvbjXFabnFgLUQaQU464dYluGb9d+pdjdem9YQe/XqpcshQr7rrrvsOuBG4SIfffRRNXbsWH3lLNcN4ELHjBlT4lw4iLrd2vNKW7lypX5FPxGRC0DITzrpJHn0fW3evLnizwRE/WxYJkyYoJOlTTOPec9m6KabbrKTOnfurKUIJFAWPAv06NFD33ImzbFFzZo15ZVq3LixGjp0qGrXrp3etPTv31898sgj+j3n5OaZPPfms12J48Zv31577TWFtAK477771CGW7T+8d8HWCuqBHveoF197RW3fvl1B1Pveuesb0gV2/mNM44ePUicdf4KZHL17TdQtkzYU5RzHVtEbTH72OObQIzrvBXnimx1lr2OPPLrozzo7PtYiEojN5Q8lLDeA41q6dKl+BeFCrItoWv4aNGig3yEuRgTsBrVq1VKjRo0qQUCCqNutvURpTZo00a9RzmOTgWg7G1CvXj27Wo4cvADHNyYxJ5+paGgeUXC+L3NB301iLvVzBg+XDsCVZwKp9A0JjABHMPJ9/K/Cbmqv2geogy3dC2BlAnH6wLv7RJ+YCxIss1e9tshzfI0UBmIOPVLTVdTZgs2/qgLLd3U+QJ1atdXcSVPUjiqW9rrl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iJFYoqv0XF2q94MRwE0t8eX5+P3OB6eun6u1ikucxgoZg2Oiz1TNX4au0EOgz8sUFztNArYkO7UjmkSIlmkSRWAVAgQNwZ835I/NvSpFfZ5VC5fnn39ewswSfOc3v/lNacG3QYjiFNwpTouq0nZUfrkpQw+DF17jrP/gOPh2N9aCLbF4uUl2tj7elRSBPBAgBvw333yTxxP1kbRauFx44YUSsa1///4lZ+iMEYwVsSDG3ph47qw2nsrQw/QAYne7fxMXEZV4jutoV1r8EJQiiQBhWhFrz5kzxyxcuND07dvXMHD7Q3ZScSJvQenX5aLvX6Z0RIsjotncuXMlyhmR0fzR5HxZyGmmfNLTBX0P26agZ901It69//77EjWOEKTFEG2ZOXOmtJ/wrOutt17B2WXDJegeuL/++utSJnHH8w0rSp4uX/85Dcj1LpAGDOfNmyc4Etq2GdmgU+kSx0W2vm++947p2L6D2eTHgyQ8brNnqvhFFJNV3B6qB3TEDwWTHVjjFNGMVfoSOwNXihwC7Mcef/zxwryJw07c8n333dcMHTrUbLzxxhLj3FX6kUcekdjixBe/++673eUWx/3220/Sbbfddt49Yl7vuuuuwlCIc7333nubbbfd1vTq1Us0oleubGni+OCDD3rloUkelvJpU6Y8J02aZIYNGyahWPfcc0+Z4BDrHYWvQuiqq64yPXv2NJtuuqm0nckS7mMJM5svZcMl/R5KarvttpvEG99jjz2kXwn7OmPGjNDFujwRuUNMSngH3CdTG2D8Z511ligzbrHFFmbkyJGmT58+5oILLmhWtowNTavz2XM+N7uM2s90GzrI7HrQL8w2++5hugwZaMZfNMEwQYsCxWrsrTJgytDDdoDVHE+2jk/83cQyO2DHIPxrWPhrJR0a0zfccIPEXmflNGTIEE9Defbs2eawww4zTot8l112MZ07p8JE3n777YEQEGv9qaeeknsHHXSQlwaGNnXqVPner18/YZB8IZ71tddeay6//HIvrTvxD+D+c3c/0zGfNgXlMWXKFHPUUUeZd955p9ntd9991+y4444trjdLFPDlmGOOMaeddprguP766wtTZx+ceOTkRwzwfMiPhf+cPPzfWZHvtdde5sUXXzTEi3f09ttvm9GjRzdL6+6V6kg9xowZYy666KJmCo3U45xzzjEPP/xwqihZnacm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'/>\"\n      ],\n      \"text/plain\": [\n       \"<IPython.core.display.HTML object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"import coldtype.drawbot as ctdb\\n\",\n    \"from drawBot import *\\n\",\n    \"\\n\",\n    \"long_txt1 = \\\"Here is a long string which needs line-breaks to be typeset correctly — something Coldtype can’t do but DrawBot (by leveraging the CoreText APIs on macOS) can handle with aplomb.\\\"\\n\",\n    \"    \\n\",\n    \"long_txt2 = \\\"Here is another long string, this time set into an oval, made possible by sending textBox a BezierPath generated from a coldtype P via the tobp method available in the coldtype.drawbot helpers module.\\\"\\n\",\n    \"\\n\",\n    \"@drawbot_script((500, 500))\\n\",\n    \"def combined_idioms(r):\\n\",\n    \"    fontSize(24)\\n\",\n    \"    textBox(long_txt1, r.inset(10))\\n\",\n    \"    # Coldtype Rect's can be passed anywhere a rectangle-like list would be passed in DrawBot\\n\",\n    \"\\n\",\n    \"    oval = (P()\\n\",\n    \"        .oval(r.take(0.75, \\\"mny\\\")\\n\",\n    \"            .inset(20).square()))\\n\",\n    \"\\n\",\n    \"    (oval.copy()\\n\",\n    \"        .outline(20)\\n\",\n    \"        .f(hsl(0.95, 1, 0.8, a=0.25))\\n\",\n    \"        .chain(ctdb.dbdraw))\\n\",\n    \"    \\n\",\n    \"    textBox(long_txt2,\\n\",\n    \"        ctdb.tobp(oval), align=\\\"right\\\")\\n\",\n    \"\\n\",\n    \"combined_idioms.notebook_display() #hide-publish\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Multi-page documents\\n\",\n    \"\\n\",\n    \"In general, Coldtype does not support the idea of a multi-page document; the closest thing supported natively by Coldtype is an `@animation` renderable — and if you think about it, what’s the real difference between a multi-frame animation and a multi-page document? Luckily there’s a `@drawbot_animation` renderable that makes multi-frame drawBot animations very easy.\\n\",\n    \"\\n\",\n    \"All that said, it is still quite possible to do normal DrawBot things in a Coldtype script. So here’s an example of generating a multi-page PDF, using a combination of Coldtype and DrawBot constructs.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype.drawbot import *\\n\",\n    \"from drawBot import *\\n\",\n    \"\\n\",\n    \"@drawbot_animation((500, 200))\\n\",\n    \"def multipage_doc(f):\\n\",\n    \"    c = hsl(f.e(\\\"l\\\", 0), s=0.5, l=0.5)\\n\",\n    \"    (P(f.a.r)\\n\",\n    \"        .f(c)\\n\",\n    \"        .chain(ctdb.dbdraw))\\n\",\n    \"    fontSize(50)\\n\",\n    \"    fill(1)\\n\",\n    \"    textBox(\\\"Page \\\" + str(f.i), f.a.r.inset(50))\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def release(passes):\\n\",\n    \"    ctdb.pdfdoc(multipage_doc,\\n\",\n    \"        \\\"examples/drawbot/drawbot_multipage.pdf\\\")\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The key to making the above work is the magic function `release`, which can be defined once in any Coldtype source file, and provides a \\\"second chance\\\" to create artifacts based on what's been rendered by the coldtype renderer. The salient point here is that you can write your own special code to run whenever the `release` action is called, which can be outside the standard save/reload/render workflow of Coldtype. This can be useful for all kinds of things (it’s how this documentation is generated, for example), but here it's useful because we're saying, *OK, the graphics look good, let's now use DrawBot to bake a PDF, using the same code that we've been editing and previewing via the Coldtype viewer.*\\n\",\n    \"\\n\",\n    \"How to trigger the release code? It’s as easy as hitting the R key with the viewer app focused.\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Scaling\\n\",\n    \"\\n\",\n    \"Because the default behavior of DrawBot is to display a PDF of the result of your code and to zoom in on a composition automatically, you might be surprised that graphics appear pretty small in the Coldtype viewer window by default, because Coldtype defaults to showing the graphics at their actual size. If you'd like to default to showing your graphics at a higher resolution (i.e. if you’re making a PDF), there are a few options:\\n\",\n    \"\\n\",\n    \"* You can zoom in with +/- on your keyboard in the viewer app\\n\",\n    \"\\n\",\n    \"* You can specify a `preview-scale` argument to the renderer itself when you start it on the command-line, ala `coldtype drawbot_script.py -ps 2`\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Coldtype-in-DrawBot\\n\",\n    \"\\n\",\n    \"If you’re used to Coldtype idioms but want to use DrawBot, you can install the core functionality of Coldtype in DrawBot and use it like a normal Python package.\\n\",\n    \"\\n\",\n    \"To install Coldtype in DrawBot, open up DrawBot and then navigate via the top bar to Python > Install Python Packages. There you can switch the input selector to \\\"Install\\\" and then type in \\\"coldtype\\\".\\n\",\n    \"\\n\",\n    \"Now you should be able to access Coldtype-in-DrawBot, like so:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from coldtype.drawbot import *\\n\",\n    \"\\n\",\n    \"r = page_rect()\\n\",\n    \"fp = \\\"/System/Library/Fonts/SFCompactRounded.ttf\\\"\\n\",\n    \"f = Font.Cacheable(fp)\\n\",\n    \"\\n\",\n    \"(StSt(\\\"Coldtype\\\", f, 200, r, wght=1)\\n\",\n    \"    .f(hsl(0.8))\\n\",\n    \"    .align(r)\\n\",\n    \"    .chain(dbdraw))\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"venv\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.10.5 (v3.10.5:f377153967, Jun  6 2022, 12:36:10) [Clang 13.0.0 (clang-1300.0.29.30)]\"\n  },\n  \"orig_nbformat\": 4,\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 2\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/geometry.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {},\n      \"outputs\": [],\n      \"source\": [\n        \"dict(\\n\",\n        \"    author=\\\"Rob Stenson\\\",\\n\",\n        \"    title=\\\"Geometry\\\",\\n\",\n        \"    date=\\\"11/29/2022\\\"\\n\",\n        \")\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 1,\n      \"metadata\": {\n        \"id\": \"vQqKKBu6fSZh\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"#hide-publish\\n\",\n        \"%pip install -q coldtype[notebook]\\n\",\n        \"#!pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\n        \"from coldtype.notebook import *\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"CwcUbsLlm-dr\"\n      },\n      \"source\": [\n        \"## Dividing Rect(angles)\\n\",\n        \"\\n\",\n        \"One of the core concepts of Coldtype is the use of the `coldtype.geometry.Rect` class to encapsulate rectangles and methods for slicing & dicing them.\\n\",\n        \"\\n\",\n        \"The most basic rectangle is the one passed to a `renderable`, i.e. the `r` variable you get when you define a renderable function, like `def r1(r)` below. So to fill the entire canvas with a single random color, you can do something like this:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 2,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"A8_pGQ6vfe7j\",\n        \"outputId\": \"b1e522a5-3098-40e5-c18b-7d62f99ed524\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((700, 300))\\n\",\n        \"def r1(r):\\n\",\n        \"    return P(r).f(hsl(random()))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ckjOCzI3np1A\"\n      },\n      \"source\": [\n        \"## Inset, offset, take, divide, subdivide...\\n\",\n        \"\\n\",\n        \"All `@renderables` have a rectangle associated with them (the full rectangle of the artifact canvas), and all rendering functions are passed rectangles, either via the first and only argument, or as a property of the first argument, as is the case with @animation renderables, which pass a Frame argument that makes the rectangle accessible via f.a.r (where f is the Frame).\\n\",\n        \"\\n\",\n        \"But we’re getting ahead of ourselves.\\n\",\n        \"\\n\",\n        \"A Rect has lots of methods, though the most useful ones are `inset`, `offset`, `take`, `divide`, and `subdivide`.\\n\",\n        \"\\n\",\n        \"Here’s a simple example that insets, offsets, subtracts, and then subtracts again. (Probably not something I’d write in reality, but good for demonstration purposes.)\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 4,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"CH7Y341Ffr_M\",\n        \"outputId\": \"7e634816-72a2-4680-832c-e8c966c32a54\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAEsCAYAAAAhNGCdAAAABHNCSVQICAgIfAhkiAAABfpJREFUeJzt2NEJwlAQRUEjKcxUvunsWYMSiRxmCrjs52G3mVkPAACoErwAAFTNzHrefQQAAPyS4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIG2/evA1s67eBPjEeRzb3TcA8D98eAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASNuvHjyPY7t6EwAAvuXDCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBI22Zm3X0EAAD8yhtibxSMq/zOegAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((700, 300))\\n\",\n        \"def r2(r):\\n\",\n        \"    r1 = (r.take(0.5, \\\"W\\\") # \\\"W\\\" for \\\"West\\\"\\n\",\n        \"        .inset(20, 20)\\n\",\n        \"        .offset(0, 10)\\n\",\n        \"        .subtract(20, \\\"E\\\")\\n\",\n        \"        .subtract(10, \\\"N\\\"))\\n\",\n        \"    \\n\",\n        \"    return (P().rect(r1)\\n\",\n        \"        .f(hsl(0.5)))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"-OMT57J2n5UW\"\n      },\n      \"source\": [\n        \"## More complex slicing & dicing\\n\",\n        \"\\n\",\n        \"You may have noticed that the rect functions take a mix of float and int arguments. That’s because a value less than `1.0` will be treated, by the dividing-series of rect functions, as percentages of the dimension implied by the edge argument. So in that `take(0.5, \\\"W\\\")` above, the `0.5` specifies 50% of the width of the rectangle (width because of the `W` edge argument).\\n\",\n        \"\\n\",\n        \"Here’s an example that divides a rectangle into left and right rectangles, and shows another useful method, `square` (which takes the largest square possible from the center of the given rectangle).\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 6,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"40sYBsjRmdL4\",\n        \"outputId\": \"3c23d29d-e029-4720-f17a-c893a2758af7\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((700, 300))\\n\",\n        \"def lr(r):\\n\",\n        \"    ri = r.inset(50, 50)\\n\",\n        \"    left, right = ri.divide(0.5, \\\"W\\\")\\n\",\n        \"    return P(\\n\",\n        \"        P().rect(ri).fssw(-1, 0.75, 2),\\n\",\n        \"        P().oval(left\\n\",\n        \"                .square()\\n\",\n        \"                .offset(100, 0))\\n\",\n        \"            .f(hsl(0.6, a=0.5)),\\n\",\n        \"        P().oval(right\\n\",\n        \"                .square()\\n\",\n        \"                .inset(-50))\\n\",\n        \"            .f(hsl(0, a=0.5)))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Hh48BjajoGFA\"\n      },\n      \"source\": [\n        \"Here’s an example using subdivide to subdivide a larger rectangle into smaller pieces, essentially columns.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 8,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"qtieb1K9mzhc\",\n        \"outputId\": \"f58b84b5-b73d-492e-c3a8-742597f31c89\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAEsCAYAAAAhNGCdAAAABHNCSVQICAgIfAhkiAAABiZJREFUeJzt2LFNxEAQQFGMKOwckNHDBdRFcD2QEYw7M02sZenrvQJGE4y0X7vNzPkGAABVghcAgKqZOd/vXgIAAK4keAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASPtYPfBnHufqmdznez+2lfPm5T5K9ufa+3g9xn2EPI996X18eV9Sfle/L48/9xGyH59L78MPLwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQNvMnHfvAAAAV5iZ0w8vAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgLRtZs67lwAAgKv8Aw4AKb1+37nLAAAAAElFTkSuQmCC'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((700, 300))\\n\",\n        \"def columns(r):\\n\",\n        \"    cs = r.inset(10).subdivide(5, \\\"W\\\")\\n\",\n        \"    return P.Enumerate(cs, lambda x:\\n\",\n        \"        P(x.el.inset(10)).f(hsl(random())))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Kk_wwlkdoITO\"\n      },\n      \"source\": [\n        \"Of course, columns like that aren’t very typographic. Here’s an example using subdivide_with_leading, a useful method for quickly getting standard rows or columns with classic spacing.\\n\",\n        \"\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 11,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 271\n        },\n        \"id\": \"tGwwRSXUm3hW\",\n        \"outputId\": \"4350d3b4-1cf0-47a2-ab44-e29c5994d027\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAH0CAYAAADfWf7fAAAABHNCSVQICAgIfAhkiAAACdpJREFUeJzt2EFNQEEQREE+yv4BORjABz6QMNIGFZtNXqoU9PGln/dv9gMAAKI+bw8AAICTBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCAtpnZ2xsAAOCEmVkPLwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQNrz/szeHgEAAKd4eAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANpmZm9vAACAE2ZmPbwAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpz/s9e3sEAACc4uEFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBom5m9vQEAAE6YmfXwAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApD3v7+ztEQAAcIqHFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAoG1m9vYGAAA4YWbWwwsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJD2vF+zt0cAAMApHl4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIA0wQsAQJrgBQAgTfACAJAmeAEASBO8AACkCV4AANIELwAAaYIXAIC0f25PKh5JfF8nAAAAAElFTkSuQmCC'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((700, 500))\\n\",\n        \"def columns_leading(r):\\n\",\n        \"    cs = r.subdivide_with_leading(5, 20, \\\"N\\\")\\n\",\n        \"    return P.Enumerate(cs, lambda x:\\n\",\n        \"        P(x.el).f(hsl(random())))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Wrd5-yqNScij\"\n      },\n      \"source\": [\n        \"## Grids\\n\",\n        \"\\n\",\n        \"If you’re a fan of CSS grids, you might like the weird little `Grid` class made available in Coldtype.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 13,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"MsEr0gVSSj7s\",\n        \"outputId\": \"b700bffe-5945-4c9e-8bca-825a35a3b903\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAEsCAYAAAAhNGCdAAAABHNCSVQICAgIfAhkiAAABgRJREFUeJzt2NFtwzAUBMEoSGFiZYYre6UpVdgEljMV3Ofirrnv5weA73m9di8AOMrf7gEAp1lrXbs3AJxiZp7f3SMAAOCTBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAEDaNTPPWuvaPQTgFPfMs3sDwEk8vAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCAtGtmnt0jAE7y3j0A4DD/2GAUDgGB1sEAAAAASUVORK5CYII='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"r = Rect(700, 300)\\n\",\n        \"g = Grid(r, \\\"a a\\\", \\\"a a\\\", \\\"a b / c d\\\")\\n\",\n        \"\\n\",\n        \"@renderable(r)\\n\",\n        \"def simple_grid1(r):\\n\",\n        \"    return P(\\n\",\n        \"        P(g[\\\"a\\\"]).f(hsl(0)),\\n\",\n        \"        P(g[\\\"d\\\"]).f(hsl(0.5)))\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 14,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"fWfZ4Hf4TSEt\",\n        \"outputId\": \"7c764616-c699-4858-eac0-6d2c3120b087\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAEsCAYAAAAhNGCdAAAABHNCSVQICAgIfAhkiAAABgZJREFUeJzt2MFNA0EUREEWObCdyCwi+6GNDxyAu9FIT1UR9PGpr7nv/QEAwPs8n6cX8Mvj9AAAgJq11nV6A99mZn+eHgEAAP9J8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkHbNzF5rXaeHAABU3DP79AZ+eHgBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAEDaNTP79AgAgJKv0wP44wVUZhQOEtNIHgAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"g = Grid(r, \\\"a 100\\\", \\\"100 a\\\", \\\"a b / c d\\\")\\n\",\n        \"\\n\",\n        \"@renderable(r)\\n\",\n        \"def simple_grid2(r):\\n\",\n        \"    return (\\n\",\n        \"        P(g[\\\"a\\\"]).f(hsl(0)),\\n\",\n        \"        P(g[\\\"d\\\"]).f(hsl(0.5)))\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 15,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"MsbQ7JoxTWiP\",\n        \"outputId\": \"25f554ac-e87a-4e11-a75d-c4942c923144\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=350.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAAEsCAYAAAAhNGCdAAAABHNCSVQICAgIfAhkiAAABiRJREFUeJzt2LFtw0AQRUHRUGG8MlwNoWpUxqkzOlQoJcaBDzMV/Gwfdpv7ft4AruA4Vi8A4ILuqwcAfGuMsa3eAMC1zDnPn9UjAADgPwleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADS7rfjuI0xttVDAD75nfu5egNvz/FyO4BL8OEFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIE7wAAKQJXgAA0gQvAABpghcAgDTBCwBAmuAFACBN8AIAkCZ4AQBIu68eAPCt53htqzfwts95rt4A8Mnj5sMLAECc4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIE3wAgCQJngBAEgTvAAApAleAADSBC8AAGmCFwCANMELAECa4AUAIG2bc56rRwBwPY/VAwC+9AdJFhf/caN9QwAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"g = Grid(r, \\\"a 100 a\\\", \\\"a 100 a\\\", \\\"a b c / d e f / g h i\\\")\\n\",\n        \"\\n\",\n        \"@renderable(r)\\n\",\n        \"def simple_grid3(r):\\n\",\n        \"    return (\\n\",\n        \"        P(g[\\\"a\\\"]).f(hsl(0)),\\n\",\n        \"        P(g[\\\"e\\\"]).f(hsl(0.3)),\\n\",\n        \"        P(g[\\\"i\\\"]).f(hsl(0.5)))\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"colab\": {\n      \"collapsed_sections\": [],\n      \"name\": \"Coldtype Geometry Tutorial.ipynb\",\n      \"provenance\": []\n    },\n    \"kernelspec\": {\n      \"display_name\": \"Python 3.10.5 ('venv': venv)\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.10.5\"\n    },\n    \"vscode\": {\n      \"interpreter\": {\n        \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n      }\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/shapes.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {},\n      \"outputs\": [],\n      \"source\": [\n        \"dict(\\n\",\n        \"    author=\\\"Rob Stenson\\\",\\n\",\n        \"    title=\\\"Shapes\\\",\\n\",\n        \"    date=\\\"11/29/2022\\\"\\n\",\n        \")\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 1,\n      \"metadata\": {\n        \"id\": \"joXt9bJEjUDC\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"#hide-publish\\n\",\n        \"%pip install -q coldtype[notebook]\\n\",\n        \"#%pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\n        \"from coldtype.notebook import *\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"cqE4kXaXoiFu\"\n      },\n      \"source\": [\n        \"Let’s start with a classic rectangle.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 2,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"-UPVdBQqjeYF\",\n        \"outputId\": \"3b300b98-d826-455e-f10c-5f4272984935\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=150.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAABHNCSVQICAgIfAhkiAAABBpJREFUeJzt1kENAlEUBEGWrBAQiBoEPSngZLHAYcmnkyoFc+rMNjPHBaBAsICCmTmuq0cAfEuwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyNhXDzjL6/Y8Vm+Af3V/P7bVG87gYQEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkLGvHnCW+/uxrd4A/JaHBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARnbzByrRwB84wNeMxS4AFEASAAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((300, 300))\\n\",\n        \"def rectangle(r):\\n\",\n        \"    return P().rect(r.inset(50)).f(hsl(0.9, 0.75))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"JmyZZoKRoshG\"\n      },\n      \"source\": [\n        \"That’s how to draw a rectangle with a 50px padding around the edges (the padding comes from the ``r.inset(50)`` call).\\n\",\n        \"\\n\",\n        \"_I’m re-reading this now and if you’re thinking to yourself: that’s a square — well that makes sense, but a square’s just a rectangle with the same width & height._\\n\",\n        \"\\n\",\n        \"How about an oval?\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 3,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"14h2ExQojjr2\",\n        \"outputId\": \"cdfd9fd5-f304-4912-853c-b9800bece808\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=150.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((300, 300))\\n\",\n        \"def oval(r):\\n\",\n        \"    return P().oval(r.inset(45)).f(hsl(0.6))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"TCyBoKKXoutt\"\n      },\n      \"source\": [\n        \"That’s an oval. Sweeet.\\n\",\n        \"\\n\",\n        \"What if you want to combine an oval and a rect?\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 4,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"2Ae7AcCBjsJa\",\n        \"outputId\": \"11eee8a0-e820-4ff6-c246-8fd61595f4ff\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=150.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((300, 300))\\n\",\n        \"def ovalrect(r):\\n\",\n        \"    return (P()\\n\",\n        \"        .oval(r.inset(60))\\n\",\n        \"        .translate(30, 30)\\n\",\n        \"        .union(P()\\n\",\n        \"            .rect(r.inset(65))\\n\",\n        \"            .translate(-30, -30))\\n\",\n        \"        .f(hsl(0.05, l=0.6, s=0.75)))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"rFNQ6Mqxp8dT\"\n      },\n      \"source\": [\n        \"Or maybe you want just the parts of those two shapes that don’t overlap? And maybe you want to fill the shape with a gradient and rotate the rect a little bit and then eyeball how it should be centered in its frame?\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 5,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"j4EPWL3Sp2KF\",\n        \"outputId\": \"280fa279-b2e4-4841-8d18-383e312ac629\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=150.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((300, 300))\\n\",\n        \"def ovalrect_diff(r):\\n\",\n        \"    return (P()\\n\",\n        \"        .oval(r.inset(60))\\n\",\n        \"        .translate(30, 30)\\n\",\n        \"        .xor(P()\\n\",\n        \"            .rect(r.inset(65))\\n\",\n        \"            .translate(-30, -30)\\n\",\n        \"            .rotate(-5))\\n\",\n        \"        .f(Gradient.Horizontal(r,\\n\",\n        \"            hsl(0.05, l=0.6, s=0.75),\\n\",\n        \"            hsl(0.8, l=0.6, s=0.5)))\\n\",\n        \"        .translate(7)) # & eyeball it\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"iEgF3YhNa3ko\"\n      },\n      \"source\": [\n        \"## Modifying Shapes\\n\",\n        \"\\n\",\n        \"Here’s an example of building up a chain of effects to modify a simple vector shape.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 4,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 171\n        },\n        \"id\": \"SRiiWR6ZZ1O4\",\n        \"outputId\": \"6182fe47-84f7-4276-fe52-e31fa9b7ce10\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=150.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"from coldtype.fx.skia import phototype\\n\",\n        \"\\n\",\n        \"@renderable((300, 300))\\n\",\n        \"def ovalmod(r):\\n\",\n        \"    return (P()\\n\",\n        \"        .oval(r.inset(60))\\n\",\n        \"        .flatten(5) # breaks the oval down into non-curves, 5 is the length of the segment\\n\",\n        \"        .roughen(50) # randomizes the vertices of the shape\\n\",\n        \"        .f(1)\\n\",\n        \"        .ch(phototype(r, blur=5, cut=100, cutw=5, fill=hsl(0.07, 1, 0.6))))\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"colab\": {\n      \"collapsed_sections\": [],\n      \"provenance\": []\n    },\n    \"kernelspec\": {\n      \"display_name\": \"Python 3.10.5 ('venv': venv)\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.10.5\"\n    },\n    \"vscode\": {\n      \"interpreter\": {\n        \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n      }\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/pages/tutorials/text.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"metadata\": {},\n      \"outputs\": [],\n      \"source\": [\n        \"dict(\\n\",\n        \"    author=\\\"Rob Stenson\\\",\\n\",\n        \"    title=\\\"Text\\\",\\n\",\n        \"    date=\\\"11/29/2022\\\"\\n\",\n        \")\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 1,\n      \"metadata\": {\n        \"id\": \"joXt9bJEjUDC\"\n      },\n      \"outputs\": [],\n      \"source\": [\n        \"#hide-publish\\n\",\n        \"%pip install -q \\\"coldtype[notebook]\\\"\\n\",\n        \"#!pip install -q \\\"coldtype[notebook] @ git+https://github.com/goodhertz/coldtype\\\"\\n\",\n        \"\\n\",\n        \"from coldtype.notebook import *\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {},\n      \"source\": [\n        \"A few common variables we’ll be using throughout:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 2,\n      \"metadata\": {},\n      \"outputs\": [],\n      \"source\": [\n        \"r = Rect(1000, 250)\\n\",\n        \"co = Font.ColdtypeObviously()\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"cqE4kXaXoiFu\"\n      },\n      \"source\": [\n        \"## Basic Text\\n\",\n        \"\\n\",\n        \"Let’s start with a simple \\\"Hello World\\\", except in this case, let’s just say COLDTYPE, because the coldtype repository has a special version of the font Obviously that just has those letters (CDELOPTY).\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 7,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 122\n        },\n        \"id\": \"-UPVdBQqjeYF\",\n        \"outputId\": \"8cc34e53-1dcd-4c79-da7f-776b812da033\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text1(r):\\n\",\n        \"    return StSt(\\\"COLDTYPE\\\", co, 150).align(r)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"JmyZZoKRoshG\"\n      },\n      \"source\": [\n        \"You might be wondering why the text is blue — that’s the default fill color for any text in coldtype. Let’s mess with the color and set some variable font axis values:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 8,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 126\n        },\n        \"id\": \"14h2ExQojjr2\",\n        \"outputId\": \"4b962499-ac46-42f3-e7a3-1a448f15a960\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text2(r):\\n\",\n        \"    return (StSt(\\\"CDELOPTY\\\", co, 150, wdth=0.5)\\n\",\n        \"        .f(hsl(0.8, s=0.75))\\n\",\n        \"        .align(r))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {},\n      \"source\": [\n        \"Also let’s track out the letters and rotate them.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 9,\n      \"metadata\": {},\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAACWCAYAAAAmC+ydAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJztvXuUHOd53vk81T0ACOJ+IUEQwFQPKYsEARASFd1iiaA2dtZxEkmbY/l6LCpKhCVBgKK8ysbr2OGxnHi9PiHIGUAMkvBIir1xTGe9lOLQJ5G8GMSRHccyhRtF6kJ0zwCEAEKkeMFtMN317B8zAAaYbmCmu+t7q6rf3yEPiUaj3hc1dfme771x7969guM4juM4juM4TghcgDiO4ziO4ziOE4K9e/cqsnbCcRzHcRzHcZzewQWI4ziO4ziO4zjBcAHiOI7jOI7jOE4wXIA4juM4juM4jhMMFyCO4ziO4ziO4wTDBYjjOI7jOI7jOMFwAeI4juM4juM4TjBcgDiO4ziO4ziOEwwXII7jOI7jOI7jBMMFiOM4juM4juM4wShbO+A4jtMpR9c8tmw8mnMP0Fg6MPrw09b+OI7jOMWmGg/eC5CV2vZha1/yiAsQx3Fyw3dvH5zbNx7dJSabJGwEsAnkpjpwEyFA0bMAXIA4jtPzVOOdMRDdDXBppbbji9b+5JXL5zHaDGAzgHjyvwDwBIBhG8/yjQuQHqEa71wi8mYqWqVENxNcRXJFAi0DuBjAEkI3ijhN8S0QpyW9VU7479cd3f4Na/+d3qMa74zVKG+KImwUtQngJozjbaJKAEE2+1M6EdrP0FTjnbGS0kZGvAvSphvPlj5106ltp639chzHhmq8cwlQuhvgZkCbAcYAtkz5yhMWfuWNGZzHZgyn7FZhcQFSIEbWDa4XeSegOAEqAGKCMaAY4I3UxPcYTazcBICYuoqb/NXkRySRRPw6gJ4VIEcqu/qjpDEARMsALAG4OEEyn+QPKJ4EcIKKTvaPPnjE2te8cmrFUwvPzj9/dxI1NgLcBGmTiA0AF7E0cZ1eviivfSwBhREgR9c8tqxRKt2dKNoQERsFbBC1AeBCTlbvCajfdGrbz9l6mh1q/bvvTNS4nRFvB3QzhEUCF5JaCHGhqDMEXpXwWgQcB/AiVX7B79/ucXkR15pKbce+UP4UjYm0nygGks1TFspLLn+j6UPy9UDu5YbL51ExgC0zPI9NqO/vunM9gguQHFPr332nmNwL4F5I9ybkLRO/w6tunZneSNOJEh3twMXccHTNk7eOR431oO4mdZeAuyish3SjOLVXgy6dXU0qOrGBajwECEdAfTVK8LX+0R3/weCvkWmEp0uj6068PYm4UZqMaBAbT+Ns/8Q3Linftq9YEqe64mxAjq/eM/98NLYhKmGDiI0SNoDYWAdvBgDyogibfmejQIJrtoys2/2jSZT8KIQPiLiLQL+QgJdCY7z4z5T/n/zVlHMqNnAkHnwL4pchfGX+2PlnV5387Jnwf6P8MJGSUuoHuAXQksmFcDy5YzyDPz8EAPsB7Qf0TKX28JfT8jWvVOPdm4F6/+W0n0s78ri4fThB++/3XuDa6VOa8s3Zn0cBbwzUHql16mOv4gIkRxxd88Tb6hF/QuQHCXxITJZe+s3m+Sgd0zeukVQObMRLA3sW942PbWqUsEHiBlAbKW6os7708hm8MhI0Y4gBgFuTCFur8dAJSY/NPz/2+V5czFTj3auUaGPEZJPITZA2VnliPcG5AKYsErtN9MOUDtwxwqPl0XUr3p5E2ChpA4mNEDaM4UKFJC+JjNmdmpPd9zR7HF3z2A1JVP7rIj8o4gOQ3pMwuQHAFJHRPgQXgvgFEL9wdt6809V48LFFb+JfLH9tx5ude59fZpaS0vZCeHIHn/dX48EawMcrte09lyo05RxvmSLitgAJrmxU6kJjplTjwS/MMH2qIwgNp3n8ouMCJOOcuPnJm87dMP5zEn++TrwLCPcYklS/5cSO3O0oA0A1/sK8KHnzriQqbZi62ENy4dZG6fIuaFdWL81ZRfL/OnvD3Idq/bv/53hk2wupWDHmu7cPzp1zQRuSKNoEaKIwnNgEJCsZTcSLAHQU1ZgNaigTAuRynUa0AUo2itxQhd5OaA4wRWR0eFIIFlqAjKwbXN8gHqmT/+CK30hNwAIkFgD8tTcW4eHawl2/Eo88tDs1Yxmieykp7cAYwOPVeOh+oP7RSkF3ldtMn+oGw2kd2ILL53F8X/NrhfeH8YSeftUBLkAyyCsrdy84c6P+nqCfP6f6hwCWUnzftoaoGlidFcLTpZH+Uz+SKLkyT15v3ZZE0cQS2DBSTXBdguR/VOOhv5P3Vn21/qHKRPepaBOIjYQ2YZy3JxFLE99oVRgeEgbNdZ6o0+jbLGmDiI3kZGQNWDCRuacp4iuFk0O90v2D2jJxT5/8SELsSIAPWl1SBBaL2lWNhz4Q127+ReJjF4xc6SpppqR0gc1A6ZvVePd9ldq23C7uPH2qO1z/Wi3fB6Bm4x2Aggm70LgAyRDfXzW48vw8fO4Mkq0A2ksD6iqsWVq/miOVXf2lBjYmkTZI2gBiYxUn7iA4Z1qefIae6yQWSPrqkXW7/tbA6ENftfbnepxa8dTCt2449w5EySaSGyFtALhZxHwgmiIysnWeAaBEvBrKliDWyrsm7E2J8IQVYSyMADm14qmFpxec+WQVJz9DYG2GLq2frvafuKvKnX8nTzvzbXb0yQBcAjT25kGEePpUd2j/WrUuALe2n29cgGQA4ek5tfiVXzqH5JcJLrT25yIUjlnYnbqrTHKDqI0TReFamEw+09OrIUgHkmVQX6n17/pQPPLQn1v7M5Va/9DPXSp+hjaf5tk1V+zY5+hcU+FSsGrx44utH6GTndhyTzUe+unTOvsYwNVZvNpIboDK/+2lgT133XZk6xvW/lyNbfpUGlwUITsrldojmejgZJg+1QWys1Du5rXa7NqYiD4lHft5PQSMDGTk2swrLkCMObpm9+210smvALgzTJb8LGDYDli1/sGfT4iddXDlhH1easGasTPTLvMS6o9H1w6tX3d0+3FrZ4DJGiPW/29gSk1Mjll7dE6wmqW5F7hobE4oa82h8p2CdaTy+M1MSv8OwIcyf+kRtzK58AcAftzalalU46HJ4K95+lSX4RKg/DiA+y29qMaDzwD88MSv8pk+ZSHipqehhUr1S5Zc/zudQygzoi6vuAAxpNY/9PfqaHwJ5I3WvjRDCitAEmA9L4qPgkJgcb2ExwF8zNoXALgwZ3xhnl6k10Q4S2wdD2VuvFxeeOWLNDyNHAuQWv/uO5UkXwVxq7UvM4XAjx1Zt+tTA6MP/StrX3qEj1fjoS8a18/da2g7F0ykUJUfvnYaWuEYtnYg7xT66sgy1XjoYRH/IaviAwDI0ClYDLJzYQ2Bn6rGQ1us/ZiAS6//nXwg6LWQ9pIoMU+XjKL8zT0BgCNrB388QfI/8iQ+LhElv3FqxVPmP3sAyM5zJFX+qa35fL+XBARopV/eDODRye5TW9K3BwA40PxjbQ5j3jtgdYoLEANq/UO/DuBxaz+uR5SUgkZACOT6QT8bBP2WtQ8AIHKxtQ/dguQPQtpTEpkvQkuNvtxFQI6s2/VjjPjsRLvb/EFw5ekFZ/+JtR89xJaJbkhOOxCqWfuQDmqRVhZGMOa9q2UWcAESmGr/4OdF/Kq1HzMjCl2n0DMChOC7a/273mnth5gURoAIYaMBJdifuzXHTuaqCL3Wv+t9jPQVECVrXzpB0MPHV++Zb+1H71B+1NgB5xr04GK8RfTFmQ0uQAJypH/ofwP5gLUfM0I61z/6YOChbuoZAQIAYrLd3ofiREAQuB5CxKKQ9qbZh94kHq1b+jAbTtz85E1i8iyAeda+dArBuWNzxj5u7UfvoA9bWJ2obcg9PdapSVsCGPH0qy7gAiQQE7vd+k1rP2aKyKDpV5MU4WE/YwT87NE1jy0zdqMw55zhZ2LY1s8oPzNABPHsvPof5j2f/gp01XR2G7ZYOxAGLpnoqhSasoHNbhOmVkFA4PbUHA5rbyreAasbuAAJQDXeuUTQV0jmp+tY4A5YExRocTIDCM5tlMofMXajOBEQMnBBtm30iIFTzjqh2j/06yT+urUfXYV45+jaJzZYu9E7NLZYe+C0JkNtafvTN+EF6N3ABUgIVPoXeev2QvJlA7M9JUAAQMDfMPagOAIE4YYQTmJ7vTIfLXhH1w5+gGQhi7brUfQz1j70ENabNU4uYJy2hR6seUkFFyApM7p28AMg/761H7NFUtAWvIIIoveKOsn7TO2rQDUgUNAUANE2esQcpGAJj0aNEgs7M4OQ7f3bW9xt7UBOGQ5jhrUwdszxAvQu4QIkRYQ9fY0S/q21H+0QegbIiVVDK0LayxCrjq4Z2mhnvjgRECoKnINsGwFJoMynYNXi5dsB3GHtR1oIePd3bx+ca+hBAWoUZgqXGLTj3RLYXp6pBbY3fPUHgebiTLPrtIcLkBSpxWPbQoQD00CNsClY9XJvdcCaynik91rZVoFqQKiwERBr8UZmOwJy7NZdywV9ztqPNCFZLte5xdCFHntulmNrD5xeJzO1LrnHBUhKCHv6IPwjaz/aJYoYNgWL5R57kV6GESwLWQtz3qkkdBcWY/GW7RqQC2X9Y4LmwxrTx9OwArLF2oH8Ua+FsZOFgYeK07dRcgHSJVyApEQtvvBJkLdY+9EuSVQPGgERZTpTwRTRTIAUafp8uaE3w1q0jdpFSXa7YFXjL8wDtdXajxBIeJe1D47TikrtkVoYS1moAWGctoVKbZsLkC7hAiQlBPxjax86YaD66aATlhuQ9TwMQyzzuIvT+ni8POetkPYEms4BaSRJhiMgpx/ojegHAPJHDK33WGF2kCFzhvacmRMqsjMV7Qtvs7i4AEmBWv/g/8IgvajTQYDBDJDerQEBuezEzU/eZGS9MMJv3egDQSf+0rh+pszSDyztt0IQIfyStR+hILBWeHqOkfXefW461yXscMCwgqB5ZCdtwejzP7qJC5AUSIj7rX3oBELBZ4BERO+mYAEYm1t/W2ibJ27+7RtBMLTdVJDOEVQocxmYYI+1R+dkMgVrpH/3T+Rt7lGn1OJT66196A2s667yRcjhgOFSvSzxAvRu4gKkyxxfvWcFhZ+09qMTpLAteAEgKdBOfDs0gNXBbZbmF+ic82xIa2LZNP1Kwmli67ilD61IkPTccD4lSfANhGq8sxejH6HTVXssxS33pPzz8gL0buICpMtc6Bv/RZC5Pq82U9B7PJWAujm0ybFo3HQR3U1EnA5r0bb+A8SrpvZb8N3bB+eS/ClrP0LDSAYRn3IPzQCxosffS7NEwIitB+n9vAS84QXo3SXXC+UsIuofWvvQKRYRkCJ1Y2oPrgpvsjitj6mwAqROYwEiZbL+o3RBHwYwz9qP0EhYae2D40wnbM0CDVvxph0RDJnO1iu4AOkiR9c88TYUYOpvBBw3MFuYxXB7hI+AFKrwP3gEpGEqQJjRCAij6GetfbCA5AprH5zuEmiqdtoEbcwRjmbdqNKOCHI43eP3Hi5AukijVPpxax+6gWghQAq0GG4HIrwAYXHOuaSgAoSRdQQkewJEeLok6Ces/TDBJAISYuia48yGLMwCSQ2PgHQZFyBdRFQhBEgyTo+AhCf43998Ed1F2GM1IAQzl4I10v/9DxKca+2HBaIMIiCMQ1qbzO//KID7Jv99IqT9i1Tj3V77MmMUOgJSC2xvKlvSPXzdBUiXKVs7UBSER6Oa9D+B+e9qOocXgs8BEbAo9JmT9FcRok/FIw89V42H7oDwz0F8NLAbAACCFnMECiP6FLgGhNIyGd7rymAKVgL+jfw//dqDYOFrQAjVKrUdz0z5aLgaD8YAPxzWk6Qwz6308bkV3UDAGwM90WY4LB4B6RIj/UvfC/JGaz86RdCba4995lx4y+G7jZAYj0ceeg4AKrXtL84dn/MLBjtGE0gGAiR/KViCTgr6UwlPIcH/DuCjUaK7KiOr/n5IPxLQtIWxpMwJEBIfsrAr6WuAfgtC1cL+pA8LrGzbwsetPUiRLdYO5A+j9+eE7dQiY16Ang4eAekafJ+1B11BfCW4SYg17rJ4gZ+c+ovVx7eercZDfwHgbwb3hLwhuM2MR0Ak/RXJwwAOUMn+Rmnec7cd2Rpwsm9rCC2F4QxHMspUCtapFU8tPI2z7w1uWNo7MLLjxwCgGn/hUeB0FYBBRzmLCKY2h70GpxfhVmrbh6vxUEAfnGxjGnFJ8X3mBehp4AKkSyTke4qRfqAToS0eW7NzKdAX2iwATP+7JngOkYEAEQwWMBnocS+dA/ltAC8i0QuI+G0g+nbm+60Tyy3Nq5G8Zmn/as7cePpdFgF1KfrNi/9fqX3ifDUe/DLAraH9oEweYPb3r5NxooJ2wWoqCPpTNNjMntMhLkC6ht5juSPaRYILEKup0mwS7RH1Q9r8HA1mJ5js4u8H9O+VRM+hhO8M1LYbD65qD4HLLO/2ErOVgiVG7zEwe74yetP/d+VH/LaBHwAsUiizgvYBvNfaC2c6md/I6SqM0zu2F6CngQuQLnDs1l3Lx6F11n50gwj8fmibopYYibdpYovEmxaOAAjePchiES3pGwMjO36rG8c6UtnVj7ruZglvVmrbh7txzJlCYZnlfkMSJdkSIMK7QtfkS/o68bHGlZ/y+4DCOgLApv6Pi8PbzAKhFoPaUpBNxWBYpeSlOYRQwMhA7ZGCRpJscQHSBcb79AFrH7pH+BQsw5amJ5t8ZiRAFPxNZ7GIjoAftvPnRtYNrk+i6K9BulvEPYQ2QVqCEiDpVxE+RG7ahnfB6UWZEiAg3h3cJPH8tM+k8fB3khmh29EOB7bXlIovBp1ppDeE0AvQ08MFSFfQOwq0U2KQgmWzk0dF0wQIhTGjBcxYeJNaFvq6nUn72Fr/UAXQOxLwfYTuAfDuhLwREMCLHl/2O3TUTtjTV+OF+SFtXuWAVv7gk2+Z2b+KyQjw2vCW+cK0T8Qx0SACgonrgtg6bmLccXqbNAvQXYCkhAuQLiDwzqLIDyoK3gUrEZfTZNHQmFbIm0hlGsx3EFkPam9iEW3ReeuK3ctqvDOmyvdIuEcR3kXhnSKWA5wmNFoTNmo30n92he2j0yJK2ZpGCUYdADVNgDSQ0KiGyyked1s70AmTgyMtOIDw5y7NaOBwisfuaVyAdAEK64vyzqPYLC0pXZtRYtLSdO5Y37RWpoxYCu4IAApBd05rcd2oixP/1pH+wXcRWC9iA8BFIi5HNtq4DMTSy1128jrMWQIkYU1OQcjWEEIx2WRx//aN46Xpn9KgmcOk5YDRj4lp4KGvwaJ2VGpFBroEdgChmo1lvZ7+8yDc3y10fWEv4QKkQwSxhqE7i5KCVW6MBxcgMMqnX3XygWnRnihhKbEYz0lcCGkuSrTc5O8J/N2LEaZu3TF9443AMzHqSy1nuDJjU9AT4I7gTz9Ba17ecayJN/NM2gEj7AaCxTTw3uqolG8EvMFCpw6xduWvU2sYcCCNgzoTuADpkFq86+0ACzNR/pbjrx8Pb9WgBkRqOkdhIoXDYgGjoAKESoLXf6TFrS/PDSqaqdIyqzoDAICyJUBAvD20SRFNxAdgFQGhwt6/TrpU452xtQ8z5MBkxGF4IirAGlDfb9u1iTUARWnLXGARZ48LkA6heKfpYqSLCHqTeDRoLcKEXSwP3g6WbLFrbrWACVsDUgeXFkJ+CGdDF/42kCyzrDMgmC0BIoZPQRVGm37O8O2sJw0HFiCKi7KBMEsC7UiX4zB2OkH7KrUdW6y9aELNwGZKNSfeAStNXIB0TJLX9KsTEKqCXiP4hoDXI0RNcqoDIC1F4MJvSpkSIKLOhLTHUvgOWGkwk65a3YYRloW2ORUJgVPOWnOk8vjNFBaEtssWERCSwX0BADF0ChbjsPaykoqiHqtDuRZFTrGaLWnV65SG0zmuA7gA6RiBt1v70ApJxwC8SOC7RPQ9AC9SSS1K6tW1xz5zztq/ixAMv6BrEQFhpPkmC3PxjbAGzWavdJXWQjI9JCw3aJR2CWZoCjoV3WFkulUnMKOW3qEFSGiuufDvD+ZGMLQ5Bxs0GRVjqoU8d2k2ZPC6p3RxAdIhgtZmoe2joFEKX5f450j0FwvGSt+66dS209Z+zZDgi2EJp1p8vsBmcamgAsR6Ed1FDF7CBoJ5ChZRn9ZwwMaums9+kRaHjqYCgKizwY1mBsbGDqRAvjtg2XJ1gXjapNWQQfvSOa5zERcgHULCYAAXIOgUxT8C+V8ADg/UtmVqNsCsoIK34SWb75yTXBjUkcuWA0dAbCd5d5G2Jqt3AmmcgpVkSYBgnYVRJWgxfNJmqCmENwMb3JKDHfoUCL24dXLAlnQO6yluaeMCpFOEdUHfA9I5kL9Sqb32BPGo3TCCrhJ+t0ktOglZRUAoBBUg1ovobiGgaTezlK2a1s9EGUrBgrTOIuIARE0FiKDFFhFpkpmZTJ8OHLb2YJJaGDPXFngTbW5t0v2mMGxsvwXR6+nPqLliJk1aERAXIClTmPaxFhxd89gykGGnSZO/Xqlt39lN8VHr3/XOarzrl6vx0Ee6dcyZcnTNYyYL4QhsunAlZRMBicKmYE0sovMP2fznmCYSjIY4TtColzJThC7SJAJcVqNFBMRsURg4ApINqvHOXkhVOgDgS4AeAXBfpbadBJ6xdiqrhKibuNKGUpqC3hhO57jORTwC0gHjfeW1oTvwJuP8w07+/KkVTy08c+PZv5ZA9xB4r4APilox+dsPdMHFWSGWjVKBWixcxYU2m9thU7AkLitIDUj4FCzjGpC5GZqETmidzRR0Np/9QpsULAVPwcpK4Xc5pcVfK0J1weKjwLWmYPdsG+Qs0vV7QcAbA7VHat0+rnMlLkA6oNSI1iZRWAVSKuMuAN+Z6fePrBl8NyK+B8S7Cb3zNM+uB4CLaQpTH6FKkqCtYCcoLUs/XDsdMWkqQAQssnmtMGgxNVGQFKwkfDqSiGVmSw9Ba15+KDMCJHgK6oRN3XJiR9MmEkgtHeO6BBYgjMPay0r72zB5+a2FR5aIMvIzsYZx14/o6VdBcAHSAQ0kt4TONxb0VDUeiqOk9MX+0Qcv7f6euPm3bxybO+cOILqzQd0J8kcJvBvAlLkW1/Y1YhS8k0ujlJgshMv1FhEQaqHFzhYVOAWLxZgDEhmkYNnmfit4xKcVx1fvWTHGC2FTUCe4xs9ci03uX6roNSAtFmS9GgkwanYwhWy3iNU+gKlPQ09vYn1map4KjQuQDoiIlcFnoBNLATyWRI3HqvHQpY/PXfGVdl8INJgNwqWAxST5cqtFjNEOatgISFHaTIZuSXt89Z4VYwg89HoKWWrB24gu3GJiuEUHOwAguCikK5fshk/BygiMw9qr18Laa0ng1DOnOalNrM+wuCsOXoTeAQJXXP9b+UEMn4JF2RRDl5Ko1U6ySU1KqcFWKSVdx6rwPw1UbwSNgJzjuOm5o5oP0LSgUcJKC7utZvhYXtdJwBSsajy0JZStrFHxvHznCtIqQK+7AAmAC5AOEFQoAVJq0KAGxGAIIXRh9fGtTdPNCJs5IBfmlIMJEGBuYQRIH+YGjQhEfTYpgxdRhgrQRRsBQjYXYXYNLQCETqEMTqvIQ1oLQOdaCBix9uHahEph6n4kX8CIC90wuADpABq9gNPCYppvYtAOli1mgBxfvcdEUAoYv+3I1mALmHE0CiNA1hyLXglpj4psIyAZSsGSZCNAWkRAJtI5bWDUyqdicI0FWcBUzmxMpq7Gu81FF6GatQ/ZQFu6fUQvQA+HC5AOkIqVgtVXT06HtmkzEK954XIjqpvURbReUKVkr2y3UOsy54mt4yENWqUMXkTKzhBC0ub5l0BN7xdRZnVNVIu2wKmgOJyt65KRdsAhSQpRP1cM0mgG4BPQQ+ECpAPIYqVgjc2RRSGlRQpW0/qPRslmRxdE4F38gly3Cj8F3SJiN5VWAzSNuNnGLJvevyJvCu3JRfrGQw6HZBzO1vVgHNBWLZwtp0NCLeLTiEYNp3BMpwkuQDpABZmlcJFK7ZHgfcVtpko37ziVJDYCRAgbAbGe5N0tTDpCRbZDCLPUBUuyqgFpfg5EmQmQ1cdPtZrMXgQONPswvRaoLakFtteKDERAMi/GUl9LVOOdKf0cvAA9FC5AOsCq5WMqSAYteK0G4jWPgESR0YIqcAoWomIIEBoUZFO2mw5KsiNAYFQDp6R5G14rQSThNPFoPaDJwAvgVkMIU2uB2oLM1D2Y14AgO2LMkHLXfw6TBeg+4DEQLkDaJD31bYNo1Mee4XeU2WJ4nVVXH9AjIO0gtZ4HkRbmKVgZioDQ6DqKGDX9uUegzQYCwqZQZqfzVGg/Mr/r71wiRBSh+7VQXoAeFhcg7VMoAQLRZpKvTPLIm+eQG3X1AXAipDGShRAgFh2hCOsUrCgzNSAiTCLASVRvsYFglIIVeAMhQ2wJay4zQwid6xAmisA4hYMOp3BMpwUuQNqEKhWlkxAAgFBwAfLKyt0LOhjb3jZKWhYvmwiQKMGxkPaEokRADIbymXRtu8zcC+OZESCAjQCZN3ZDc+FplIIFKOgGQnhaznS4O6QX2ZnN0P3Wr23gO/VA3P1DegeskLgAaRMxjfZvdojhIyD1Ppup0qUWERCruS5JFFaAwLiVbLewmYlh1+oVAPouLGx67VpAKfzQTkGrj29tXgMCmy5YUuD7N/DCvxkT09gZBzTZtBC+h8l8nUL6wxK7n4JVqW0f7vYxnda4AGkTqjCzFCZQ+AjI2Jw+k4WwWtSAAFwV1pMJyvUo6ALGOo2oWyhJgkdAZJl6KWjlDz5pkyp5FRPRSxq8P5o3kAAAUCZtgcno5cAWM5D+q08Htpf5BbdzJQGGJXZbiLvIDYwLkLZJCiVAiPBF6FTd5By2amUq6JbQvgBAvTw/9A5qBhYwndOqGDlNCBrNvgCUoVqDs/MvhI9+TNC8fgtPlwia+KQkCSxAbKnGg/cD/HBYqy3TwCzoweGL2aIa7/p4CkLc068CU7Z2IK+INi+71CDfCG80MoqA1KftpglPl2o6eVPwihRRf0qhAAAXs0lEQVTptcrIJ84Htcnwwx87RdApit8T9D0K3yPxUqM0989C+lCNvzAPOB3S5BXwWrv/gUkiLqIsLDd/Th1deyJG+HIyAEBEht5ACM0wcLHzY/njAB4P70JmWvAiC4Mgc5IqlGLUSl9M4ZjD3T+mcy1cgLQN5wMmb+C0CB4BSZAspUEQbv7ZudMWcsdXn1ptUhDPsPnjry4bXGTTb/n6CDpI8SUANUi1CNGRKNFI3/j5I6tOfvaMtX/AWdvIkbIzBb1c71vUKCUGltVUgIilWwALf4AkagSLgFTj3ZvD/z318Wo89E8RvOvVVLwFb/7gfgCBI2WdUPIISGBcgLSJlMwnbXbc0oBq/mJP2arJTvyqkw9M69t/YU7jVosdVCrs7unYvGQJUAppcjrSNwU+H0EvJAkPK+GLt7380HdsnZoJiakAkcHgxVaIMhrCyqa7qg0kt1g9jfvGk9Fw1iyuQd4f3uaVZGXHv2jzv5zLVGrbXIAExgVI+8y3dqCbJCY1IFwaes2vlu2GbQrQFXii7fkIS4JnmUGnIuFxqvRfk2j+N4KnnHUJiktlk3c0YT9DQwgB3GBkt3laB3WzTQqWXl977DPnDAz3EhkqDu7+9O3ZIsBgs7Ad9LpVWuTs0T5rD3oRFyBtQrJQAgQWEZBIywweUM1b8IoDFotLEt8La7C8JHTqIMGV5Tr3rHl5W9cW0EfXPLasXp47p1LbFnAGg20LXqjl/JrgiJprYpjNNxAiYJ2NNGTKrUYd+HC4K8jPtO48zdTIk6/FwQVI+xRKgDAKHwEBwhdDE83z6IXkdovdGjXwUmCLJovoNS8/1Jb4eGXl7gVnbmxsoHhXAq0HcDeITXVwJdD4BIAvdtXRa2A1+fsihJp2/fr+qsGV5/r4PpZ0D4AfVmo7QhQJ2wgQsGn0TDTqTCSFvn8352dXuVvkZcHt5Be/xixwAdImkgpVAwJEwSMgApeGr/puvoss8naLn2aJChwB0ZLwC5jr9/C/LDSwPgHvJLVB4F1nkKwFCBHTegSoEbYoWwkXM7JLwbo4v2Z07eAHGuT7QLxXxLvOA2snzgxBYSiML5pjlPLUIn2PNgKEDHv/ZmIGSGgaw9YeTGGLtQNOGmTqGusZXIC0CVGsFCyTInTBogak6aKVwu0W66l1o6uCLmBoMwNkmgCpxkN3UHp/Ar6fwPvPILkDICeEBjBdbjSjeUFyWjBKllruPkv6lWo89GRjqk9Xf4dhWvUqiebYiDG2qrcwESBKAm8g9B4HKrVHatZOZIt8dASr1LYPV+Mg+yEdIeCNAb/GTHAB0iaC5hh0bU2NKDEoQoeCL+jYZAr6qRVPLTzNs5WgjgAQcJT42IXAZoMLEIn1I+t2fYqR1gt6J8R3AFggdnYH9Sn0XAzbCfIk18zga4HOiVENSJMIyPHVe+aP4YJJE4kodASz9xi2diCD1KwdKBL5qakpHi5A2qc46gNAuTHXog2vxYJumgA5O//Me2xa8BosXhg+hYPE7aD2AJNxjS6d6lLSCHrNUliqzN/1URABElFzZHLPRNMGB52PxjZYbQb1jZcD38M9VwPyjLUDVxFbO+B0Gw5be9CrhJ8CVxCIQhWA4Jbjn7Jo8WmwGz89BatBvDe0HwBAhM4fB0Dlbgp6K8bmKGjUTtDykPbaQY1AKVhkXwg70+1q4dWfsYz1Fr4AwK3Htx0NbLJnakAEjGRl/sdlFFt7kC9y0d522NqBXsUFSNtkfy90FpwnwvagHVn3+aUWk8ej5l2w/mZoPwBA1LcMzBZGgFRqjwStAQFtU7BmQolRkMJ8SibvDqnpAESTDQQAnrqRIsxe9CMr+HXXVep+Po1wAdIuLM65k8kQwrrRYu7KHeJa/1CF5I/a+IJvhjYocUVom6kgnQluEsq8ALn6+k7NilU7MOJtV38k8D4LVyQctrDbO9RDtJPOI2E3Xjoj874G38hyLlGYRXRoVKgULIMOWCiZLOaoK9sNJ5BZm44kmht854VADhbRMyFsBywAgLJ/7sTxIBEQKamHsDMdXjGJ+khl8G4CP2Ljiw4aGL3bwKYB2pfN7le819qDfOED/pzWuABpF2nc2oVuQbHpdOE0qaNhlArUuLRwrcaD/yfJn7TwQsDR245sDT97hXnYxZ8J4UUzjbtgzYT+kflNhxV2mwhR4/rf6j4E1h5Z98THLn0g/raFHwBA0kCA9MocED5q7YHjOOniXbDahOCYtQ9dgwouQFiiiQBpEO+oxkM/BukfALzNwocJbFr/UbypGE10GFSACHv6aryQ7dk/wllia5CNETFJrLoxMYp+vxoPPijhLgJmKYXletlTsFJB+yq1HcPWXmSXPNUs6PVsd23LRZF8YXEB0iYCzmX5tpoNNjUgWG5Rxk9G/3ryf8Ibn4rC755OzjspymUbNAVrpP/siqw/LkUFiX4AABIktvFz3mt7C+v1tcceeNnSg+JS+rS1B82oxrs3A4m1GzmrWfAULKc1noLVPq0m8uYOixQsFKgbUztE0HOhbb618FzmU4hmjsJOQVdf5s8dxWAChLRJwcoKAv8ytM1qPLQltM3w6JFKbVtGF61Jj6S/OU4YXIC0zfSJvLmF4SMgAjI/UyFNqPLe0DajJMn8InoWBN4FtEkZnBXEqXDGCvT8awMCf2btQ/HQvkpth3e+ckKSo2hS8XAB0iYRWJgICAxSsMDsdxRKCwHf6R99MEi71KlQUXHOOcPWgCRRPfuCWQg2TJSy6JyXHZTw69Y+FIwDQOMj1k5chwxEQLxmobt4ipglLkDaJLFYtKcEZREBKUo3pjYQ/tTELJWBF2iXSBBYwJWyf+4CRkAaBs+MzCAlC87xzw0sZ/8abAMBI0B9Sw5qGzZf/yuO48wUFyBtwpAFnymTWCwmlP2WpmlB0kqAFGMIIQAFnwOSfcFMhRMgLPWwACEP3XRq22kDy0VcAB8g6ptzID6ctlBs7YGTXbLd1iXDKNGrjIrRUIgRw3fBKsxAvNlD6b/a2OUKi85j6RBm4vcla9IKWndOuw6JGEyARAneTHp0+0qCp191hy9Vatvvt3YiZ+RMqDE2duA6qGbtQS/To6+QzokYFSYCQin8bh57tQuWavHI9qqJ5QJFQEpgkInfFyGZ+XMXBUzBKjV6NwISQX9i7UPOOQDgvvyJD22x9sBrFroNa9Ye9DIeAWmTpKFXWc72jugsOBvconBzpucTpYSEP7SzzRUZ38SfMUnEYAXXAABphfnsmOtA6ZVQtsr1sR+O980LZS5TzDs/9p+NTMdGdruCgBFCj1ZqO75o7YsTjELWLTndwQVIm8wRjgcZORyAJOGZkPZeXTa46E32ovwASHzFzrZWZHsq7cyZcyFcxycAALNfs1RvhEvBWnXys2eq/UNnQWR7OnyXkfS1VSc/G/R5OcV6nM/7V/sAfHHAhUcPos35vGadELgAaZM1L+84dqR/sE4y9+ewDAWNgJxeUF4B9N4cM0FvVmqvmRSgA8WKgBDlwBEQrMz6e/QG9QVNS5vIn+b6sDZtIflH1j7khAOAvgg0nqnUHqlZO9Ml+q0dCD2AtfjUa9Ye9DK5XzxbQnAUwIC1H52SRFHQHT1K2Z+pkAbCl4lHEyvzhYmASMnq41uDimZRKzIdtBO0+vjWsHVpxCiAnhIgQP3Ldra52M72tRHwBoFnAA0DjeECiY4pMDZ2APmrAcnuNQsAxbxO84MLkM6ooRACJGwEJIm0MqS9rBCBv2dpvygREAGBd/oBijdlWX/ApDsOR8PbNER4rjJiumDJUBte7ZtcDA8D9f0DvpBzmpOha9bJGi5AOkK1IuwozxvrCxoBSZRkvqVpCpyIR7b/sZVxYU9fjRcWWNnvJgSCTuGuxjuXIOM3uhC4JgYAhdHitHW+PoK+YO1DeLQPwOtTxEatF3eNJ58BjuN0ERcgHSDgxYK8f4NGQCJGKwSFNJkF/qWl8WNrkpss7XcTBd7tLzVKyxulkBZnDxlegAB40cCmCQLGF7+Ff2vtR1i0r1LbscXai2xQzshOvtcsdAsF3shypuNzQDqgJHzT2oduEDqfPkHSWzNABIkNUwFSLyeFSXsjGPTF0ShFmZ8BEnow4yTPGdi0Qfry8td2mM0+qca7M7IAdizJU/SpGg9tsfbhWhDKWT1N8XAB0gH18ty/tPahUwSNhbaZh6FuXYX4/YHqp09auhAljSKd86ACJEqQA/HG4DUgEwM1e6MrD8ndth4kngLkOE6hcAHSAbcd2fqGgKPWfnQCgXOhbUrFmch9XaSEwv9h7UYS5WEXf8YEXfTmpGmCiRCQ8FcWdkMi6XCltn3Y2g/HlC3WDuQQF83ONXEB0iEE/szah44Qg09B76UIiMB/N7FTbOxHkotF9EwJu9jORQTERoBEPZCGRfI3rH2YGEIYGtbC23RaIWDE2odZ4mmDzjVxAdIhUvI1ax86QYEL0CeN5mFB1zlSEgG/Zu0GADAqUNRJYdN+xDxcrzapUCKLHQERjse1h562dsNoBkXNwKbTAkI1ax8KRk+kj2YZFyCdEpW+au1CR9AgBYsFWgxfAwE7sxD9ACZmgFj70EWCvjiYCwEStjD/InMvzPkTC7uhIPBrBHuuZZ9zNfLd/NmT8RSsvA11LB4uQDpkoPrQCIQj1n60Cw0iIBQL0xK2JdJLlZG5v2ztxkVYJNEXRWEX20Lmr1cKJh2aJqevD1vYThsJ34hHtj9l7cckGV/MFR4//7PGRZtzbVyAdAPqK9YutI3CTkEfWff5pWC2h7p1jJSUEv4MsXXc2pVLFCrtrRE2BQt5OHfhu2Bdsiz8gZXt1BBUTpJPWLtxGV/MOV6T4xQLFyBdQExMZzx0BoOmYEXJeHF24ltB/NK6o9u/Ye3GFZDLrF3oFmqUws68yEUKVlhRNhWq9Hso2GRRQbvXHX34sLUfTma429oB5K4mh4utPXCyjQuQLjBQ/fS3oXx2g1HgNryNUqnoAuRfVWo7Hrd2YhoFioCUwk/9Xh3Y3qyhSmZTfftHH/whiC9b2U+BF/sa9X9k7YSTJegpWLPHo3bONXEB0iWkJHuLzpkRVIAkSoorQIRn49pD/6u1Gy24xdqBblFqJMEW29X4C/MI9IWy1y6UyST0S5Qa+GeW9ruFhNNRUvrJtcc+E7w5x7XhvdYeOE7B8CJ0Y1yAdInK6I7fzWGfbpBhi9CjXKSztIO+HI/M+UgWO+a8NLBncZHqbsr1sYCL7ddXhbPVPnMunDeLgADAuqPbvyHoTy196BhBEfjT/aMP5rapiNN9qvHurOzk52bBXI135iFi5G14jXEB0iUIKhI+Z+1HGwTd6StYO1gAAIXPVWo7PpKpovMpzLlQL47oE7Tq5GfPBDNXL2W+A1boc9KKSPxNax86QUg+FY889Ky1H07WSLKymM7RgrmcFdHmZBgXIF2kf+TVL0D6prUfsyIJGwEpUjtYSccA3BePbM/EsMFWNErFmYIu6pWQ9kpRlHkBIuKUtQ8AEI9s/2NA+asFEaQk+cWBkYf/jbUrzajGQ1tsLPvgO8dx0sMFSBchHk0i4Rck1a19mSkKPIgwH1Olr4OUUBiaf37sjkpt+7C1O9ejSHU3FF8LaS+JciHeMrQz2rgf0vetvZgFJ0qJ7h0Yffh3rB3JHt72dQJvgdwGWYkaORnGBUiX6R/d8a0I2U9FEPQmpCdV5+8HtZvrbkx6HdDj5YbuiEe278hC2stMKFLdjYCgAgRQ5iMgBEwL0KdSqT3yOoiftfZjJgj6j0k05451R3fku3bFSZmsdMCq56YGBN4By5kBZWsHikg8sv3XjvQPvYPE37b2ZTr67wAfH6jtCCo8LkLmsAZE+qagz5OLfrdS+8R5a3dmi8QVuS5BF54HdBCMDpHJ3qCmhZXM6LmTdIzEYQDPWPsylUptx75qPPggwM9b+9IU6SUQvzpQ2/F71q7MDG1Grm9gpxtUao9kKNJZBHIl6AqJC5CUIBf8FPTWsyDvs/YFwg8B/b9gaahS22Z70wkr8/AuFTQG8Q8i8PPxyPY/t/anE0itUD5O+nFQBwEejBIcaiSNg5VjN7xgXNxvHwGRXgNxSMJhkoejBIfmn51/cOUPPvmWtWutqNR2PHlk3ROnyehLWenAJukwGf2zeOTVp4lHE2t/Zk5WduB7FW1xAThrYmsHrocLOntcgKTE5E75h6rxrl8G9M9D25dwmtDvRIr+n/7Rh/4ktP1WiFqRkfXIZQSJ+C6Fb4D6yyjhXybRwr+qjOQv2tEMIWNRJ+mMiOchHKRwCBEPAvX9lZHsvRAY8twJZwV8i8AhgocT4VDE8cPxyCN5qqm4xMDow78zunaw1oj4eyBuNXTlAIXPxSPb/zCLbbIdpzXaN/FfDpu6MWsUZ0u0ad9kTVMNE+2MM/eu6UVcgKRMpfbQb9b6dz8jJL8L4p1p2xPwVSTJvxkYffjptG21A8FF1j4AeBHQQYDfjBJ9Y/7ZG/8iy7vJHUMsN7ErJQKPEDoI8hClg6VG6eCaYw++lJeFoKjl3RbMkuoEvgPisIRDJA+XGjq09uj2I3k5LzNl3dEdf/rqssH1by7iIICPBzEqNAT8d5L/SUyeHajuODDxG9uDmE+B2NqB3oaL0zy6gDcI7Qe4f6LzGPcD9Vql9kgtTbvF5AqhMeznMdu4AAlAPLLtBQD3HOkf/CckuzYrRMJpQPtJ/rco4deyFOloxtE1T95aR8AGYcKrE7UDODCR1pMcvDCHh9/2vR1j4ZywR8Ly1OsYpNdAHqRwKEFyEA0e7EP9UPOJ0ttSdqZ7UFjetv4QBGpE4mEShykcShqNw63TynZ05GtWWf7ajjfxGu6v9T/xJTH6FICf6boR4Ycg/iOAZyOV/kv/6IOZKczvnHC7yQJGLi+G67UgRrNPVwqqpwiN4UmhUctDF8U26U/rwFcKNrwOFxq5xQVIQAZGdvzGq8sGB08viD6YQO8HdS/I91/3D0ovCaiSPELpOwC/NWe88fzq458eDeB21xjvG19Bdf9FOrGjzG8DOADqIMWDUYID645uP951YzlkYvZKd867oAsAXoRwiOJBRMnBcn3OobXHHni5KwYyB5fN5FuCTlE8BOqwEhxmhEM3nB87lJdOaSGIRx7eC2BvNd75AFD6WYAfFHQPwbfN5jiT6aXfBfFdJHg+Av+kf3T711Nyu5Bcteu+v+CLYQMu7sRfEnP7B3qq5oBxd47T6+ex2LgACczkbuAfAfiji58dqezqLzW0JonQBwClRnQGaLwmll8r0k5eqYGVSYeNnwWdgnAAwEEyOgjwQGWk/HxWp5BngXYjIJKOETx0UdSVGji05thrLxCP5mbOTRe4ogBYwmkSz0s6RPIwhUPzzpcPrzr5QNABiXlmsvjzycl/8crK3QvOzq9vErFSCRcDXBwRi0TVKb5F4c2G8GaJeJVCtfc2FjpNAZqWluKLuBlSjXdvBlr3K5ge1SjtN2/0kkP8PPYmLkAywED1oREAI9Z+pE0SzXwehYBxQC9APAjoIBIcYKl0cKC27USaPhYRgtesAbm4qKZwMIEOkjiURHP333Zk6xuhfMwix1fvmT/GC79P4TDFA6Ker4xsr1r7VTRuOrXtNIA/s/Yjw8woBejK9CnsB6KaL+I6Jbm0AXHlIhkXd+NrZq5llBmItquuUz+PvYoLECcYSriCTSIggk4SOCDxYEk4kJH2q4VgZN3nlyZsTMQ/pETESxAPUjpIRoeiJDlYxOLnbrD6+NazQD6G6jm9g6dPhaReA8of9UXybEimRo0PALh4ne7369SZigsQJxzEEky0wJtYAAsHoqT+3Npjnwk83bp3SKIxSdE/JEuHwAUHBpoOUixm8bPjFIQvwdOnTJgsbK4Zu5Ez6vuB8n0uNpzrsnfvXt/5dBzHcRzHcRwndfbu3asOS4Idx3Ecx3Ecx3FmjgsQx3Ecx3Ecx3GC4QLEcRzHcRzHcZxguABxHMdxHMdxHCcYLkAcx3Ecx3EcxwmGCxDHcRzHcRzHcYLhAsRxHMdxHMdxnGC4AHEcx3Ecx3EcJxguQBzHcRzHcRzHCYYLEMdxHMdxHMdxgsG9e/fK2gnHcRzHcRzHcXqD/x+Do+rWQ+oR4AAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text3(r):\\n\",\n        \"    return (StSt(\\\"CDELOPTY\\\", co, 150\\n\",\n        \"        , wdth=0.5\\n\",\n        \"        , rotate=10\\n\",\n        \"        , tu=150)\\n\",\n        \"        .f(hsl(0.9, s=0.75))\\n\",\n        \"        .align(r))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"TCyBoKKXoutt\"\n      },\n      \"source\": [\n        \"What’s interesting (and different) about setting text with Coldtype is that you aren’t telling the computer to draw text, you’re asking for information about the individual glyphs and where they sit, given the parameters you’re passing into `StSt` function.\\n\",\n        \"\\n\",\n        \"Put another way, what you get back from calling (`StSt`...) is a rich set of data that can be inspected and manipulated.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 7,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 129\n        },\n        \"id\": \"2Ae7AcCBjsJa\",\n        \"outputId\": \"ef4d8b3e-a2b1-4404-b19a-dde422bc906f\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text4(r):\\n\",\n        \"    pens = (StSt(\\\"COLDTYPE\\\", co, 150\\n\",\n        \"        , wdth=0.5\\n\",\n        \"        , rotate=10\\n\",\n        \"        , tu=150)\\n\",\n        \"        .f(Gradient.Vertical(r,\\n\",\n        \"            hsl(0.5, s=0.8),\\n\",\n        \"            hsl(0.8, s=0.75)))\\n\",\n        \"        .align(r))\\n\",\n        \"\\n\",\n        \"    pens[0].rotate(180)\\n\",\n        \"    pens[-1].rotate(180)\\n\",\n        \"    pens[-2].rotate(10)\\n\",\n        \"    return pens\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 12,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"j4EPWL3Sp2KF\",\n        \"outputId\": \"6c8b8b06-495b-458d-8141-934c0928c6b8\"\n      },\n      \"outputs\": [\n        {\n          \"name\": \"stdout\",\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"\\n\",\n            \" <®:P:/4...>\\n\",\n            \" - <®:P:RecordingPen(12mvs) {frame=Rect(205.08,18.75,93.45,112.50),glyphName=C}>\\n\",\n            \" - <®:P:RecordingPen(12mvs) {frame=Rect(298.53,18.75,110.70,112.50),glyphName=O}>\\n\",\n            \" - <®:P:RecordingPen(12mvs) {frame=Rect(409.23,18.75,70.65,112.50),glyphName=L}>\\n\",\n            \" - <®:P:RecordingPen(18mvs) {frame=Rect(479.88,18.75,108.15,112.50),glyphName=D}>\\n\"\n          ]\n        },\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text_print(r):\\n\",\n        \"    pens = (StSt(\\\"COLD\\\", co, 150).align(r))\\n\",\n        \"    print(pens.tree()) # <<< printing here\\n\",\n        \"    return pens\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"iEgF3YhNa3ko\"\n      },\n      \"source\": [\n        \"### _An aside_\\n\",\n        \"\\n\",\n        \"Just for fun, here’s a more coldtype-y way to do that last manipulation: rather than declare a variable `pens` and then manipulate it in a line-wise fashion (`pens[0].rotate...`), you can use functions built-in to the `P` class to manipulate the form without leaving the \\\"chain\\\" (that is, the chained expression).\\n\",\n        \"\\n\",\n        \"So the keys here are the lines `.indices` and `.index`, which target elements of the tree (using standard python-style indexing), and then give you the opportunity to do anything you'd like in a lambda. So in just one line, we can rotate both the `C` (index 0) and the `E` (index -1) with a single lambda (i.e. a function that, in this case, is called for each index).\\n\",\n        \"\\n\",\n        \"Also we can change the colors since who wants to see the same colors again.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 6,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 129\n        },\n        \"id\": \"SRiiWR6ZZ1O4\",\n        \"outputId\": \"189ee78d-1ba0-41e2-94aa-c6a8a87997ca\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text4_more_coldtypey(r):\\n\",\n        \"    return (StSt(\\\"COLDTYPE\\\", co, 150\\n\",\n        \"        , wdth=0.5\\n\",\n        \"        , rotate=10\\n\",\n        \"        , tu=150)\\n\",\n        \"        .align(r)\\n\",\n        \"        .indices([0, -1], lambda p: p.rotate(180))\\n\",\n        \"        .index(-2, lambda p: p.rotate(10))\\n\",\n        \"        .ch(lambda p: p\\n\",\n        \"            .f(Gradient.V(p.ambit(),\\n\",\n        \"                hsl(0.55, 1),\\n\",\n        \"                hsl(0.45, 1)))))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"rFNQ6Mqxp8dT\"\n      },\n      \"source\": [\n        \"### Debugging\\n\",\n        \"\\n\",\n        \"To see a tree-like representation of the vector/text data, try something like this:\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_qxJQCJCqE-N\"\n      },\n      \"source\": [\n        \"## Less Basic Text\\n\",\n        \"\\n\",\n        \"Usually, glyph-wise structured representation of text is not a feature of software or software libraries, because when programmers sit down to implement support for text, they do it with the understanding that if you want text, you probably want a _lot_ of text — great big slabs of it, set in large blocks, like this paragraph that you’re reading now.\\n\",\n        \"\\n\",\n        \"But for lots of graphic design (particularly animation), what you actually want is very precise control over only a few glyphs, maybe a line or two. That was some of the magic of technologies like moveable type, or especially Letraset; they gave designers direct control over letterforms. A lot like when you hit “Convert to Outlines” in Illustrator today.\\n\",\n        \"\\n\",\n        \"Of course, there’s a big downside to converting-to-outlines: it is excruciatingly slow. And more than that, even when you’re working with just a few letters, you might need to change those letters at the last minute, right before a project is due.\\n\",\n        \"\\n\",\n        \"Which is where code really shines. All the manipulations I’ve done so far are not “one-way” or “destructive” (like Convert to Outlines). As far as we’re concerned, the “textbox” (so to speak) is still intact: `StSt(\\\"COLDTYPE\\\"...`\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"TqWObH10qPVk\"\n      },\n      \"source\": [\n        \"To illustrate that point, let’s change the text:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 8,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 127\n        },\n        \"id\": \"Nip4LuANj8PQ\",\n        \"outputId\": \"3ef035a8-acc6-4a4c-facb-ee0c109e3492\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAACWCAYAAAAmC+ydAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJztnX20pVV93z+DjCCvI8gAA8gZlCAgMIigaHEuNVkmVWOiKzWR+oKNVl1dxabarhWJYJvW2FWj1i7TZaKOMa2p8V2rNdrMGa0maVUYQEEUPCPDi/Iil5cBAZn+se/xnrlznrnnZe/93c9+vp+1zrozZ+7s3+8+95zn7O/+va3ZunXrbowxxhhjjDEmBxYgxhhjjDHGmBxs3bp1935qJ4wxxhhjjDHdwQLEGGOMMcYYkw0LEGOMMcYYY0w2LECMMcYYY4wx2bAAMcYYY4wxxmTDAsQYY4wxxhiTDQsQY4wxxhhjTDYsQIwxxhhjjDHZsAAxxhhjjDHGZMMCxBhjjDHGGJMNCxBj8rEZWFA7YcwKNgIvAi5UO2JMh9gI/Fvgq2pHjFGwv9oBUwSbgLOAbcBA60oV9AjXc9PSo7f0FeA9QF/hlOk8hxJel2cCZ4x8PXTp398KbNW4ZkwneDzwMuDlwDOWnntI544xOixAusdQbPQIp/ELI//2+PzutJp17C00Flb5P1emdckYHgOcwp5C40zgiav8v9sS+9UWDgOOBo4Z+foE4AjCe34dcDCwC7gXuG/p62cJhzjGjPJY4IUE0fGPgLVj/v0QwuvImM5gAVI3m1k+fd/E6pvjuxP702aG17JHuI6bCBuRaenHcqhlDMXavtiOX4PTcgx7C41TgQNmWKtLAmQj4VqdxPL7euPS10Ob/tMqXEd3BMhBBJH7ZOBJwJEE4Xbo0uMgYBG4E7gD2AlcS7hGtwj8VfBsguj4x6x+uLceC5A2sA44h/D7+qjYl9ZjAVIHPeBEwsa4x7LgmIYdUT1qLz2a06fmZZG6U9xGI0LrCK/HdUx3/QaEKNGngc9gQTLkAILIGBUaZwBHRbRxe8S1SuNk4DmEg4TNrB4NmoWbEqxZAocAFwD/YOlxCiEyNCs3AZ8EPg98ZW7vymIj8CrgnxDE7aSsB25M4ZCZiccQDnLOZDlt9Uxgw9K/97EAmRsLkHYxusHrsbxJnuUkfiWDCGu0lcvJUyBeU/rVyuharNdhb+nxGwTxsQV4G90SIiext9A4mfRNQ36aeP2cnEhId9kM/EPiCrUmajnEOYJwL7yAINrOImzIYnECcMnSYyfh/vth4JGINnLyeOC3CdGO82dcYx5BZ+bjCOBp7Ck0TiOkxjVR82FNNixAyqTHnhGNHvE2eF1kuFluKrK/LJMf/Ux2YrKJ8FocFRq9TLbXAW8kiJGLaef12xeHseeH3hnAU5k9BWhe2i5AhhvBi4BnAWsy2x9kthebXwP+GaEjWi6OB/4MuBR4De2JiDwWeD5BdDyffW9WJ8ECJD1rGR/VOGaGtSxAImABUgaXMVu6SkxqOJ3vse/0qQvRbhJKvsbD6NoCe9a6lECP0J3pYkJEpG08BngKewqNMwknwSXRxg/VAwkb5ouAX2XvAt9c/BR4QGR7Hg4mvK/+OSG1SkUP+BLw+8A7hH6sxvnAKwh1HUdEXNcCJC7D2rhRoXEq8e4PbbxXFocFiJ4eIQStpk0pLrN0nwL9z9gX2x+SKn0qNR9a+rpF6cQqbCBEMTYRhMbpwNlSjybjPmC32okpOIzQNvh1hE20moHagSk5AfjXhHqFQ7Su/IL9gD8iRK8uopyi7BNZrut4ciIbFiCzsZZwjx0VGmeRPuXSAiQCFiB6emoHCidW9ykYH4HItfHeQX4BpEyfSsWHCJu9vtYNIJyAvpjl1Kmn0Q4hN462pF/tD7yeEDU+UuzLKDerHZiQxwL/ipDydJDYlyZ+HfgcoXZHJYoPZ7mu49kZ7FmArM4G9hYap6DZx1qARMACxAzpi+33SNd9al/kSnnLnX7VJ4i3GnkXZUQVLgD+VO1EJNogQI4jbExL+N2vZKfagQk4B/gY03VnUrFAaD7x1ow21xIaF7yCUNcxSyvrWVmf0VZbeCLwXELq9IWEeqFSsACJgAWIUbAOeCXTpU+1ndwC5MTM9nKyiZC2eLnWDQ4X24/JHWoHVuGXgf9B3Lz7mJQuQF4A/BWhZqYtXAr8JfDdDLYuIdxPVBHMHF3aSmcDIeo1FBwbte7sEwuQCFiA6FEVna8kZ3rQJuDdGe1BmMExjl4m+/1Mdob0MtvLzXDDoKQmAXKX2oF98GpCp6TcXa2moWQB8mZCYXfJ128ca4D3keeA6nS06ZNdTcFaC7wEeAMhotwWSj+waQWp+8qb1SklZzznCf0go60hTT9fT2zfzMY6QmGokpoESKkfqK8HPkD5m+dSBchlwH+k/OvXxGbgNzPYGWSwsS+OYP5Wvm1iA/CHhKGUH6Vd4gPgx2oHasACxCgYqB3IjKIAvQtcIrZfkwApMaXgrYQT8DZQ4hT016GPEsbgLRlsDDLYWI1Z5lG0jecAnyU0bXgL7Yz83EW7OgYWiwWIgeb0pC6QIwWun8HGKKVE1VKj7upVkwD5idqBFfxTQhFyWyhNgFxIe8TbapxD6DSXkhKm2NcsQE4APkkYBvxCsS/zUmq0uHVYgOhZUDuAJj0o9w1/0PB8js167utbSl1RDn5DaLsmoVeSADkN+C9qJ6agtCGERxIKztuadjWO1yVef5B4/UloYzRgEi4BfkSeVLoclBgtbiUWIEbFoBB7OU6xXf+RjgWh7ZoiIKV8qD4O+BTt6tZUUv3HGoL4KGlGSgwuIm1b3FuARxKuPwm1CZBhE4HcDWdSc6fagVqwADFdp8YUrC6hnHVSkwApZQ7I5cAvqZ2YkpIEyJsI6Ve1cTjwKwnX3004pVdSUwrWAYSDhNerHUmAU7AiYQFiQLNB7kpUYLvAZk2pQauxDl3KWU0CpIQ6sNMJU7rbRikC5FjqKDpvIrWwUguQWiIg+xHqPV6kdiQRFiCRsADRU+u06tXI3RVqMOa5Xga7CqHVpRoQ0BWiW4DEYw3wEeAxYj9moRQB8i7gILUTCUktQNSNBGoRIH9MmChfKxYgkbAAMV1hMOa5Xga7XYn0KHEEZH7UbaIvAs4W+zArN6sdAJ4NvFTtRGLOAg5JuL5agNSQgvVa9O3RU2MBEgkLEAOaFCyFzZXU2AGriygEyBrqOW2+H3hUaH8NYWBeWykhAvIOtQMZ2A/45YTrOwVrPp4G/InaiQxYgETCAsR0mVoL0LtUAwKan/cJApupUKdfvQR4stiHeVBHQM4lREC6wNMTru0IyOwcTOi+1oU9pbtgRaILL5aSWVA7YJKiKECH7tWAnCWwWZPIu0ds/61i+/OijoC8WWw/Jyk7pKkjIIcRNvJt5O3ASWonMlFKy/LWYwFiQJMm1M9sb9zPmHqj3k+8vgkoxMDjBTZToRQgF5B+ynVKHkFbP3McIYLUFU5JuLZagEA7oyAnAG9QO5ERR0AiYQFiQF+AmoNxP2PqjavrP+rFEZA4vEpoOwYDsf3X0a3P8ZQC5B5CPZSS48T2Z+FttLN73SzsppyZSa2nSzcuY1ZyYuL1VQIk9c9VIguZ7dUkQB4U2T2Q9nduUqdf/Y7Yfm4OIJy4p0JdB3Ks2P60nAS8Uu1ERu4giBATAQsQLQtqB4AdQtvbhLYhfRtelQDpiex2iZpSsO4T2X0J7c15H6IsQD8PeJLQvoqUUQK1oNwgtj8tb6Jb+0h3wIpIl144ZjwDtQOVohZXJi01RUBUAqSGk1PlhrVr0Y8hRyVcW93RrG0RkIvUDmTGAiQiFiCmC4yL8iwktun6j7qxAJmPw0k70yEXt4jsrgFeJrKtJmULbEdAJudiQueuLnGX2oGasADRUsImRlmAnmuTPshkZxSVAOlaC14VJbx3Y6EQIL9C2ES3HZUAOQ9YL7KtJmUERC1A2hQBea3aAQGOgERkf7UDHaeEzaLypF4pflJfe9V1VWyML2ZZ5G0CLieccOck98/tGpD5eJ7AZgpUAuS5Irsl4AiIntOBZ6qdEGABEhELENNVUm5YF+lWCtaWkT/3Cdf2ssw+bAI+ndGeIyDz8asCmylQ1QzUkL42KzXXgLRFgHSt9mOIBUhELECMEuUmvZdwbeXPlXtjvDjmuXeTX4Dkpm0CZDdh0Nr1Yx6DzL6cDByf2WYqFF0EDwQuFNiFcNiwi1AAr4oCHpJwbXUEZDgNXT2PZDVeoHZAhAVIRCxAtOROUxlHV1OwegnX7idcezVyp/WNe/3cTegCtjmzLzkp4b3bxP3At4GrgauA7YTfk2rex0rOVzsQCdX961kiu/8euHTpz+8DrhH58diEa98OPAysTWhjNTYA3xfaX41jgTPUToiwAImIBYiWEmpAujoFPeUGskvpV6WQ+3VcQgTkp8B1S4/vETaE1wI3Kp2agGeoHYjEbSK7quv3zpE/f4cgbs8U+JFaHOwENia2sS9KFyAvVjsgxAIkIhYgRskgk51xgiCl+LMACVGgnBGQ3Nf8mMz2AL4IfIkQ3fge8BOBDzGwAJkPxfX7GkHwjvJ9NAIkZQQE9AKk9E5YXU2/ArfhjYoFiBl01HYqFtH+XL3M9gaZ7ZWAanr3x4EPRlrrVOAsQnrWtZHWnIS1wNkZ7aXkVpHd8wQ2vzrmOVUHsNQCxIXozexH+hlaJWMBEhELEB09tQNLDNQOCFhIuHY/4dqT0Mtsb5DZXgkcIbK78gR6Us5dejyNIDqeSihkhtBNKacAOY965k8pIiAb0JyQj6v3eCi7F4HUKVgWIM2czfK9o4vcqXagJixAdPTUDhTCImUX9E6L06/qR9X9Z5LTtzOBcwiC4xxWPy3PfYpfS/QD4McCm+cKbMJ4kfqz7F4EcqRgKSlZgNTSQGIWFgndBE0kLECMmivJ3y1pIeHa/YRrT0JNYq5UjhTZHY2A7EdIozoHePrS103AQVOumfsU/9TM9lKiqMEpSYDUMMl+HOoISMk1IKoObCUwawTaNGAB0m22qR2oEHUEpIQ2vLWjioC8mjCE7SmEdKoY5M5pPi2zvZQoIiCKou+djE+3UqXipE79cgSkmS5HQFz/ERkLEB0ltODtCis3yamu/Q660dZ4lK79vKCrAbkk8nqKjVZNAkQRAXmKwOZNDc+rBMjDiddXR0COE9tvYj3dTh13/UdkaikGbCMlzBEogX4GGys3yamufT/RuqYsVAIkNrk/UA8mbGJqIbcAeQxwUmabUJ4ASR0BuRVtrv/BwKFC+03UVL81C46ARMYCpNsM1A6IODHRuup0pC5H1foZbalSsGKTe6hWbRuY3AX8JxNESG5+1PD8AVm9WCa1AHkY3YyXISXWgag/X/4G+HXCAVCTKE6JBUhknILVbQZqB0T0Eq2rFiCKqFpfYFONIyCz0dYC9NsJ0+XvJHTCuZuwQU2dCrSSUzLbG9KUqqeah5Pjut+MVgQcC1wvtD8OpQD5LcIcpCGKzzoLkMhYgOhYUDtQCLk37b2Ea/cTrt02FtQOJKSWCEhuAfKkzPam4TZCp6fvLz2+RziguQHYpXNrDxT1H9BcbK/quJdLgDw9g50mSixEP0tk92PsKT5Ak6LmLliRsQDpNiUUEOf2oZdo3e2J1p0G1xXlQdWGNza533tPzGyviVuBrwN/u/T4DnCP1KPJUNR/QHOqmUqA5BCE6kL00lKwHocugrllxd9VrztHQCJjAdJt1ClDClKFkUu4lrlD5IuZ7TWRW/zVEgHJfaJ3QmZ7Q+4Evgx8idB6/IciP+ZFJeBKEyA5xOItGWzsi9IEyBkiu/cAX1zxnCoF1l2wImMBosMD4wK5N+7ugBWPEkQX5D/Jr6UGJPeJXu4N9MPAfwD+EHgks+0UWIAE7s1gQx0BKS0F63SR3a+Pea6EQbAmAhYgOtQdJUoh9+ZxIdG6pWzGS0GVL5wDC5DZyL2Bfi9weeQ1zwCeR6gZ+YvIa6/Gxsz2IKQ7NW34VZHAHBEQtQApLQLyZJHdvx/znOr+6xSsyFiAdJsubppTndqVcC1LErU561EGGW2tocwe/bOQ80RPcaL7iTn//0GEQuSnA+cBzwaOX/q3P5hz7WlZR8jDz01TO9qD0LXxtwDJj0qA/N2Y51QCxBGQyFiAdJsSitAhTBBPNZtjJSk26dsSrDkLuYvQB5ntNTHIaOuojLZSkzOnWVH/cTrwjSm+/xyC0Dh36c9n7uN775/Dr1lQpV81zYpRNrzoQg1IaSlYKgFy9ZjnnIJVCRYgGnpqBwpjQB4BkupDs4Toh4JBw/MlRWJiU0v6FeRNKTgmo60h7yRMXn8/YZbHkMcRWto+BTgNOB94JtPNtcjdmlclQG5veF5Zw5ijBuRuQg3R2gy2xnHYku3cs2aa+CWBzZ8xXggq7sG7gQcEdqvGAkRDT+0AIerQNVJtjPuJ1p2WUhob5D4dzSkAaxIgTZvLFKzPaGvIoYQC9D9MsHbuzYgqJaerERAIBywnZ7I1jicS5tCoWQ8cIrDb9LMr7sFNs3DMHKhyOI2egdqBEVKngg03qL3E66upOfKwL3KmEtbSgvcB4KGM9p6Q0VYOcqdgqVL/mkSq8n2QS4A4DSugSr8qSYCUkq5eFRYgpgRSb+CHN49egrUXKUvM5aTp91azEKolApK7p70FyHyoBEhTBEQpQHLNH1IXoh+/+rdkIVd95koGDc8r7sGu/0iABYiGntoBuqnoU2yMS4l+KGh6DeVOz+hntFWLAMndUrKm4n3IXwPiCMgyuVIHHQEJqAaINs2fsQCpBAsQDT21A5S1cc4lhlJsjPsJ1pyFBbUDI/TUDiSklhSs3AKktgjIfZntqa5f02ZfWQOS6/NCHQEpRYCoIjFNAtACpBIsQEwJ5BJDmxOsWZKQK4VeRlu5mymoWkDGxgJkPnLVIQw5OrO9IU0bL0VTAcgblXAEJKCKgDRdf8UhkAVIAixAjJmPvtoBIf2G53PmDA8y2oJ6NtK5a0BqSV0bkqMV7CiqFKym14lKgOTs3GYBEjhOZLcpAqUQ4xYgCbAA0VBCkW7XTu4XEqy5g3JqaXpqB0boZbSV+3VcSwQktwBRpuykILcAUW34m4rQS6tJSYE6BUu18V9JSTUg08zqiYkFSAIsQDSU8GFcysYZ8kQRUlzzkkRcT+3AErnFde7XcS0CpGljmYqaIiCPkrcI/RB0A/GaNvwqAfKTjLZ2ZrQ1DtXwyVH2RxNxeJjxm35VDV7ulNVOYAFiuoI7YMWlqRXmQk4ncARkVnJGQA4B1mS0l5rc9R+HZbY3ZF/ivgspWA+j3XiuRd/04jg0790moam6Hrkjxp3AAqS7lBQByUHNHbAUNG38F3I6gSMgs5IzAqLeRMUmd/qVSoA0bbrWoBMgt2W21/U0LFX6VZPQVEVSHQFJgAWIhhTdmKaltNP77YnXrz0CsqB2gCDycr+2c/4O1hBO82sg54ne4Rlt5aDrAuQIdBGt3GlR6jQs9TDCY0R2HQHpABYgphRSn2TH7sy0ne5FkVbjjeStb1ok7++gpmF6joDMTlcESNNrRNUSGPJHJHJHXFaijoCU1mzANSAVYQFiusAriV+kXVL0Q8HKjf8m4JLMPuT+HZTQPCIWFiCzk7sG5NDM9oY0df45NqsXe5JbgKhTsNSteEsbgKlKwcrdtKMT7K92wEjYpnZgDFeSLn1nS4I1SxMgudNcRn/+FxGuce4N+iCzvbYKkJuAH4w8biBvW0nVBjoVTQ0YUqGKgDT9nKq0HMifEnVTZnsrUQuQ0rqdKe7Bi8Bugd3qsQDJz4LagUJpWzpTaQIkd/vbzcCnCK9n1cbcEZDAfcB3gRsJouyHS48dwPU6t37BQWoHItOVLlhNAkQVAbmbvO2PQS9AVrvWpwAvBy5NZL+0FCxFBMT1H4mwADFmNvpqB8QsqB2gmwLk6wSxcS1wDXAd+k3SatQmQLoSAWk6FFIJEEU61I8ENkdpqgF5HvAvl75CfQKk6bWnECAeQpgIC5BuMlA7MIaB2oEpSN2xy0xGP7M9hQC5Engf8C3g2wL7MahNgOSOgDwus70hTZtAVRG6Qmira0BGu2BtBF5DiHis7I61AbglgX1VDUhJAsQF6ImwAMlPCaeog33822ZC0ein87jyCwaZ7c1DX+2AkYhAxXv3YOBPI6+5kVBUmaubU20CJHcE5IDM9oY0vT5UE7p3CGzeTbgOqjqmY4BXAL8LXLCP70slQBwBsQBJhgVIfnLn6jexDjiLkErTI/g19O3D5BcgbaK0+o8FtQMCFL8DhQCZJ/x/NHD60uOpwBlLXw8FTiWkb+WgNgGSOwKiEiAPNjwfu6X5pNwgsnsTcJrINoTP49U4HvhmAtuqIvgmAaLoqOcakERYgHSTy5YeTQwy+aG2OSulCZAuohDICgEyyYffeoLIOG3p66mEw4V9fVjnPNWrTYDkjoA8NrO9IeMEyP7opmP/QGR3J1oBMgkp5oUcmGDNSSkpAuIakERYgJhSGKgdmAILED19gU2FAFn5Qbw/cDbwrJHHLNOSm7rMpMACZD5UAuSBMc8dh24KukqAlN7kAdJMTFemi487IFmDxienYCXCAiQ/PbUDE9BXO1AwJc5Q6RqqKfSKD7/DgN8jpE+dDpwbYc1d5O1rr9pAp6LLKVgnZ/diGVVL6TYIkBQREJUAeRB4dMzzj0cjfi1AEmEBkp+e2oGCWST/QL1p6asdGMOC2oHMbBHZVXwgP3/pEZPcJ/iqE/NUdCUCst+Y51SpSLcAPxPZtgDJS5PAV9R/gAVIMsbdYIxRDQVsQ2pTG3ysHVWDBNUHYGxyn+DXJkByX7+1me0NGdf5SSVAvi+yCxYguWnqvnZkVi+WcQ1IIixAzDi8yW5moHag42xD9zuoRYA4AjIfua+f6nN63ADE87N7EbhWZBdCEXrpnJRgTZUAua/hedVMEguQRDgFKx3DNrebWG5z28MpWPtiQJhDUjIWZ1q2CG2vF9qOSa75H0NqOuh6FLg/s82c9TqjrKz3WAecqXAEuEZkF/TT0CdhLSFiFfO97QhIwAIkERYg8dlKu3Pyc5/ujTIQ2m4zC2oHMrEDnQA5jHpO8nOnWNZy3UBzf3xEYBP2Fhu/LfEicJXQ9v1ohxFOyrHUIUB2NTzvCEhl1HQyVQoLagfmxCf8plS2CG0r+s+nIvcm+uHM9lLSlB6Skp8LbAK8FHjS0p+PAt4i8gPgaqFtgJvF9ifhmMjrqdpnNw3AVAiQ3TQLIjMnFiCmJEoXPzvUDnSYReDdQvsWILOj6l6UgtzpazC+JWku/pbluqsUsyYmYSe6xihD2iBAjo28nqr5wbj5M6BJwfqxwGZncAqWKQn1h8xqDNQONFB66+IYvArt60OVf5yC3NexaUPRRnJ3wAKtADlq6aFEHf2AdhSiHx15PZUAaYqYKu7BTr9KiCMgcempHYhAX+2AmZpNagcS8xl0rXeH1BQBsQCZHUUERJWCVQrfVDtAmENSOrEjIKr5M01NFxQpWKUfirYaC5C49NQOtBy/2c1KFgnRDzUWILPTlNPdRhQRkJqu3yx8Q+0A7RAgtURALEA6ggWIKQlV141JKb1GpTYWCU0dSvgQsACZnZoiIAoBorBZEl9XO0A7akBiF6GrBEhTyqEFSGVYgJiVeJPdTIk3o57agUQMxUcpr8fSxfE05H4d17SBVvwsirSvUriaMn5+C5B8NAkQRQ1IiZ/51WABEpcaNinKN1wN1y83PbUDCShNfICuB30KchdW3pHZXkocAclLCelX0I4i9Fq6YB0w5rkj0PhjAZIQC5C41F4MnBpfP7ONIKpKEh9gATIPd2a2lxILkLyUkH4FcCu6ifSTcjRxh36qft7DxjwXO7ozKRYgCbEAMWZy+moHKmYRuJhyaj5WUpMAuSuzvZoiIIpBhCWkIKn432oHlthN+WlYa4gbBVHN7xnXVt4CpEIsQMxK/IZrFwtqB+ZkEXgbIeqxRerJvqlFgDxE/sm+NUVAFFORuzqL4NuU1X3qVrUDExBzWKSqecSGMc/F7vA1Kd4PJcSDCOPSUzsQAWXqy4LQtsnLDuBywnyPNtzkaxEgtwts3iawmYr7BTZL2oTn5AtqB1bQBgEybvM+Kw9FXGsankyIgiyOPBe7vmVSFlf/FjMrjoDEpad2wJiC2QG8Bzib5YhHG8THGuppkKCIRuwCfiywmwJFBORGgc0S+LzagRV0TYAo22e/eMXf10u86G70MQuOgBgzOX21A2PoqR3YB4uEazZ8lFZYPimqD78UqATfDnRpFDFRREB2Ed5L43Lja+UO4P+qnVhBGwTIcRHXUtWAQDioOo3wfnsS8FyRH204IGstFiBmlG1i+2eJ7beRntqBEbazLDSGjxqoJf0KdCkFA+A8ke2YKCIgAD8CzhDZVvAxyus61QYBckLEtZTd1w4F3iS0P8QpWAmxAInLZrUDLaeWNJfa2U44GeoTRMaAesTGOCxA5mcgshsbRQQEuidAPqR2YAxtECAxi9B/EnGttuJrkBALEGPMtHRtXktNAkSVUnCdyG5sVBGQ64Dni2zn5nrgm2onxtA1AVJL3dasPEB5UbiqcBG6GaUvtF36pna72oEGHHVLz1FqByKiioBcIbIbmwdFdr8tsqvg/WoHGmiDANkYca2un/67/iMxFiDx6KkdaDmlp1/5ZtRdaoqAqATIVcDDItsxUUVAviWym5sHgA+qnWig9EGEELJaYt2vLEBMUixA4tFTO2BMBrpYlFeTAFF9qD4KXCOyHRNVDcj30ImfnHyAsluftmFT/sRI6/yYbqcglfw6rAILEDPKQGi79BSsElFcs5qLzZuoKQVLear3DaHtGDxMEFIqak/DehR4p9qJVWhDGlasTli7Cc0PuspdagdqxwLEjDIQ2i49BatEfM3y4AhIHL4itB0DdQSi9jSsT1B+t7Tb1A5MQMxC9O9GXKttKNsQdwILkHgsqB0wSeniyb8JWIDE4StoIwjzopwMDfBlsf3U/Du1AxPQBgEScxbIVRHXaht3qh2oHQsQUwoLagdWocSCtJ7agY5QkwBR1vDe8xK2AAAHOklEQVTcR5ntVSdFHQH5MnCv2IdUvBe4Wu3EBLRBgDgCEoda32vFYAFiRhmoHTBT0VM70BGOVTsQEXUTgU+L7c+DqgB9yEPAZ8Q+pOAO4C1qJyakDQIkZgSkhsYRs1LioWNVWIDEo4Yi6oHaAWMK40BgrdqJiKiHi32Y9nbWUc0AGeWv1A4k4I2057RZ/f6ZhJgRkKvQC28VFiCJsQCJhwuC58MD9abHr7n01NQB6z61A8AtwF+rnZgRdQ0IwBdoxzyKSfkk8N/UTkxBGyIgsdrwAjwCbIu4XpuwAEmMBYgx7aWGqFvprFc7EBF1+tWQd6sdmJESBMgjlN+qdlKuA16udmJK2iBA9ifuwUnbu9fNSin3y2qxAInHiWoHTFL6agcKoWvdwGoqQC9lsNb/op0zLdRF6EP+K+1JWWpiEXgB5VzTSWmDAIG4dSBdFSCOgCTGAiQePbUDc6IMsy4IbbeZwwU2u3ZTrikFq6TBWm9TOzADJURAIPjxLrUTc3Av8DzgBrUjM1CKiG/iVuDtwI6Ia15NOybAx6Zrn3XZsQAxpr04BSs9NQmQkjZPnwW+qnZiSko6rX877dzA3wM8F/h7tSNzEHNzH4P7gQ8QrusG4PeJP8Pio5HXawNOwUqMBUgcXAxsTJ3UlIJVUgQE4JWUE1WYhJJ8fRB4Ke0a7HgFcDbw/9SOzEkJ0YCfE1IZLyLco34X+JuE9t5Le7vXzcrtagdqxwIkDjWcRA+EtheEto3ZFzVFQEoTIAPg36idmIBdwBbCKXNJfIt2TA9/FPgj4DzgRrEvMVC24r0C+D3gGODXgP9OnvbQNxA6sHWFB2mXuG8l+6sdMNnZQfjg7y99vZLuFRbPQmn5oAtqBzpCmyMguwiDxK4GvgN8TuvOWN4LnEuZ3ZCuAf4T8DHKin6Mcjmh/vCVWjca+RJwGe1OuVpJbgGyk9Cq+IPA9Zltj/IHwPOF9nPi9KsMWIDUzTaCuBiwLDRK20i3BYu0btIGAfIo4YTyasLgsKuW/nwD7UibeAVwCPCbakcIBdKfJkQ72jL/4GLClPTXqB0Z4a8JwuPv1I4kIIcAuRf4BPARYCtlvI+vIAwSLVXsxsT7pAxYgMRhQWx/O8sio7/054HMm+lZUDuwgm0sX0OLtm5TmgC5k72FxlWUMaV7Hl4MvJ4QcTgos+0Hgb8EPg78z8y2Y7AbeC3wTeCPgYOFvnwBuJSwWa2VVALk5wTh9hHgU5T5nn4z8Fvkf4/mxp/5GbAAaRdOn4rLqNDo0y7htqB2oCMcKbL7EGFQ20qhcYvInxz8CfBF4M+BCzLY6xNqOz5O6CTUdt5PmNnwEeBZmWzuIhQ/f4HQ2aymKe1NxJ4FcgXhd/YR4I7Ia8fmduANhPdNbVzL8r02ZUG/WcICpFycPhWHRfa8fn3aJTRKYHgN+3RvIGOOIvSd7C00riNMve4aA+A5wL8A3gEcGGndXYRr+3+ALwNfo6y2urG4EXg2Ia3tYtIcVPyIIDY+T6jx6BoxBEgpdR2z8GFgIyHFro3czvL9dvi4hnDoYzJiARKH3hz/t+3pUzHYHGmdlRENi7bpGV7DK7HwXQesibjefYQPulGhcSVhNoLZk/8M/BkhEvIswj3iGawuSAaETfgPge8D3yVc8x+mcrRQ/nzpcSLwMuB84BzCnIhpuJOwQb6e8Fn1JcI17TKzCpAS6zpm5XLKbn4A8DDLUY3Rx61Kp8wyFiBx6E3wPaPpU6ORDTM9o1GN0UeX6M35/0eF7/AxmHPN2pg1/epR4AfsKTSuImyC27zpyM0uwoZ39JT9eOAE4ICR77lr5GH2ZAdhaOGQo4DTCK/tw5cehxK6fN1D2CTfQ0gFuhaL43FMs4FtQ13HrLya8Pq6FP1Ih1vZW2h8l25GkVuDBUh8RjfHA5YjG2Y8qw1x3MHeQmOQ2Kc20Jvw+0bTpwYsi2CzOpMIkDvYW2hcQ10bjZLYufQws3E77enuVSr3EmqG9lXs/22C6PgLyq/rmJVHCWlYXyNELE/NZPcKwn12O+G++y3gp5lsm4hYgMRhCyEkOcCb42kZHeK4nb3FRlfTf2bB6VNxGRUgDxFO1FZ2oHI435jucQtw8orn2lzXMQ9fIUTVXgi8iVDDFYObCXuC0YjG9khrmwKwAInDFrUDLWYAXIhP5aelz3I6n6NCadhByJ/3B58xZpSbCQKkprqOefnc0uNgggh5JiFl8hjgaGA9IX3yQcLB2CIhOnQXQbzdtPR1B+F+62GAtbN169Yuv2GMMcYYY6bhEuB3iNelzZhOsXXr1t2OgBhjjDHGTM571A4Y03bUnQuMMcYYY4wxHcICxBhjjDHGGJMNCxBjjDHGGGNMNixAjDHGGGOMMdmwADHGGGOMMcZkwwLEGGOMMcYYkw0LEGOMMcYYY0w2LECMMcYYY4wx2bAAMcYYY4wxxmRjzdatW3ernTDGGGOMMcZ0g/8PKOn3qVqoSYoAAAAASUVORK5CYII='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 150))\\n\",\n        \"def text_rotations(r):\\n\",\n        \"    pens = (StSt(\\\"TYPECOLD\\\", co, 150,\\n\",\n        \"        wdth=0.5, rotate=10, tu=150)\\n\",\n        \"        .f(0)\\n\",\n        \"        .align(r))\\n\",\n        \"\\n\",\n        \"    pens[0].rotate(180)\\n\",\n        \"    pens[-1].rotate(180)\\n\",\n        \"    pens[-2].rotate(10)\\n\",\n        \"    return pens\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"OQkREYLnqTig\"\n      },\n      \"source\": [\n        \"The last two examples also illustrate something important about Coldtype: (almost) everything is mutable/self-changing by default. So a line like `pens[0].rotate(180)` changes `pens[0]` directly, meaning you don’t need to assign it to a new variable. This makes it very easy to directly manipulate nested structures without needing to reassign variables.\\n\",\n        \"\\n\",\n        \"This also means that sometimes it is very necessary to copy pens in order to double them, so you can make changes to a copy without modifying the original. \\n\",\n        \"\\n\",\n        \"For instance:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 17,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 131\n        },\n        \"id\": \"Pa54w9yzkBRS\",\n        \"outputId\": \"3c09e4cf-0a2b-44df-fab8-4107be3816ae\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAADICAYAAAAQj4UaAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJztvX1wHOd95/ltEBJAcwgMeSAIUcBqbIwqckgHI9GpsiR4NXBtRfDlcpJjrpXU3q6YrdVeEjtl0WfZSi4uyxdXThQlk9kVk1ScPYHO7trSUbtSnBdQyWlGNkglK0oaWGREWwNrZEL0EISJAdgUB+IQfX/0dM8zg3np7nn6eZ7u+X2qIPYA8/Koe/p5nu/vVUulUgYIgiAIgiAIgiBEQAKEIAiCIAiCIAgRpFIpo0v2IAiCIAiCIAiC6BxIgBAEQRAEQRAEIQwSIARBEARBEARBCIMECEEQBEEQBEEQwiABQhAEQRAEQRCEMEiAEARBEARBEAQhDBIgBEEQBEEQBEEIgwQIQRAEQRAEQRDCIAFCEARBEARBEIQwSIAQBEEQBEEQBCEMEiAEQRAEQRAEQQiDBAhBEARBEARBEMIgAUIQBEEQBEEQhDBIgBAEQRAEQRAEIQwSIARBEARBEARBCIMECEEQBEEQBEEQwiABQhAEQRAEQRCEMEiAEARBEARBEAQhDBIgBEEQBEEQBEEIgwQIQRAEQRAEQRDCIAFCEARBEARBEIQwSIAQBEEQBEEQBCEMEiAEQRAEQRAEQQiDBAhBEARBEARBEMIgAUIQBEEQBEEQhDBIgBAEQRAEQRAEIQwSIARBEARBEARBCIMECEEQBEEQBEEQwiABQhAEQRAEQRCEMEiAEARBEARBEAQhDBIgBEEQBEEQBEEIgwQIQRAEQRAEQRDCIAFCEARBEARBEIQwSIAQoSaVfCyRSh6Myh4HQahCKnkwJnsMBEEQRGfTLXsAYcBc0K9GJ9JfysgeS6eSSh6MGpoxphlGEjBiAGIAkuU/b5E0LIKQRip5MGZoxk3leyJh3hdawkDpJVTuDYIgCIIQDgkQl7w48Y27NGPNXswBJIBrUQMaLeqCKF+DmLmpqlwDzVj/XAOY/UR6X0H0GAlCFBXxXTUvJYFrqL4ntPJ/NTKUcMYSe/X+9onUF14SPR6CEEUq+VjC0LSbNKNry0T6/5iSPR4iOJAAaQBzUyUAIwnToh6DsVZ+hiZtbJ1CzTUoCw1310ADaLNFhIZU8rEE0DUGaLHKvHQtVhEaTuYlgwS5Q8w5qLvf9CKtRcviDrDWA5tasce+x+PswyMT6S/u5T/ScGOJbPZ3mqG9M5Hel5M0pI6jWZSBZgAG1l4CMCVrfETw6HgBUhOmEGOs6uUFpcGqUoMG0KLukVYTm9Nr0D82jM3xQVyYyWL1/Er5twYJkCZUNlhrCUCLloVes5yZAqBlDG0toxndL02Qd8kXGoVPVZ7R+p7YsOl6ROKD2BwfxFLmLC7PXfBtvGGgLO7ugjn3mMYOABpXo5OR4/AmoaNGWMdgnntmLqov8Bhxl4a5BqeBDc+TMGkPN1EGBF8qc3/DNTlmGpE0Zu3V0ubv1l4KUipARwmQRuFT9cIUGrFpdBs2xwfRO9SHYn4F+WOnrT8F5qLLhMfEtml0GzYO9SESH0Q0MYLeoX70DvXZf188nmWebaQ5DT3QNPTogd1gOb0Ixr2aoQG4hlTyQAbQDk2kv3iE95g7AbfhU41g56V698TrDz7NPj3Na/xBxpyLLIGHJJoL76b0bO+rOt8sy7Pz7EMS7Fgn9pKwz73nHW6y/O+9wLVD5rzU9RzQ9UdkJGkMjygDC43mFVc0Nryyc3+j+6H2uhhJ898upJKP5wCkAePIRPqhNMchcyeUAoRH+JS1oGxJjCBSXtgj8cGq5+SmTnAeeXgwF5jrctbkn0oeeA7Q7vF6DXqH+hGJb1t3DWop5ldQzK/Yj4NkDeABL4+ec7QEgKlU8vFDAB6ZSH/xjzh/QGjgET7lZF4iGvPixIF7NEPbC+DeylzUGPZ8d0d67HNdK/Ca8fqDT7MipKPmIwuzEuG1+7FOcDjD8uaxlPTVJl49rbyhvvZgKvnEoU4XIryjDKx5Z3Emi/lnX/NlzGFCsEcpBmAvoO1NJR9PA8bXVBUigRYgPDZbbJhCL2NVJ5zRvPpUaQJlq4gBRJttr2ontkh8EN2RHtfj0bML9rEBI7TJn7ws59YGa3P5fLc678X8CvTsAi5lF2otu1EAh1LJx+8FNnyqwxd7ruFTEcazQbjHrFK4dj9g7IXB5m1U07PdEnbbEC0LPB5cu7zK5X2CSFl0fx64trfZ83q292Fz2cBkiTunIq+kr0LPLqCYX8HizFtYPD7H/jkKGI8A1/amko99qhMMUiKiDCwWZ9hoA/Lu8fAoWXP/xvI5r12Te4f6UdKLKOnmvMJ+/y/MvIVrl99n3y4JaMlU8vEHVTQOBkaA8A6fanZTOYXd7AJdOc9vFBDamdg0aHdZxwN3jrac2LzCXpOwuITVs5zvBGBOfPnpUzh79DUm5wZJ4NrbqeRjE2Ff7HmJwP6xYXuxsTa+XsR3M1ixqKo1jDcVb8e1e+v93RIc0fIPz3mIRc9WrPQddu4fRIPKkDzPfXekxxbnQ5Pm3JSfPo23p06w81IM6Eqlkk/sC0ulJnP+Kd3VzmbXS5QBy6WqPVDnePf88ig5n/ur75eB8TgA4BZMQs8uYP7oa2x6AGAaB5PAht9QyTionAARFT7Fg6s6a9lay3H/AEn4XQFs19fr7ge4sJQ5yzwKVrlR3pZzvz163ZEeDO/ZjeE9u5GbOoHckZetP0UB7alU8uCESpNdO/ASgZaVl8Kn/MP0wuFgPW/Hhk3X44bJXRjes9s3wdHJpJKP3w/gkXrnvn9sGDdM7vJV7FkMTe7E0ORO5KdP460nX7SswlHAeCqVfALhECGlvZqhHfR/s9vZiPQo8SASH8QtD08itvcOvPno37LGp3uBUgzArb58sAekCRAKn5IPr3wBdmKbf/a1qhwM0VTHBG9QVoBUkjD5Wc79nNRaEdt7B6KJEbzx+8+VF3stAZRSUGiyc4MZtnPtIIVPBYfyNXsKdazuA3eOYmD8ZttCLooCYxAJd0joYwlAewqmFb6Kobt3YnjPbVLE9tDkTkTi2/Dmo9PM2mA8lUo+XphIf/E54QPiS908GpGbXcbDhKCX9+YRPtWuR4knvUN9uPXQfcg+mWLydLREKvn4UxPpL/6GlEHVIE2AGChNaUYlLEd0+BQPgnTz8QphazWxZQ+n7WMr3KC8MQBgbs78ophfseMiDRjLn1C4FKMB7ZAG3BUmy3k0MYKPfP1eZPY9U/6NlkglDzwykX7oEZnj8kYpBmj3qhA+1S6sQcCAsSxxKL6RSj7+eeDaIfZ3GzZdj5E9uzE0uUv6WhFmUsknvmrmWVRQ6dxH4oO49dB9eP3Bp1kD1VOp5GO5sISJyhJ5YSn4kkoeeATQviomfEos8c9NIBIfxJn909av9qaSB95RYV1WLgQrSFVeVL75UskDSUD7KtoMYeOj4ksx63P9vJaFqvArR/GoMQA3AXgHQI7/iNwRBst5NDGC+GeTjBDVvppKHpwKel3+oIjAehTzVZqj2X2xEcAYgF8A8C0ARR+HxYVydaWDAPayvx/+9G2I7b1D+oagOictWCGhrSif+6cAoyqmNnb/7YjtvUPWsOrSHenBrYfuwyv/7luW4TAKdP13AB+UPDQuBGk+ChoiPUp+MTS5E4XMWSYvRPtqKvnYc7L3rUoIkOFP34aB8XjgNlsuuAumO+95iN3oJls9ISgq3gktEtCtaxAr/5tAxYW9xf/RVaNBu8k63vUH9yBaLvMZBob37MaFmSwTe3rtEdRsENWnK2ZZwgbuHPU1b4nFcpVH4oOIjG7z6zuhAYjDFBofKf/7CwA+VP6bAeCbfnwwT8wNcCnFhshtGt2Gj3z9XmU2CKWqPEG1veRuqHfu+8eG8eGHP6nMua+lO9KDj3z9Hrz+4NNWTkgslTzw4ET6oUOtXkusp7riJN6ROBQe2N/jobt3lr3Z8sKn/OCWhydxJb/MrMtdBwFMyByTNAHCVkWKf07qOfBE9cJik4BpUS/H9FeavZWRFgMsQsWz56Q61KOymds41M/1M1nYihz/6e3pnwOQwvprUMs7kFM+MGYdWBUswsTNn5vAyQf+wnp4fyp58JFgeUHWYiK8drVkn0zZxx/79gPcBcgPL83fBkAH8IEmT/sp+DeM4Uq9DfDwp29Tbi1hveRH52d2AjgAoB+m8SMK8zzrAC6V/10B8HvCB+qCoJz7ekTigxjZs5spmGF7aIMoDu3zL2OjXCOucw2eNgJgV/nnIwB+F8C7/o7MPWybgKHJnaE1hn/44U/iH37dti0lU8kn9sosyKCEBySIsOr/zZWf6HC2YAt0dxkFawPVO9SHX/zzf+P7J+oNS/JVNnN+WsfYUqPPvXvi1xy+LO3LYDqcSHwQ/WPDzDUp7QXwiLwRqU9NCCG3e4V939PLuc0OXpLn8sE+UW8DfMuXJ4UnmDvhChP+dnzx1B4HLzkHhQVIkM59I2J778BPp08zoVilBxHAuYndNMv2npfW1roBfBymyNjF/FubKP87godGMPQO9SF2/+2MAF/7PIApWePpkvXBYWJ17WpE9hhqYWP7ZFalEgUrfvLFJeilK05fGqq4bJUY2bPbPl4zjC9IHEogqBHw/nyGs/uiUXtp6QRtA8w2IXR47s+2fooc6p37XX9wj7Lnvhk3V3lrtM9LG0iAYeervzx34k4A3wNwGMBvARjHevFRAhDKIhhBYphZl81CMY+tq1wnChIghAh8dxWzzb7mdFceXuECxKwKZuJnVTDZDIzH0bPdtOJ3aV2bP9L/wVcAiEmmaButbolLP2G/w5JZkj2Axlw7GBTxAVRf06x+zslLFI6lX3/ugxo+ys5NAKJ/tvsLX5Y5niDChmA5FNfKhV5ZaNDGrOMw5X3UozvSg6G7K3PmKxezzwL4eRljkSJAWMW1aXSbjCG0DRvWMOdsYZn1bTANYBPDRFhXWU+LBi3HjMPezPnlKmb//xwu9BZp3mNpTSlmHYV9stvCxNL+3ObhjwL47wAOokENe1UwzDrwACAsHpgN1+E5L7LNOTOFOUcv4fbhHDFLZVaKGaguPjyipAcklXxiL0J27m9gxr+wevFRAH8CsxJcINDMXCIA8kOwHLIoewBN8H2PohLDe26zjz/cN/IhAG8A2Cd6HJI8IFqoLrZD9S8hya2SGNYgaZ4r1eU+7c++a+n9S76bydgEdIebLECCKOw02M37nQO7rMMHYRYIUFqEiIbNYZI8LyqXkFtudPdV6/Hwp29TfgPMGqlcGEV+4stg2sD02BoHrcdDd+9U/tw7YWjSno9w58AuDPVu/U0Ar8AsJBMANN8jC5rhweinjIu304nEB20jV6R7IxLR0S4A3wDwZwA2iBoHhWARvvDtn6Q/DzMxP731+r4brd/7ZU1mN28uFvu0H2NRGbbKkgjYEI1EdJT9UwIkQmxEeChd8DPZA1iP9pR11D82HIiKSywuctJyPg7DI9eeQvk+3TS6LXDnvhG9Q33oHxu2H5fnp50wDVOTkoYVGK66D8FSapLrdNjohPGKcfABAE/DScM4DpAA8Uht0rMDcn6NpRFs4yvRG5z3164K21iylsZgJKBXPIDXCbR0FzJncWEmK+zzANOSz4YTxSM72D8nYIZkdTx+5n+Uq/0AcDxXKRWClUoeeNCy9m7YdD0+/PAnZQ/JEeyce97ZeQcUi5M3G9pW+kl9+OFJ2d45rrCbMMZA0g/grwHcLmFIYUbJ6nphSAnwAmsMHot+iP3TpwH8sYgxSBIgXTHryM++EH7Cqv988aKTl+T8GktjKo2vxIRgrd/osBtOJumPK+xCr3oCuokh3HVe0ldxZv+0lCZhG5nPHOrdWvvnJBRMTGf7FIm4RrUGgi0cPYXV96WjuUoZAWJWXqqEXo3s2a1so7taSu7XCACYb/0UkVQ8T8Ofvi10OWtNNmFdAJ4DsAMKYt4XJrIKmVyec11g4bxvg2mLcKUEOIWNTohHbqxdm38TwG/7PQZJAmQtZh0FZTEhWsMm0VoLbqS7ktPn17X2UGnGomNK8GYPp6SVY2Y3LTUeEAs7xENFRCxKl9QKwVIoWbT0IJjwn9jeOySPxzns/ebQK1uCQmEqpufJbJi6YdP1gTr3TmEFyFDv1tpN2CCAJ0WPyRklqfkfgKcqWIoKkM6FDUEc6t1S++dHAQz5+fkUguURtr67QyQkdlZCsJYycoqrsALEL/Q5Twno0rrSi2ZxJov89Glpn88ukGPVeSAWUTAVdjoRNodJARyb6/2k7P2wezR8MGAbYNYg49AwMg+lOtBXn/uwWofZTVgdA8mnANxV+0vCE8qIa8JkM7M2J9avzZthVqz0DRIgHmGt7g43vRKs7YYE0VMNO6HzDCth8XAtAKneD3EuXyv0ymKzBGuZw//Hjm0GVi8/i9f3wmPopSIekIr3o2d7X+B6TngwUimjQstld2OA6f2obl4WLth1qYGH9o8hKCk3KHgse69qFSzbmyRyfSxkzuLM/mnkj50WEiJfD9Y4WCc8GgB+DWZhBl+QJUDsC94b0BwQQg08lroEJAoQQ2AOyJn901WTmwwrpoMQLMDc7CiRC1JOvAUgJimxXgI6r++F7r48tQFlLJXB9X4AngwjCvUAWbPP/UiIxQdQvQdpMD/9PIBfFjUeZ1TyaEUWMrHwEH4FKDOvrENKDsj80VeRnz6NM49O443ff07Y57KwYfGjkRsaPc23XBApAoRtTEc5IH7SbW+yRYR41EtKYyd0Pzbb1QnoqjcgFEt++jQWBVe9qgc7qbcIyVNCgLCIWJAUK8F7EQqEAZUt8Lb3Iwx9JxyghAek3HPFrjoWZu8HUL0H2dR4fnpAyGAcU8mjDVBhAFcLdJgp5leweLxilJBVjCla5f27sdHT9gL4gB+fTyFYHvDofkz7MZZmTKT3CQ3BqmcVYSd0PzZz1QnojitgLUPJevv8KOZXkD0stucHB+6RPQAZKJaArshg1mwxOsJ07Q0KHtcIJQQI0PWgdbRt/ObQ5n5YROuX4q3lfwEwIGI8QYAtsOCwxPRy66d0DrmpE1WPZRri2eqkDcKwPgDgN/z4bCkCRINmdxpVLQSrpK+iMDuP+WdfQ/ZwCmcena77HAsX7seOhK2s4IsAmfO00EutfiXi+18bemXhVyPIVtRp+FWPKJjwzE6hnndS4rwoPU7b7Lyt2WJ0YPxmiaPxhsc1QhEBUjEEDAdQ/HmBLWXbYBPWBeDfixqP6hTrVLxsgfR5pQlCK4oV8yvIH6suCiNT5PdWlclfVwnL4tf8+OxuP97UATHrQKby07ML0OcuoJhfQSFzFsX88rpSpezGKYgYMF6yehoUMmeFb0DZyZz3zV3SV70moKe5DsQ9MevAj+///NFXq3Jjerb3VTWjU5wk5JdHTloHfhVOsGgUfiVxXlSgB0jpXivnt39sOJBhuuw6cjlAAiSVfPxeMKFvAQrvaYtIfNA2BAz1bmm0qf5VAH8oclxNCFoerSKe1fUYQNSqMCBCCNR6P4BAhNF9DEAEgM7zTWUJEKEU8ysonjdFhp5dQDG/3FbnYda65XBxecfzhwUYv0vwegxzAORvcH1Dzy4gd+Rl+3Hs/tuxlDkbNAFySPYgROFnB3Tz/V3nSKkQKnG/dXDD5C6Z4/BM0X0JXkABAQImD2tbwKqOCeBW+LAJ8wK7aZYh0D14+FT2gAijnvdDNpsZ8R2P7GhkyO0G8M8B/A3PzxYuQNi297w7Y5f0VehzF0zPRnbB9my4ZdPotqqE6lo8bHxzrgcRMOo13WIT0P3wJLHXdta59wMIsQBhQ6+sxm2LD3zL/rs+dwHQNERGt6ka231T66eEB78T0D1sFKQKELP3xzV7jQha6d02MAD8VPYgwIRfdUjiPwAzCbjiAdkKoO560gXgEwD+UtzI1OSS+z0QCRDU934A8kKjAVdFYv4Fgi5A2B4I7Sj3wuy8HTJleTbc1lLu2d6HzfFtiMQHEYkPonfIdDnPH30V2cNpAPKqE/BCM5sR+h6C5dHi1xYePSBSE9D9LPGamzpRZVHffPMgTn3l+epE/SfNxPTuSA9u+fKkihu8jsoBqZeALqL0bxMke0Aqyef9Y8OqiuSWLLkvD/4uJFcfK89NHRd+BTiOgweACZAA8YKyAkSDNmYd+xnOVtJXG3o/ckdeRu9QH4buliv6WwiQj/H+POVDsIr5FehzC9CzFzyHT23YdD0i8UFsZoRGs404K2Q4uTclNgQ0CrJ6KLHJxn40+NHnPFXAUsb7wXNzVRt6BaBp9/OSvopTX3keiYOfEWJ9uc65lQUwRYjEPi1IWneM3+emXgI6r++FFXrqdkhcPtwzRtI6CksIkEPPkwrhV0nrwO/cpwAzIXsAAGDldQJyrecuUDYHBILaQswffbXh3yzPyPzRV5E4eJ9Qw0s0MQKU9w6jjft0AcAv8P5s5QRIIXMW+WOnPYdP9Y8NY+NQvy0yIvFB7hfTg+VdmU2vLHhfg5K+WhX2pXI5ZL+p7XbejExhDkO9W20r3/zRV4UsYJH4oF33PB7ZgZnFU82eHm32x7DAK/xKzy6geH4FevZClVfYI7JzQOwQoIBsrOrC5lw5FCCOLSh+wQpvkZ5RPbuA7OG0/Z0d3nMbYvffIXQTxn5WgypYFmMANgC45vOQlIY1nDgs/qKsB0QEJX0V88++1vJ5evYCclMnEP+cEjq3lk0ARsCxYaoEAdIVszzN9cKbCpmzTS23FptGt2FjOWSKDZ8SwdVAleHtylnnW3TDMzYHhLdrk91guah+BUgXgxr3zXVt6BVghlBsSYygO9JjT3z54hL2Zf4EQ71b8e2P/R4AVDVDUogEQigUa6mtuNcKVmh48QY7nKukVSso5weGIgTIg3FEqgeknHsj3KquZxeQ2fdMVdTB/NHX0L2pB7G9dwgZA1BdhWh78xAsAPg5AP/k53hCSEcLkPmjrzZMEcgXl3As/wruj/2S+fjYaVUFCGB6QYIsQNZiVkiQE3eXFT61JTGCXsaz4SfsRj3Ii6DJWs4631dd5si0C9uEkLdrM7gd0I2EdT14hDkUMmdtgdE/NowbJnchmhixzzf7d6u0ZL54EZnCnB0iJ6M8cwukekA0QEjiVyODwHWbe7F4PNtW2ClgCo6sfg7ni0vIFy9iOn/SycsklkvbkLCMJZvjUvNgZCC5S/S1pHW0SWCBivmjr9XdmM0/+5pQAeISqQKkLBYBVPcvUZxF2QOoh59FkSxY78eGTddj2/jNKOlF2/h3LP8KpnIvYCw6ikR0tNxeYEHVvecuAH/N682UC8Fiid1/u5RJiN2oc5qIOzIEy88mhEvePCDvQGo+Dl9K+irenjqB+GeTGBi/2bPIc2uJb/cz1Pcaavai5KcwW2oQJrU4k8XiTNbx++TLAmO2MGeLjqx+rqoanV4qKu8BYfM/FBPErvBYHENyCBZfw4hT2KTcX/+HP8Qf7NqLeGSH6puwn5P78SX7Wsk4Px6/30oKEF5FkZoxf/RVRMeGMTB+s11ZLjd1Yl30AdtRXs9eUPW7z7UrrHICJAjeh8tVyc+ObkCJm97unGUt8bMXRL2SuH42IfRwDYAQCsFbD93n6XWzjAeErWDmF1fcVUlL+jkWVWhW6rserNCwjmvFdzyyA6ORHbhzYCfikRvta3wk9wKmci84+Ziiq0FxxRiTubHiRRC7oIssvGBRqKkUli9exPniRTt0t5hfUfV7wHUTFjQ8fr8VFSD+M7xn9zoDbD2DHNv8UsSa7JGmWepukSFAmnbw9MH7wB2PN6AUJtL7cqnk4wDEWLot2EpHvN3ExfyKfQ300pVGXWvroYIA4dbB1sn9wQp61sJCyIX9DtfiRGgApti4e+ijiEd2VImNRu/pEIlN1sR4nhRFqgeELUUqatNfz2iV1c/hzgGz+aSeXVCxTDgA3Ch7AAHjfQDvyR6ELOqt0y4NciqxneebCRcgsjt4OoGt8MBpIQxN2I9T2AR03gtaGx3Q01wH4gHR3392k+tCqHUsqeTBmOUx9CsmGDC/w2x+20+nT9seyv1nvtPQszHUuxWJ6CjikR1OyhnbuLj2UgSIn/1xRMNurF3kp+X8GIsTyt/5KGAai0Sty23M47KR/QW1hbqMPmWsIfOyMwOsyiV47XPpR6uAEDLE882UC8EKKVIt7waMZQ1aP2BuSFX1LDmFOqAT/lGKuSmS4ZWB8Tg+/le/Yz9eypy1BchoZAe2925x5NmohW2uemEm6zrMC/I8IEnrIEw9KBx6yJcAlHweShMqnedFhjxdDa5xZEDy5wvpW9EID02HVQ6/ss+lyH0ROy+78E6rwA0wF0guTVOFCxC2wky9C+6D94EwN953AabVScR5ZTdNvDcUl7xZzpRIQBdVYYlQn5K+Cn3uAgqM+ACAz8XvafKqCqwHJRIfRLRcdtmCbUzpolDDJadP5Iv/yaCiaBRa1wTJ5n85CegeekmoAlcrcAegsgCRQoAjEzQAWwH8jMebSfCAaFKsLU5ptHgUZudRzC+303+C4ITHhUsR74fYOPelmkTPgNARIs3qgeCEnu196B3qs8WG1fuIM0UAa7zf1AkGjIQWggR0oNpA4nB+knpjsgnoos69B5GmEtcD+AA6OK/BJVw2q4QyRBFcAaIuJX21qixgd6QHM7/yZLuT5WzbAwsAtfG8nx7+uP2Y56LGfk6+uOSmCECa2yACiuoFExgSrZ/iG0nrwG9rcKOiEGyT1WhZcLgND/BYKENaAjqbBM27aWkAkJyA3jwqwQ909yJNNbbB9KoLR0bFMhYPJfCV9YDIEN/svB+w8CsLbpOEUAHSqoEOe2H8bLBTzK+geH4FhcxZFPPLKOZXoGcX1gkNTlYaFcJ+0iiHYPnVdK5Zd3ieixrbkG1Od7VuK+IBIQiTRqUWf/HP/03b790iwVcH8KM6P2fa/mAPlNeF0IRgseF0DsWfZNek+OpjAfeAAEBE9gAChLIChEWU+Gbn/YDRetxnAAAgAElEQVSFX1kEU4C0aqDDXhgeatSKsdazC+WOwitVIVRuMDsKXyzXK29cGpMwYatg8bRoBrkCFtt1VVSln2uX1VjoAxzvLRQ/DC+R7o2LAP4jgNcAnILEikv1qawL/WPDksfSHGtNKelF2xjCrimWQcvC4RwlrUqQiE7Q9WDncbaQyBiTO6h4DmhgWpArQCAECOEY5+UXWxCaECwrR8MUGxfqejSc0LO9z7ZgZQpz2H/m6aCqVKmwJUJ5WjQLs55ycBQJg9OEV9xgPUYB2vhL7MKkxawjGdXi/AgDGI3ccBrA/8X9jfkhtaxoPdgCAZao8Gq8ckDerzduTXiS/wVznawP1qDdZB3LmKM8NAFWNs5IRlEYdl/qsIyxanAT34IFSGWyu87jjcMuDKZXY7lqk+UEq3rM5nIip5nQ2Y/eoT7kpk7Y1WPMRmBtiw8FQn80ewxLmbOI+fxpbAd03hZd9lp3cgf0dlHc0ijtehkwYqKSoVkrsJ/vrTH3v6JI3wTr2QUUZueZdaX9pq0u4rslCpBKzpPIPgge8ghUQ6YHJGYdyCjY4CG/TOEkdPHhh6r1v/HQ1iCoHhCjaQgWe2E2xwfNheD8CvRsRXC49Wr0jw1j41A/IuXa+F4SOttEeg4IYBSs8y6Cod4t9jHPCbJQU9HJRXKtIhuw9gU4ER6u+hgHXz1PGs3moD4At8Hs7vxffBtQU7SYdSQyAb2kryJ35AQWZ7KuBIe1YWa7d1tzkRWe65Kfun0BP8gD4hEKwXKOwgJEHfxs3syZXl5vpEwIVmF2HgUmTnz+2dcw/+xrjl/PVo7xsUwl4QD2RuIZUsEKVBcdhgEF8j9Mmgtw3nishMQd1Sw+KuNzCNIggNsB7AZwK4AxAJbZbwaSBAjrdRI1ZxcyZ3Fm/3RT4ZEpzGFOP4d8OffPqdFjLDqK8YGdmNN/iun8K06GI80DIqv8MZubxp7TSHdlbyPSUOjBCiwtBEsmHis4kQBhaGRE38SErSveLJqbNVu0ALHdXYXZeZzZP23nbLihf2wYmxmRwdN1FoISaXXozlnVxzx0RnbNJp/yP6rDr6gCVitU2firIoScwJaD9XtDVq9AAK/7hT3n3/5J6lcBPABgR8MXSLTCi45pL+ZX1vVf0UtXcHzxNDKFOWT1d13dL0O9WzEW/RDGB3YhER2189+O5F5w8vKrANqP9woYjUJp45Eb7WPFrcBSPCCp5IGkdSyqkAmLxwpOSiahp5IHY82qsvqFhz5BqsHNdS9UgBhA1JJOThL6BDXfquJK8EukrWMivS+XSj4OQEz5Q7YLOtceIHOeNtQvcRtAiPCrSlkIEFYowK3hxQ3sIvc/Lv7wIw5eIjMPIWYdiNh0zh991T7OF5dwOPs8ZhZPOX79WHQU8cgOJMr/sjlvHpAYfgVo0O6yjhXMBSOaoLiV3MKAsgK7FBMZkaAqHpoVX+X12UIFSLOKAwbwDmBENWj9AJA4+JmwTIhp2QOQCa9JsqSveq3opJL3w/YAyp7w/KpSVg/Wq3g+NF7F0CHFRdaqN5QfsOJs/5nvNJ1LLLFR+bmx4XM9cp73G6qOKp7ZNnlf9gBk4MGA2XHf7yDjMEKB23dfdBWsBAAYwKwGZAAjAyAzkX4oDQAvJg+kUW6YFxJmoUQSuinwNOAmwNwQioq15iUi21i0lBEgrAdQVKiJhcyNf1AaL8nYDNci0ejif2xmXZr3hvKbL99yH6bzJ+3Hke5exCM3Ih7ZUSXSm7Fh0/XYkhhBNDECPXsB+WOn3QxBYg8QOeE8jUIynZ5vP/AQes3NCuwOuYVMGvVvaYK6E74k2Eal7HctQEnoQRUgxoQlNlTFQ41rwAzzyZV/0jBFhzIbXxMjh3KsdTG/LESA8NzEeUgStEhzG0TAaLTxZyc6GXHE6iJuM8yjzGszPMxjHZMoesPkLrsx5lDvVuyN/ZKr128a3VbOQdyGaDk82CI3dcLtcKQJEBYVwnnYeUl0Q0oPodeSPCBiC5lwQOV5xY5IEFmCulrsVr5rkeAkoQczB6SV+BCZANoIDwmzE+jgTW4zuOZ/ePOALEOhrs9sCKLMCUb0RMdeO4fWxbRfY1EFVhz6gYd5TFKiaFfMDBMX14RwaHInSnoRb0+dwLXLzfeRltiwip20KuPu4bsuU4BI34AFOCSzI0OwPKCyABHeGFhFPBirgpkD4oAgfiFysgfgBI0JBfMjEb1eRR+uJXjnPFXAUswLpSmTAyIStt+FyiFYKiCxIICkjcJaDIJL8ALA8J7dGJrcZfeXsrAa0lr/uqXFd/1HAM7CNIxYP991P3puSFlvgxKS2QJJIVhy8WAIVLICFlHBg7HqPV6frZoACSI52QNwSAbAPYA5iQyMx7m+eb2KPrw2FMX8SpXVzIUHJM1lAAGl0WLBVikTYfmsJ04VxRaIoqzxtfC4ZzyWPVbZUukL3ZEeDIzHuc+FFh/u+2cHMoW57wJ4G8B8q+d3OqxnVnR+Q6O+JE2QJUCkGrGuhqsLunABXttM2YINP+zZrnz/Om7u+y5eb9QuZk1mE1kJoI2+HIQ3eE2Quve62Yp5QMTiZLEQE4LlqXqZDIR1hXZShtwrHsMVJSWhazHrKGzloP/9h/7nvwHwfagrPqRsZhsJZJlJuI36kjSBmxXYDUbwokSUFSAGDKlirlEBBpGeYI9rBbdrqowAMWsym6gQnqJ6w7R2ENELBOA3QbbRAV0ZASK7gRRLAHqAKHPdOoT3YCViCMaAEbOORS68hLzN7KVwlOFVtLeFv7AVnILvASE8eMuvAFjj9fkKCZBA8o7sAbggbR2wC4Cf8BKSbKMcFxb0d6BoeJxsy5Vfnerr4SEpF5BWurrikpeB6Mo/DIENxFeNAIUbEmU8hixe8mUwLZBdyMRDKDQJEIZGxl+Z4Ycu4Vo9hQQIgwfPQM6HYYQGXhOkx9LIHW9Ft0qNAtXCTaQHpBSgBHTWJe93Pw4/y/Cy4V0OPYbSLoxWLg0OyBfmPGBDeZpUfYwA+BSAPxEwpIaoUHWSZYzJTRM5Hg9hKGvgWIrUHYErZKJsEjr7/RcVCdCoj4qs8EMP0SVcBYhKSehJ60BkSUAWD012iAbwsuYW8yv2JlYvXXGziVVMgFTKjcq2cIiMN2XvKRclN3N+jEUlrvhchtfCoUVXZi3UmHUQkA2VF+IAPgpgN4CPARhn/vZbUkZkIiUEq5FhhEVxMaq2JUUtVPaACMv5UxUP3r/we0AUn3wCCWuNYxcA1WmjMECa91jaYy1mHcncaLEVsETkonj0gOT8GIvqyKq8BbU3CUFmGuaC/RaAbwP4IqrFR0fmEagGO0dddrYJ68jr5nEtprnFAaxRUHFC6wEJIopZ2dVhC6cQlja8Uh19bRpZNlgBwusaNcNjDogU2HAgGcn5PMtWWzg852TR9Ye7W/xdSiUlAEglD0aBawDkVZ2sJRGcECwp+R+p5GN2+JXsUq0ucmWUDMFiv/8iaTQ3jzIhWH6H/7J4+O6H1QOixawjWZV5PLijJCXLqg8vL9YlbyV4Z9Hh16bRxCI61tRDE8JZ3wbTmph14LdLns1r4s0V943epFgpVSi9zhMPOYQSSy2WpOQSODVIKB4FIckDogUtZKgASdX1WlP5/oss/uFhbvYVD31duO6rlBEgKpRjDEl5wIYYzOZO97kSVuny+8gdeRnZJ1NtvQ8bLhbkBHSDyXESaeFgGerdijsHdtmPRYzDw/XrCOEoqhS2QySthGqVXm8XD/2KLvs2GEVRsSiFBy9tR4ZgsdZ7h6FqSno/VCTS3Svlcz2UVeZqOaMQrI7CKAAaAD4boJK+Cn3uQl0xk5s6AQCIfzbp+f1rFwYXbl/lBIgKfDb+v9rH/WPDvgv92u9YmHvr8ICXIPTQ1ZnitOXQcQKkEaJz01g8eGnFVJBQjCJjvacSvHyJR260j0UaKD2UVQ6nAGHrWweItOwByGRxJosz+6ebPmdoclfTvzeDLWk5p7/r5qUdL0DYzf9Q7xYcTPxW1SL/wb13+D4Gjx3s036MpRVso0i/XfI8xH9hdh7F/DKK+RXo2QXTGFD+l8XhoqKGKbrzkJYDojKiw688CHb/4iebk7QOZFUKdYnKAsQOwRJZ/MNjRIcveFyHwilA2PrWskJUWHeU6gmzXtCg5QDcBZibw3bP88B4HNjf5O93jrpaTIr5FRTPr6CQOQs9u+AlQcoi7ebJIhDZQCqz75kqa9VQ71YM9W6tPL57p5B7zGMJ3tDjNPyR9TAW88vQsxfqigwOSBIg6pSmloQu76Mr517kBoytpMQWFZHZiI01dDlcZ877NhiHKJ4jY6GyAJGeT2OJXTYvU2RxAY8GwrAKEPlUVygIo1HQyPEMweqO9GDgzlEsHq//5W3k/ai3sWIXpnq4TEBXEHENpJqdy1u+PImhyZ2+fr6Fx/sp58dYgkBhdh6Lx7NtC42sfg566YrTxlKANAGyFrPmo7DlgDgU3BJzCSrnXoWEZlmN2DzSkbkNS+7L8IZxE8UdkX25OMA1eZgESHt0RMJsM6KJkboCpGd7HwbG46YnY+4CinnTs2GFjbhF9RAeVahnXe/Z3oeRPbdhaHKXUMuZxwpmOT/GEgSsvCknZPVzOF+8iKx+DvniEvLlY495NipbKgODhwRrKeVciQoee1vICsFSBsotc0+jKquyeoCw330XxqrweUDY+taiE9DaJGC5Bl05y+3uRQTUY2D8ZmQPp9f9fvX8CtITT7h6rw2brkckPojrIj1VosZl+FXArglf6lnNb5jcieE9u4WPJWAVzJLWgd/9Udzce5nCHM6XBUamMGeLjXqMRUcx1LsF8cgOxCM3Ih7Zga+cmnIi/jrSoqsAJEDKsB4QWWX4XYh3KQLEAJJa+VhlL1E8sgNj0VH8WM/j9cJbsodTFxnn0klpfBG9uerh4rvPNfxQCQHC1reWFdvYRr5BgFjLWW53th61G+qFT3mhf2wYG4f60TvUh2hiBJH4oH3t89OnqwSIC3UOKChAZDU9spCRU8VaV1xWMAu9V7FY597TS1dwfPG0I6ER6d6I0cgOJKKjiEd2lEXHjXWf6wAdwPteX0y0RceVc2XDeFhhvElSGAq77rtYZ/ytYe8AGfukesn6Q71bMRq5oTwX3VhV6GQqd6xbVQHCIjufRpYHxENI3SUAV3mOQREBIh8PTQhDD4/wqZ7tfdgc34ZIfBCR+CB6h/paWhxqN2jZwFfAKiUs4Sey6ZFMPHawVzR/hy+R+CBi998OAMgdeRmAuQA8euY7655rLfCWR8MUHFvXPa8NKEyCEx5ydsgDUmaod4t9LNID4nHd78gQLNbYeH/sl1rORZs29NL32wGyuqB7qP6W5z0GRQRIIKuhBLAWeKUPCFvxq7b6VDueDQCI3X87ookRbjeTC4/US1w+MMC0SuYXRaGBpbPVy3wZjGIMjMcxMB43z1FZgACmK3572ZtheTfcWMc2jW7DxqG+Ku8hhV+Jw0POE23QyrAbWZEeEA9W4BI6YJ6qtydgGR9oXV6/77oPKOvhk9H2oVGRClZ8i/TGsHs8h/PVfOunuEMRARLIaigKWtqbM5H+UiaVfByAOcFk9j3jacNaL3zqjd9/Dpvjg7iUXcDwnt1cbyQXG9jAXZOw4nITbD/Vl8E4gI0JFmGFsipeWSSio/jmR7/g+PX9Y8PYzHgU2TG7zL2S6QGxc/9kxf1LRqIA0WLWkexzz4qPDZuuF/rZHqzA7/g2mBZo0O6yjv3eJy3OvFU3t7Me/WPD2FLeB5z6yvP27x898/Tf+zQ8Dohv+9CoSAX7/Re1/2UjWVx4/sIqQOTTqD55mGklPtyET9166D5u4/JYnxro8ApYjRCdA7I4U9lYm1WaqAQvYH6vT33leVdhjFZhhs3lezBSvh85Is0DYgBRS/QFoPykH0gTIAaMmKZIGV7WAizaAOnBCuwqHtgv/LaUN7sOPdv78MG9dziZi6gMbwvYnBmRBZg8dLUHSIAQ7WLAWNagVZm8ajc5lmdDFlcZS0HQE9DLJK0DlSos+QUrQFyKeVWvHxdK+mrT62Pdh5Y10boXfYZCsOQh/2ZVALYKkMgO3x6twEoIEL+pFRbxzyZtj0jvUJ/TXlKhD1VrF1nffY9NgsMpQESHP3AiJ3sAHsmg3A0dMCcWGSVaneJCnS8juNeEG16rm/GEDS2azr/i5qU53mNRidq5rWd7n52LFbv/dsT23tH2Z7TIvdEBzAHIAngLwI9BXkNuXJ5z3VFb/s2qAGwIisgYeFWswCrSHempmp+cwIYYXS4VDT/GxYNU8mDMqkopMuSvXgU4tnphJC7OA+KhZxHgg/hWQoCogIcKJjkfhiEcFXNu2IXcxc0Raut5UMhPn7bvpXxxKTACko2vFmUE2ZIYQf7YaQD+bLwGe6I/BvC7AN6GeW47snqPKDxUVOpoD4hVYGEs+iH7dyINkB6twFI8IKnkgaR1LKqSYu9QRYA48ayz5zP33vmibwNrm1JMhZzjSPdG3DlQ8SQNjN8s7LM9FF8AfBDfXbzfMKh47NocODRoOdljaEYxv1K1kFMH9Pbo2S42vtvaUAPAs/Pfc/PSjhOQrLfKj4Xwho1bzwJ4BsArIPGhIh3nAWFDUK0yrqwVWKwAYT1WjnVFR4RgAdXXav7Z1+r+vhEbtC6u/SLCyOTQR20Rvml0m9BcLA/eWiCsIVgatDHrWHZFjvBj5Cz1ryJtlJFVdgMrMsSQ7T4OiE0wLWTOVl2/mcXTTZ69jjTv8RCE4nScB4QV2mPRUWxnEtAH7hyt9xLfuOItBEuNOucCaGcvtkHrKnEcSuAo6avrvNpsxbU7B3ZicugX7cc3OMup4TY2DyFYRXDugg4oIkAA2J3QZVfkcIGyG143yBB8Vjd1q7Ghnl1ASV9tt4dFmtPwCI/kmJ4Wx/In3YTPARLvJzYmWLTHiDdsGIQGrdU53QjgRpg5IUQbUPiVM6KJEWzYdD2uXX6/XAGoIjpE5yKyxhoXAkRSGd5Kr7SNgtZst3sxdu45d+Vn0rvFN8EuwetX4ncxv4yTD/wFuiM9tuhmPW57hv+5fbxpdJvQ777HKqO+rBGqCBDpeKgHHtAKD105ayID/BV8enYBxfMr0LMVseFGZLioTPIOAns9wsHiTLbq2k7lXnD7FhIFfSUm2G8DyKbRbbb7m90A8fKMVeeyGew9sQvATgA/D2AMwEcAfAjA0wB+jcuHu6QcDnoXoEb1tnZgF3WHm9lg/w97pDvSg5E9u6uMFQAwdPdOoeFXtRWwHK41q/ChG7QzKr3SRBlp3V4Pdu4prZUaJdVsBfAxANaO+w+8jK1NbIO3X0UPIvFBbNh0fUvDas/2Pnz44UlfxtAIdjwuqoy+5cdYpAuQVPJgVEZFglqq40FdlX4NGGs53iFYrNDg0UndwsV1UNobxXZd9bPKi4dCClzQsws4s3/afuzB+zGLkBR1aIXIKj9/de4f/yWAX4UpNhohsVZ/JRy0ttNyB9Bx/8MWsb13IBIfRH76FABgaHIXBsbjQsfgQTACwA99GYzC1KuE5USYXNfVbSWh3878fBRAjHnat7kMUlG2jd9clRPJ0rO9D9vG44jtvUPomgBUi28X63RYPSClhAoVCQhnFGbnoWcXykLDnUeDpX9sGNeV3ZO95a7qkfgg9OwCMvuecft2SgsQtuuqn99xdlG18Lu2eElfxZn907b40UtX8GT2+RavWkea97gI4Gfvr/y8g6eR51AOHStAAGBgPC5cdLCwc6WLXkUdF6rIVsJqBbuxPbn01q1gQy3qI2nu0aKtn9M+UabKIev5BoDbv/OAiCHUpTDrqQJWOD0gASYtewB+YuVpFDJnqwSHG3q296F3qA9bEiN2LGQkPuiH4k/zfsOw4Ld1JXs4VeXt2n/maTehcxZpnmPyQNI68LtRZD14en7ZjVXeWWlRx/VHCa5IDcEq5wfdBZjfmQD13+KCxzKk0gQIW8hEpKF2S2JkXWGTRrBJ/WffW3CyyZcy9xgwElrZ6O3n9559b1Z8iCqjXI9ifqVqH0c5IApQ7ZLqzPVYzy5UeTfchFCxQsPyZni9sdkNlIv4xLSnDyPaYv7oq8hPV1zMx/InMbN4yu3bLAN4jue4ggbPDcVV99VNOtoSzwt2DXHYU0LyeTcKVuSBrNBNmbCbatmbMLeIDNnxuUhNqDdbvUN96zwfsvGYgA6EWIAkrQORrehZ2Phjl7HrgSez7xlXYVSbRrdhc3wQkfg2XzwaHqrJzHL7cB8QWWGpXgiWH1hhV4szlTnp+OIpPHrmO17erqPEx+b4oGOLoiA6MhmaNx7WEDrvkmDXu3xxyY3H1pcwFJWpl/DeSJR4KOQT+s3WlsSIUgKE/e67CD1chU/lp1UQIDaik3HaIMBWw+r4x2bio1ZsKOqmz8keQHPEVVgSYcksZM7izP7pKotvVj+HR8887fUtp3iMqz20mHXkd1lqBec4iXNZpSKfKPGsEAFeQ4KNx/wPAHiT+2AcokG7yToWOYfUW/MbrWMeCvlIESAi+84NjMermjjKhs3/cOEB8e17r5QACRCKJz03w0jUq4LVs70Pm+PbEE2MqCw26hHga+E/PK9j9nAK80erJ1PT8+Ep7wMwyyenOQytLQwYMU1wiUsWnnX9PXS4vcTtw11Tqch3tfPCgGR7QOwE4E4LwWKNbi42YQX40IjNBTHrQHSxnnqVsDghywMirO+cSvuokr5aJRJdfPd922MpIEC0mHUkqws6axFxGL8bCvrHhjGyZ3e5EpUaDdiWvC0OhE+U9FXkj53G/NFX1xUhOJJ7wUu/D5ZH2nlxWOB573kIYaQqWHKQ7QGxNxWXOsz7VPCW/6GOGVswTipheZh3AOBn3kcVHAbuHMXi8cr37DpJXnA2ZNplq4kfcB9MGekCRLb1EYCXtvShYEtiRGopxA4haR34XWFpqb1O8lXo2QXkj51Gfvr0OgtpVj+Hw9nn2xWIyiSfi+rToigSN8KVRGg2fjyIeChkovs2GKIhizNZez7LF5fcrPe+bcJawfZKkwFbCWvT6La6z/HYV0X4ZktG37loYqRKgMhqN7E4U0lhOpZ/xc1LfcuzlS5AAkpgrYZsOT+V3INtkJM9gLBQmJ3H4sxbWJzJ1i25rJeu4EjuBRyd/z6PjzsEZe4jMX1a/H7/2u7ODpEmQCbSX8qkko8DAJfGpTK54j4JXWLoW+fChl8dd1exz3V5P35UeqXJKOHKRqZwNtAs8nwzZ4jvO6fKPov1/M0s1m+Q2IDwhmCx1scAQXkH6pCTPYCgYpVdLmTOVrlna8kXl3Ak9wKm3VlNmjGLDg2/qreA81oI2UpMDq2Qa5Cfi2BT0lc7yQMl9bxPpB9KW+JPsapsvrJ4vDLPufTgvsF9MAFhYDyOxNBnAHAVIO8BuMrrzVQmEh/0M4/GEW14/s7BR0+VdAHCWh9lKUWP7kPCB9jFMBzXQotZR37nONWb4LojPXZTyUqPl9Z9XvTSFRxfPI2ZxVNeenu0Yi/vN/SK7PAGQGrYl+w8BBgwXtKgdWJDPPKACIZtwqaXrriZ10qQGIIlm+5IT8v7kvUsOezfJcH7IY8t5a7om0a3Scl1ri2Z74LXuQ+GQQEBIp+r3hKoAom12APyYhGdEoZrITLHqV7YVGbfM46r3OSLSzi+eAqZwpwfosPia1DKgyg3vEEyioTAmXRYNSbpnicDmNWAMcDcQIZd/M0ffdU+Pu4uBOVVAEXe43FB0jqQ1SvNDQ7XbVkxl0nrQOS5vOXhSdzy8KSwz2Mp6atVnj+XkQwz3AfEQALEGznZA+BBSMIdFNrMqkezTV1WP4c5/RwyhTlkCnMiCjAcQYeGXomAFaCXA1IBSzPLMNsekA4qiiFdgLBFADoBdhPm0sBynPtgPBKSNRtQoAJWiM5lU2rDr1xGlnzPl0GVkSpAUsnH7PCrRtUVFCUnewCEjfRNVBDIFOZwvriErP4usmXRIZgjUCj0Shb1vI68LM8eckBUuHfsMdTz4AUFNvzRYRUs6f+zGrQMGPEXZg8IW1gjX1wKrABRFQ9V4IJddSJAzD9b8fw9O+9KTxQB/A/e42GR7AGpdOWWqUbDl3dQH9UFXxhzcdiQNz8X+GJ+xQ4hYr/Pv/4Pf6hCaWmVxUfSOvC7TDKgnNVNhaZHtgdTnwtuP4rqDZij+026AAGMnOUBCXoVsla0EQMPAC9xHYx77HVbVq+0VnioAifpC6fFrCNVzyVPivmVqnt7On/Szcv/EWb+k290+fnmQSQMeQeNUUPwNcJjMyMCZn7JrYfuw62H7qv6vWTxsQzgN6Cu+Oh0pAuQifRDaes47JtghsswK5DJJhTirxXF/Aryxyo5Hy7LiP8YksOFDIGduwUi5WY3YMSs4xCdy4bkpk7Yx8fyJ93uq3wNvwKkC5CumHW0MVhqlPIO1EC2ZUo5FBJxz8O03E3JHITq8GyG5SGJW7prDDCToa3jAsdmmgqjRBPCThF/7CbMQ67b/8d9QARAIVi+s154u9YTf8d1QHWQLEDWYtZRwNSoCrHTXrBduUGophF0ZIS8KRDG9hKACQD3Ihi5UsKaENaD52deYq69wxwf6YmgAKCxlvhseC3xDO/JHoBF2MVfSV+t2oQdyb3g9i2+y3VAHtCgjVnHqoYNeciBknKja9Buso5VjALhSfZwyj4+lj/pdj/wM/hcAQuQLkDkw066EhJzRaN0CFb4UDvkjTNHANwKM6ciLXUkLjAk3BMK5V8pIUAALW0dhXETXIfLsgdgoTH3ahjPPVt616r254L3oYYHRPkQLA85ULI8IDHrQPU2BO1Q21x4yr3w/isABs8x1UOyANFi1lEHbNCIFrDWT4fNjAi5PA8zx2MLzDwPCk10gEJznSICpCttHS0eD70RCFDIAwKzEhaA6jK1YaCYX0HuyMv242fd5W+oQzgAABKOSURBVH4AwItQ6lqFCun5Z2GlpK/izP5p+/Gx/EkvuaB/yXVQDZAqQNiEoACp0cDmHRhMxR8Vz7eH/IW0X2PhQ2BznBoxC+CPAHwKpui4F2aOR1BDEqtc8jLCGyR/L5S4bhPpfTk2FIi13AUBD2GPynhAgK7nrCM9eyHQpZBrYTdhHpur/jXXAXkglTwYs457tqvp/fCIcONHKnnQ9iTxzL1TjdzUCfs+1ktX8GT2eS9vc4zroBrQ8SFYHdZ910YhK2yICWyOE2BWsHoeZufyCZiCIwHgQQDPQZHNKwdi1oGMa8TzMz2UE19u/RQxsKFAQRMgHgwnyljVJ9L7CoBh71AWZ96SORxuLM5kq0LKDrvfhK0B+A7PMXmjFLOOVF1DPPQAAaSEYJWk5vuJID99GvPPvmY/3n/maS/FaP5fCDKSSO0DokJCEGu9mg1/DghB1LIMM3QqV/7X+gmLwOhIHC46yggQYG0K6Po8YIYClfTVMBtJFPKAAKYXxLgHAPLHTmN4z27ZA2qLYn6lyvtxJPeCl4Icfwtgkee4wkrRfQ+QZQjIL+g09OxCVeL58cVTXrx+APBNboNqgWwPSMw6CKsiVQm2KR6dbxEEIgn9EMzQvL3l4zQ6RHyw4Q0iXfLbxuPoHxtG/9iw7Ko2ylznifSXMlYYVklfDZwXxCXKeEBMqsOwgpyMXtJXceorz9leqXxxyW3fD4spnuPyTujCeAFpuWeV9Ths6NkFZPY9Y3/vs/o5PHrmaS9v9RMAf89zbM2QLUCCSFr2AHig8IbYDUonPRswQu/yDTaV8AaR12d4z267aeTQ5E5hn1sHpRJBNRhT1nHuyIkmzww8RdkDYDHDsHDEesxWjgoa2cMpu6eJXrqCr5x6yksIihV+qgCBDuNthKR5p7Ieb0mMyBmCD9SKD/N7P+W1D9ifQaB3SpoAUSUhSKHGbR3PkvuSyMpYcFWBKol1Jh7Kib8HNbpxM3RPGTCWgXITrenTrV4QVBTzgADAhkeso8Xjc4FMRj+zf7rqO3M4+5deeyH9KYCrvMYVdtjvynlnOSC0bnMiP316nfjYl/kTL1WvADM09E95jq8VEj0gaiQEXZLfuE0IqeSBpHWsUB+CUKMBwn3mHgR1By8G4XXJO0C56z6R3lfQzDBAAKYXJKRFQpSzdE2k9+XAeEHYHIogUCs+juVPYjr/ipe3KgF4gte42keLWUeqNiH0kAOi3NwTNKxSu2f2T68TH23sY/8DBIfHUQhWBxKS8KsAoNkiO6quy1fpMDZ/CadL3iGKbgK6D7FekNyU+qFYHryOCnpAAGDNFn+FzNlAhGKZOR/PrxMfj57xXMDqP0Nek7x1sK0KQhSCJWXuYdsQKLwetyR/7DT+4de/WfWdz+rn8MDJg+2Ij8sA9vMYnxskCpDAJlelZQ+AIAiCJSxhEGUvyCPW4/lnX1M6KbqQOVvVPDFoZXhZJtJfygDG16zHuSMvV4kr1dCzCzj5wLeqCha0KT4A4P9ue2BEK5Sce1SmmF9B9nAKM7/yJM48Ol3lGT6WP9lO2JXFNyChKqLEMrxrMUADIFfZr56vLNwhzwFJWgchsvZ2sPWe6FSK+RUUz6+gkDkLPbuAYn7ZTrwFgh8GMZF+6NCLyQP3WlX7Tn3leSQOfkaZQg7F/AoWj2cxf/RVr7kSyi40E+mHHnkx+fi9GjBW0leR2feMUucesDqcn1iXI/Ts/Pe9Nl2zOArgR+28AW9kN0qtR2F2vjznLEDPXqgSqQ77gChU/lttFo9nkZ8+XbcqYL64hP1nvuM0568Z5yDB+wFI7gOiAuwCEuYcENUp6au4djk8+QuUc6M+BpDUyscquuRL+ir0uQtVIoOjN0DpTYCG7nsNlHIatH5VNsL5Y+ZGoFGJ4Kx+zk0BAGXRsLbXgJZW6dwDjYWHXrqC/Wee9trzwOIKgC+08wY+EbMORBtq9ewCiudXbJFhzkPNBbdD44eUCgdBaENQ0ldRmD1relZnsnXPd764hGfnv4fp/EleRvN/DUm9iWQKEDv+WpSyZ2+oYn45kJU+gk4xvwJ9rmI5KemrdTdVYRKDlHNDtELPLkCfu4Bi3vRseJmf8sUl5IsXnW6ClRYgE+l9hVTysaQB2Bvhkw/8BWJ770Ds/tuFjKGkr2LxeNbeDNRLiNdLV3B88TSOzn/PzZylWCPCaibSX8rUnvvMvmdwy5cnMTAeFz6eRsIDMCu+7T/zdLvhJ4AZ9qdurJ+PWIYOdt7xYujIFOYCYzhUZU0u5ldQmDU92aZHu3H60fHFUzg6/30eHg+WPwXwIs83dIM0AWIAUcv6yFvZWy7CdhbzJqR5vZFIRFt79ewCSpffb3tSI4gw0Sp8ygl66Qqy+jnM6eeQ1c+5ER0sSvUAqUftRhgAclMnsDjzFm758qQvVszC7DwKmbP2TyMyhbl2Ki0p1QekHvVEyKmvPI+B8Thu+fKk7xu4VtchU5jDkdwLvDZjPwRwkMcb8cRslHoNANCznc8eqV74lNtKc1n9HM4XL9oeP8vw4WYYrj4wJHjxKOmlK3h2/vuYzp/kIbJreQ2SvX6BDsHiYTW0CJPFXSS1N5WXDRVQ2VRdLv8bAmwPn59FFurdA4QzNGhj1jHvzSyv8KlMYQ7nGc9GVj/Hy+0uqRuxOyobYe05DbgJMLt1n3zgLzAwHsfAeBzRsRFPRizr3rE2Y62ujxX6MLN4ut3NgLI5ICz1zv3iTBYzM09iYDyOocmdGLiTj0dEzy5UiY5Gm2LOwgMAVgH8SyjZ96MU85on62WzW4slLGbLIiOrv8trbRa+SKWSj9nrsd8h0e16lDKFOcwW5pAp//jEOwDuhuS5SJoAcROPV3tBrQXDLewNZW14Paj3QNJuTwpe18A677OM5YTjpkol7B4TPDx8PCznxDrsa9SORZdX+NRceYG3vBo+C/HAKFVzI3wwAVw7BOB+6/dsPkYkvg3RxAi6I72IxLehO9Jrv55d/M3NbdHxvZPVz+FY/hVb/HEiMJMdc+4fAfB56/fWue+O9CASH0Q0MVJ13qNjw1XvY81f5rF5f1j/OrHC+yA8LP4tgDd4v6koeIZPzTHzjs9rsgTvq8Zlrq+Fh0dJkOBgWQHwLwAsiviwZijhAWG/ELU5Al6UO+si5LyYB2bRXo/znhS1m912rSeW6OA8qb3E641Ugpfl3BLXDqBKYg5RKHyKB8qHYLFMpPcVAOxNJQ9MGcAjrAELQHm9aF+Q54tLVZsBn4xTSieh11I+9w+mkgeeqz33Vg4f7/Ba6zrMLJ5yk1vglsMA/qsfb8yH6kapioRP8SBw+yjFPUpuOAfT81G/koZgpAgQNrYRMOuNW4u6mxuKvaCCrIah26zVhiG0cw1cJsGGHC1mHTUqssAz8biNe6Aj43FZl3xtfHUAwqd4EEi370T6oTSApHn9uvZeWF3+7W09/dd5eS/WG8saqwSgzJfADZVzfzB2uaT/pl5afWh7b5RLLzErmd9n4cfyNIDP+f0h7WEkrBCs5dl5ZB582vErFdnsNkKG8cNRSHRAPUpOeR3AJABlmvtI8oBUYhsBOOp2+6NL84U3lt+O5hn1TjijVvCd2T/tKYSq9qaia9AYA0ZMY77jVnwzD8s5nX8eVKyLmlYxggQkfIoHgfKA1GI2zcODAP5bpHvjS4noKOKRHQCAeGQHNnVvtJ87y9wn1kZA8r0TKA9ILRPpfTkADwP44VDv1v8nHtmBeGQHxqKj9nPikR2IMNeA3YBdrgl/lmCF/w6A/03kB/qJAeMlDVrmn1Zy+OaP//bzimx2G2FAjgdkXUh0iDxKrSgBeAzA1wC8L3ksVUgSINWuxVqsGwrQMsC1THmxeRvMl4hwQ7Xgq1fOkMWAsfzWpXeNN5bfjpqbKqWsJ4HjzP5pV89X3HIeOor5FUdGEIXCp3ig3Crpke/ppSt/PLN46rfb7AMhkrDczE/lixfvyxcv3h2Qc/8+gP8TwBMwN8KBwgBmNRg5mJEYaaA7VxaDFr8CJk9HUaR73HNHXkbuyMuuXqO4R6kZbwD4V1A0z0mSAKm4FqvFRle65oZiiYkaXROk3zy8MYB3NBgZAOVrsCHzCfMaBG6CVgknSf/suf/zH0/f8o8X37wvIJNaCOiKNfuKl+elHMwFP/2NH/23/HfPvfymoMGJICwCBAC+DHPzpV43yWpmAfxnhOvc/2sApwGo3m31LQCfhqIbsQakAS3HGGFboWZ3vWokeV61mNNnGjBeeuvSu/rfnX/1lxUKn3KDAeAYgD8G8NcA1uQOpzGyBMhzANLlmNIgEdQckCRQteFNA8gE8PyzKC4GK0n/BoxlAJmK0F7L1Tn3tY8JX1mLAVodAb6Wa7DY/4LgAfLmHZibrx8AeBWALnc4XNEB3APgewAiksdSSxHAf4LZ8CsQbgKXXADwSQB/DzUjFFYAHADwOALQf4XFw/qssgjMw/z+H5Px4bUh0ebvmnqU/ncAvyxyjBy4COApmMLjx5LH4ggpAsShmmdJtH4K0ZjuKQBTn2jsXQoiiotB42swJ7XMJ8wqMoRSdE9NpPc94uIFA36NhDPLMBf6H5R/3oBpeQ+T4KjH6zA3wn8DYLPksQBmk6+nYQoPbl1wFeVVAOMwjSiq3Cc/A/ANAP8RwCXJYxGFCh4Qa/45BXPuOQVz/pG6BprGPyMNdOUcepRUFnO1nIQpOr6NgIlspFKpIITaJGG6lWT8FGBOrFPlcXQCScg73/V+cjCvwSMwE0+TUCMkjydpyDm3hDM+A/n3AftzFcA/wUyo/T2YIUg3+fZ/HxxGALwIOdfkTQBfAvDPfP+/VJMbYZZHl3lfnId5DSoZ8J3DtyDuPF+BKbK/BfN8fxLqh0C64RDkz/H1fn4G04v0dZhe3x1+nQC/SaVShhJ9QBRhFuZGtxyOYQsPQhzvoCI2csxxJ3CX7AEQTfmfJH72eVR7NH4AM+5eqYominAWwCdgllg9AKC3+dPb5qcAnocZZnXS589SnXdhGod+B8B++H/uLX4EM9b9b2AKIAW7mgvBjznqGoA5VLwZ1r9vQeHcAg6o4AGx5v3Xyz+vwLwWoSEoAiTJ8b1qhYZ1TIiDvQY5dJbQUIFZVM494QwRAuQKTK8GKzReR7iSlkXxJMwN6RGY4UG8eAem0Hix/HOG43uHAQPAf4B57j8Hs9ytH/fO35U/47sI2aasDdo9z/OoFhlvwJyP3NWmDQciBcj7qMz7s+V/X0MHzPtBESBeYK3pJDTckeT0PrUeDUv0EWKge4AfPGPbDZjXghUaP0D4rYqi+TGAjwO4pfzvx2GKkQ+2eN1y+bVvw9zcnoHpcXoDAe/hIZAszHDZBwHcC+CXAPwigI96eK8flX/eBHAcpvig67CerQ6fdxHr8zR+gPDnKrnBr1ymc6jM95bYeBNso7YOIigCpFV1Ddaim0YlhIoQB+vVSIOugRtibb5+Ges9euk235Ooxqt1sQBzkWeFxg8AXOY0LqI1Z8o/3yw/3ghgFJVNxhrM8qAXYcZYByuRU32eK/9Y3Aozdr2//NMHcy+yUv65BPN6nIUpZAhn1AqQ92Ba1lmhcQrmJphoTrsekCLqezVoT8QQFAHCVsGyxIb1k5YxoJDTSvC9BNrs8iTm4rm1YjsHCqUSQSsBUgLwQ1QLjTcA/MTncRHuuYJwlsQNClZMO8GXYzDnoFmYm9+35A4n0Gx38dx5VAuNH8C8Dh3p1XBDUATIFMwKSGmpo+gcLMFnWdbToBAe0VD4lFqwAuSnWC80TqNzk18JgpDPv5I9gJAQAXBdnd9fgTnPs0LjdZj7JMIDQRIghDgeAVnWRVIA8Ecgj5LKHAbwuzAXHEndfAmCIAifGYTpuWaFxiwoR487QREghFjSsgfQYWRgJmsS6vIt2QMgCIIgfOfHoJ5KQuiSPQCCIAiCIAiCIDoHEiAEQRAEQRAEQQiDBAhBEARBEARBEMIgAUIQBEEQBEEQhDBIgBAEQRAEQRAEIQwSIARBEARBEARBCIMECEEQBEEQBEEQwiABQhAEQRAEQRCEMEiAEARBEARBEAQhDBIgBEEQBEEQBEEIgwQIQRAEQRAEQRDCIAFCEARBEARBEIQwSIAQBEEQBEEQBCEMEiAEQRAEQRAEQQiDBAhBEARBEARBEMIgAUIQBEEQBEEQhDBIgBAEQRAEQRAEIQwSIARBEARBEARBCIMECEEQBEEQBEEQwiABQhAEQRAEQRCEMEiAEARBEARBEAQhDBIgBEEQBEEQBEEIgwQIQRAEQRAEQRDCIAFCEARBEARBEIQwSIAQBEEQBEEQBCEMLZVKGbIHQRAEQRAEQRBEZ/D/A3YmDh2tEYuIAAAAAElFTkSuQmCC'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 200))\\n\",\n        \"def text_outline1(r):\\n\",\n        \"    pens = (StSt(\\\"TYPECOLD\\\", co, 150, wdth=0.5, rotate=10, tu=250)\\n\",\n        \"        .align(r))\\n\",\n        \"\\n\",\n        \"    return P(\\n\",\n        \"        pens.copy().translate(10, -10).f(0),\\n\",\n        \"        pens.f(1).s(hsl(0.9)).sw(3))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"FEVZgldhqf0v\"\n      },\n      \"source\": [\n        \"I’ll admit the impact of the interesting dropshadow here is lessened somewhat by the appearance of the strange pink lines in the top layer of text. When I added the code stroking the pens `(.s(hsl(0.9)).sw(3))`, I thought it would look like a standard stroked shape. But if you’re familiar with how variable fonts are constructed, those lines might not seem all that strange to you — they indicate that the letters are constructed in order to interpolate cleanly. That said, we probably don’t want to see them!\\n\",\n        \"\\n\",\n        \"How to get rid of them? There are a couple options:\\n\",\n        \"\\n\",\n        \"- There’s a special `ro=1` flag that you can pass to any `StSt` function, and that’ll (`r`)emove (`o`)verlaps on all the glyphs before they come back to you in their correct positions.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 21,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 164\n        },\n        \"id\": \"8r4WIN_rkGN1\",\n        \"outputId\": \"87ffa9bd-7110-458a-bf55-3ec7c1a14205\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 200))\\n\",\n        \"def text_outline2(r):\\n\",\n        \"    return (StSt(\\\"TYPECOLD\\\", co, 150, wdth=0.5, rotate=10, tu=100, ro=1)\\n\",\n        \"        .pen()\\n\",\n        \"        .layer(\\n\",\n        \"            lambda p: p.castshadow(-45, 50).f(0),\\n\",\n        \"            lambda p: p.fssw(1, hsl(0.9), 3))\\n\",\n        \"        .align(r, ty=1)) # ty=1 to use new contours of shadows for aligning (ty means \\\"true-y\\\", i.e. ignore the font metrics)\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_-G0TNx0AuRL\"\n      },\n      \"source\": [\n        \"- Or you could call `removeOverlap` after you do the lockup, which would have the same effect.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 22,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 164\n        },\n        \"id\": \"Ii7Xpp72As6O\",\n        \"outputId\": \"717b9671-75ea-47a2-9be3-ff7bd41899ee\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 200))\\n\",\n        \"def text_outline3(r):\\n\",\n        \"    return (StSt(\\\"TYPECOLD\\\", co, 150, wdth=0.5, rotate=10, tu=100)\\n\",\n        \"        .pen()\\n\",\n        \"        .removeOverlap()\\n\",\n        \"        .layer(\\n\",\n        \"            lambda p: p.castshadow(-45, 50).f(0),\\n\",\n        \"            lambda p: p.fssw(1, hsl(0.9), 3))\\n\",\n        \"        .align(r, ty=1))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"VqEw2vdIqxX_\"\n      },\n      \"source\": [\n        \"Fixed! Also I did some completely unrelated things there.\\n\",\n        \"\\n\",\n        \"- Instead of simply offsetting the main text to get a shadow, this example collapses the set of pens to a single pen (via `.pen()`), and then uses a built-in method called `castshadow(<angle>, <distance>)` to cast a shadow.\\n\",\n        \"\\n\",\n        \"- Instead of copying anything, the example now uses the `.layer` method, which does the copying for you, and also removes the “original” in favor of the two lambda functions provided. Basically, this is a copy-and-replace operation, where we’ve provided two “replace” operations. So to recap: via `StSt`, we created a set of pens (aka vectors aka shapes), then we reduced that to a single pen, then we layered that pen, resulting in two new pens (one for the shadow, one for the filled and stroked shape on top). The layer function also allows us to directly return the “chain,” without having to declare intermediate variables.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"olPrASFArG5C\"\n      },\n      \"source\": [\n        \"One additional refinement you may want to make in an example like this is that you’d want to individually cast shadows based on a glyph + a little bit of stroke set around it, in the style of the 19th-century type designers. So let’s do that:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 9,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 157\n        },\n        \"id\": \"8IflJsAqkXEP\",\n        \"outputId\": \"d9cf32e2-0c9c-4e9e-cf24-49285462012a\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 250))\\n\",\n        \"def text_outline4(r):\\n\",\n        \"    return (StSt(\\\"COLDTYPE\\\", co, 150\\n\",\n        \"        , wdth=0.5\\n\",\n        \"        , rotate=10\\n\",\n        \"        , tu=100\\n\",\n        \"        , ro=1)\\n\",\n        \"        .f(1)\\n\",\n        \"        .layer(\\n\",\n        \"            lambda ps: ps.mapv(lambda p: p\\n\",\n        \"                .outline(10)\\n\",\n        \"                .removeOverlap()\\n\",\n        \"                .castshadow(-45, 50)\\n\",\n        \"                .f(None)\\n\",\n        \"                .s(hsl(0.6, s=1, l=0.4))\\n\",\n        \"                .sw(4)),\\n\",\n        \"            lambda ps: ps.s(hsl(0.9)).sw(4))\\n\",\n        \"        .align(r, ty=1))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"iOZSb4kcrRWh\"\n      },\n      \"source\": [\n        \"Dang, you know I thought that example would just work, but it looks like there are some tiny little dots present, which I think are artifacts of the `castshadow` call. I didn’t write the guts of that (Loïc Sander wrote something called a TranslationPen which is used by coldtype internally), so I don’t understand it completely, but it shouldn’t be difficult to devise a way to clean up those tiny specks by testing the `bounds` of each of the contours created by the `TranslationPen`. We can do that by iterating over the individual contours by `explode`ing the path into its constituent contours, then `filter`ing those contours, these `implode`ing those contours back into a single path again. We can also use the opportunity demonstrate some debugging techniques, like isolating a single letter and blowing it up.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 10,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 294\n        },\n        \"id\": \"i9mSNg4ykl9m\",\n        \"outputId\": \"8239dd3d-4a84-4ed3-eab4-e8a6cfcbbd6c\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"def shadow_and_clean(p):\\n\",\n        \"    return (p\\n\",\n        \"        .outline(10)\\n\",\n        \"        .reverse()\\n\",\n        \"        .remove_overlap()\\n\",\n        \"        .castshadow(-5, 500)\\n\",\n        \"        .explode()\\n\",\n        \"        .filter(lambda j, c: c.bounds().w > 50)\\n\",\n        \"        .implode()\\n\",\n        \"        .f(None)\\n\",\n        \"        .s(hsl(0.6, s=1, l=0.4))\\n\",\n        \"        .sw(4))\\n\",\n        \"\\n\",\n        \"@renderable((800, 500))\\n\",\n        \"def text_outline5(r):\\n\",\n        \"    return (StSt(\\\"O\\\", co, 500\\n\",\n        \"        , wdth=0.5, rotate=10, tu=100, ro=1)\\n\",\n        \"        .f(1)\\n\",\n        \"        .layer(\\n\",\n        \"            lambda ps: ps.mapv(shadow_and_clean),\\n\",\n        \"            lambda ps: ps.s(hsl(0.9)).sw(4))\\n\",\n        \"        .align(r, ty=1))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"yuTeXQOGrd18\"\n      },\n      \"source\": [\n        \"Got it! If you comment out the `.explode/.filter/.implode` lines, you should see the little speck show up again.\\n\",\n        \"\\n\",\n        \"N.B. We pulled the lambda being passed to mapv (map-values) out into its own function, `shadow_and_clean`. It’s not really a “reusable” function, but it is a little clearer in this instance to have that logic separated from the main chained expression.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"9cB9hIhTrftC\"\n      },\n      \"source\": [\n        \"Two suggestions to help you better understand code or find weird looks: try commenting out various stuff and using random colors.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 11,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 157\n        },\n        \"id\": \"272Qo4Lxku-1\",\n        \"outputId\": \"4a90976f-7bed-46e1-8bbc-c2cf6ba3eedb\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=400.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((800, 250))\\n\",\n        \"def text_outline_random(r):\\n\",\n        \"    return (StSt(\\\"COLDTYPE\\\", co, 150\\n\",\n        \"        , wdth=0.5, rotate=10, tu=100, ro=1)\\n\",\n        \"        .f(1)\\n\",\n        \"        .layer(\\n\",\n        \"            lambda ps: ps.mapv(lambda p: p\\n\",\n        \"                .outline(10)\\n\",\n        \"                #.remove_overlap()\\n\",\n        \"                .castshadow(-45, 50)\\n\",\n        \"                .f(hsl(random(), s=1, a=0.1))\\n\",\n        \"                .s(hsl(random(), s=1, l=0.4))\\n\",\n        \"                .sw(4)),\\n\",\n        \"            lambda ps: ps.mapv(lambda p: p\\n\",\n        \"                .s(hsl(random())).sw(4)))\\n\",\n        \"        .align(r, ty=1))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"O73qZ6Nxrjwu\"\n      },\n      \"source\": [\n        \"# Typography, further afield\\n\",\n        \"\\n\",\n        \"## Multi-line text\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 31,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 297\n        },\n        \"id\": \"Nerhb3Rud_03\",\n        \"outputId\": \"c14a1647-a452-4f16-dee0-c92253ff1bdc\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=508.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        },\n        {\n          \"data\": {\n            \"text/plain\": [\n              \"<®:P:/2...>\"\n            ]\n          },\n          \"execution_count\": 31,\n          \"metadata\": {},\n          \"output_type\": \"execute_result\"\n        }\n      ],\n      \"source\": [\n        \"(StSt(\\\"COLDTYPE\\\\nTYPECOLD\\\", co, 200, wdth=1)\\n\",\n        \"    .f(0))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"QJNEoRSSeCl3\"\n      },\n      \"source\": [\n        \"## Multi-line text, fitted to width\\n\",\n        \"\\n\",\n        \"Via the `fit=` kwarg\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 32,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 296\n        },\n        \"id\": \"KGv9v_OHk3AQ\",\n        \"outputId\": \"84472b14-6f09-4f14-8969-281b8af06e3a\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=263.1 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        },\n        {\n          \"data\": {\n            \"text/plain\": [\n              \"<®:P:/2...>\"\n            ]\n          },\n          \"execution_count\": 32,\n          \"metadata\": {},\n          \"output_type\": \"execute_result\"\n        }\n      ],\n      \"source\": [\n        \"(StSt(\\\"COLDTYPE\\\\nTYPECOLD\\\", co, 200\\n\",\n        \"    , wdth=1\\n\",\n        \"    , fit=500)\\n\",\n        \"    .f(0))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"RD0F6CbXeOJR\"\n      },\n      \"source\": [\n        \"## Multi-line text, aligned right\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 33,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 289\n        },\n        \"id\": \"mHMKr5h4t32w\",\n        \"outputId\": \"81f4eaa6-e9a9-48cf-8825-9773904c77a1\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=158.65249999999995 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        },\n        {\n          \"data\": {\n            \"text/plain\": [\n              \"<®:P:/2...>\"\n            ]\n          },\n          \"execution_count\": 33,\n          \"metadata\": {},\n          \"output_type\": \"execute_result\"\n        }\n      ],\n      \"source\": [\n        \"r1 = Rect(1000, 500)\\n\",\n        \"\\n\",\n        \"(StSt(\\\"LEDC\\\\nCOLDTYPE\\\", co, 200, wdth=0)\\n\",\n        \"    .xalign(r1, \\\"E\\\")\\n\",\n        \"    .align(r1)\\n\",\n        \"    .f(0))\"\n      ]\n    },\n    {\n      \"attachments\": {},\n      \"cell_type\": \"markdown\",\n      \"metadata\": {},\n      \"source\": [\n        \"## Load Fonts directly from Google\\n\",\n        \"\\n\",\n        \"Here’s an example of loading a font from Google, using `Font.GoogleFont`:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 21,\n      \"metadata\": {},\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=540.0 src='data:image/png;base64,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hEu+/hpOP/hvVrhhVm8M/tuzYDHDDSKiKmDAQURENSt79IgVYOhGdYaezRRVahQuNwKPfB7Nn/78VG86EU1z+Z4udK/7B8jhOqvnhhVsRArLVFxtHfAtXDLVm0tENC0w4CAiopqkpZLIH++2AgwzzNByWVHFYQs9zGoONZNBZO11nFpARBOu95GHIMkyHKGw1VjU3mBUDkfgrG+A/6JlkJzcJSciqga+mxIRUU3KHjlkhRmlKjVU+1IVMwBR8phx621TvelEdA5o+R93QE3EoPRHi3puiIBDNBv1Lb0EDn9gqjeViGjacEz1BhAREY2Wlkwg19NVVJ0xpO+GLdwwQ4/IO/8bqzeIaFI4AkF03PNNRK56F+RIHZyROjjCETgjdZAjEXgXLIKzvmGqN5OIaFphwEFERDUne/igFVroWaOKY3DfDdtSFS2XhZ7Po/mTn5vqTSeic0z9X3wAwZWXQw7XiWajkTq422fB3dYx1ZtGRDTtcIkKERHVFDUeQ66ns2hCitV3wx56ZLOQQ2G4F10Iz+y58C29hNUbRDQlQle9C6k3t0IdGICzoRGeOfOmepOIiKYlSdd1fao3goiIqFLJrZuQ7+4Uo2FTxnjYZBIOrwfOhhlwNbfA1d4B93lz4YzUTfXmEhFZ8iePi+kp7LtBRDQhWMFBREQ1Q+mPIn/iOODxwF3XICYRNDTC1TwTDq93qjePiGhYrpbWqd4EIqJpjRUcRERUM7RMBpLTyZGKRERERDQEAw4iIiIiIiIiqnmcokJERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTzGHAQERERERERUc1jwEFERERERERENY8BBxERERERERHVPAYcRERERERERFTz/j9NxSxnjgKI4AAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"text1 = \\\"\\\"\\\"\\n\",\n        \"از آنجا که عدم شناسائی و تحقیر حقوق\\n\",\n        \"بشر منتهی به اعمال وحشیانه‌ای\\n\",\n        \"\\\"\\\"\\\"\\n\",\n        \"\\n\",\n        \"@renderable((1080, 340), bg=1)\\n\",\n        \"def arefRuqaa(r):\\n\",\n        \"    return (StSt(text1, Font.GoogleFont(\\\"Aref Ruqaa Ink\\\"), 80)\\n\",\n        \"        .xalign(r, \\\"E\\\")\\n\",\n        \"        .lead(60)\\n\",\n        \"        .align(r))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"uW3-Ajgprw7N\"\n      },\n      \"source\": [\n        \"## Text-on-a-path\\n\",\n        \"\\n\",\n        \"If you’d like to align glyphs along an arbitrary path, you can use the DATPens’ `distribute_on_path` method to set the glyphs returned from a StSt.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 23,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 375\n        },\n        \"id\": \"PaD3GTSFk9Xt\",\n        \"outputId\": \"76f0d75e-daf4-46aa-f8d4-ece3dacd8401\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=270.0 src='data:image/png;base64,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'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((540, 540))\\n\",\n        \"def text_on_path1(r):\\n\",\n        \"    circle = P().oval(r.inset(130)).reverse()\\n\",\n        \"\\n\",\n        \"    txt = (StSt(\\\"COLDTYPE\\\", co, 100, wdth=1)\\n\",\n        \"        .distribute_on_path(circle, offset=180)\\n\",\n        \"        .f(0))\\n\",\n        \"\\n\",\n        \"    return (P(\\n\",\n        \"        circle.scale(0.9).fssw(-1, 0, 3),\\n\",\n        \"        txt)\\n\",\n        \"        .align(r))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"hUV0ruHsr3GV\"\n      },\n      \"source\": [\n        \"What if we want more text on the circle and we want it to fit automatically to the length of the curve on which it’s set — without overlapping? Simple append a fit= keyword argument to fit the text to the length of the curve that we’ll end up setting the pens on.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 63,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 514\n        },\n        \"id\": \"AfHtWo-nm1Ma\",\n        \"outputId\": \"40e646f2-f7c4-447b-c183-1d46ca882786\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=270.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhwAAAIcCAYAAAC9/nd8AAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xt8VOWdP/DP98wkISh1tu3a7m4vcbftXtzWsEXuJHNGUUGBwSreZdKuFm0toVupbd11+G27Vt3d4K2ovUxAi4hoggqKYM4kARLAlrC92OruGrduL+q2RBRymTmf3x8zAwPkMpdzZibJ9/168WLOyZnnPIFk5jvP832+j1iWRSillFJKuUkDDqWUUkq5ybIsGsXuhFJKKaXGPg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOg04lFJKKeU6DTiUUkop5ToNOJRSSinlOm+xO6CUKj3h8H5f3Dhy1lBfLxvIrj1vLPtrV941szW7uyilSpkGHEqpk8SNw0EAEeGxc+mPbYODnh/6+uyuJdkKwJ9L35VSpUmnVJRSJyHpL3IXokW+v1LKYTrCoVSJWn5X56c8hv0RxPFeMeR9sFkB4hdieA78683TXnXz3gKpdbP9ERnZBxwN9R1VA7B9K1fP6nKhR0qpPGnAoVQJuOmeXX9hDMgsQ3A2gbMNm2dB7AkAIAYAECIABADi+Mqdu94AZI9Anrpr5YzvOdmXcLijKi52lZNtZoc9X/v2nGi2z4pLrN4jWP5vK9oOCqVLgCiF0S831GguiFIlQAMOpQrs0o30fOD1XZNFjNkeYBbAWYjLn4gkvi4AkDoYgkBOB7AA4IKVd+y6nFJ29V0rp/7Wif7FPKxOz6koPInm9CxwESCAiA+An4AfEDTUtwNAF8CoYRtdtuFpXbF6Rrdz/VVKZUIDDqVc9tk7dk46dYIxi8QMEc7BrzumiWFMBAAQSIYY+ThH7IFf3Hzn7kV3rXRgZYdNf/5dyp0wt+kUW2JVw1xSDUg1hRDGsHp520HYEhVBVMiuL92royBKuU0DDqUcduP9ez+MeGy2h5hF4WyhfBKAkRi0EHfeywWngdx4U7jz4/eGp7+dZ2tFzd8QZj/CETPiwewy4MUngiCAIEVwz03tABGFsIs2osvvr9mcbR+UUsPTgEOpPITDNN74432fEsZmAZwNYpbYsQ/j6PSIJAYwCjBFIcDplRXxBwBcmWsb4fB+X1wOVzvYreyQPSvvmp1D0qftz3ukSOAHxG+AfwTgaMBx7xfb/YZtHPzCdzQZVal8aMChVA5u+M7uWrHlG29IxwxATk292RVxJiJxf8EVK+/YuenOr85+MpfnxzxH/KMtf6Oh3vLFRRY5FdTF4mXh9LYxYDcB9N1/YxtIRD2UKIXRviPxAysazYPO3FWpsU8DDqVyYBNnewRzix9iDMKWVQByCjiA4tbfYA75G3GPx+/c/bl2xQPHEkq9/d6wCH2pYxH4mfw3qqj04Dufb+0SkS4Ko8Ly1hse0GRUpYaiAYdSORAYLMg8SQ5E8LdfuWvPGbnU6iBQW8wQSgxPcw5PCzp1f9ubNrqxrKNKJLZ8uOtFpBpAtVBCwgE8cH3rQUCiAukSMnr9dzUZVakUDTiUGoMMe2ARgNXZPCcc3u+LoXj5GwRe+/q3cxghIBY5MdBEcm36clmvZyCc9QhWYkluEGSQAjx4fRuE7BIaK677Xva1RZQaS7S0uVI5EGFpDm+kEAuzfUrMc8TvQk8yJkTWSZl33ryrOvkmn7cTRzcgstSJdgkRbyymCadq3NOAQ6mc0C52D4YjEHPlHTsnZfMcwnZsaiIXueRvwLZDztz7hNENb6zBiXYBQOAJ1WlyqVIacCiVC3KEUqAlQMght5cfFIu7fwpzqL8BcaZmSProxr1fbPfDubyQFdd/V5fTKgVoDocaB0KR/T7D7l0Omz0/uG5mVnkNo5lQ/hbAzkyuvSXcUSXF3D+F7PlGlvU3bq/vqBLEHMg5OX50A8Bt+bcJkNi87Ls14+bnTamRaMChxqxUoEH7SD0gPkkUcxo3bwCkfDzTa70eFq/YF4Bc6m94vXFHRiFsw3P0ZyI5uuHPv1X2VAw4M92j1FihAYcac0KRjirYuA08EkwEGonZD4pkN8UwDBFIia6KTcMPZXwl7KBLRdczu38u+RtOVBclWlekbWdvCyMG8/93sG0jWNdYq3kbSqXRHA41ZoQiHVWhSGdEKK+KICQ4fvWCAFWhyH5HVjSMihwOyIczvniU5W801Fs+QBble1+bCKce33NTW0ggVfm2SXLVDQ4tgY2ErCon2lGqFGjAoUa9VKAByKsAQsNd6431OjJ1IGLHnWgHAEg0CDGxr+K0SSB/5Vi7wj/L5Lpbbu+oEkGVU/fNGtnzjbuyS6zsd6K6KPHaivsSgUFDveUjkPfKFBKtNzxUG863HQCIhKxqQPZHQlErEmr3O9GmUsWkAYcatUKRjqqljZ0RysiBRortyPw8YNPJ6Uh5t+HLM4985wtnvgMxNjrY7h9ncpVh237n7pk95pC/YTiwisQGw0fbi3nrTxwRyxrZA6MslGe3AKRGNsQCxAeIX2hbjUs18FCjm+ZwqFEnFOmoiovcxgyDjBP4He6OA+y+o4/I/zAcmqwRoDKj60h/MfeEEck+fyPfEuwkXltxb00jADTUd1RJPJb3yhSBhJY5sJdKJGT5CGk6OQASv9D2N14TjZKeVXWPaOVSNbpowKFGjcsjHVVlIrfZgpAAuW1lIlnWphiC4WjSqBwNOMTg63AgaTElHO58Tzg8/e0RLyRa0x4fpKBagI861pGjbfOkvUUoRjSbJu68eVe1MO8lvI2pBxKPRfJsCyDv/vxDtbnsA3NyU/A0QVg91M+XiPhFbH/jNdFmDnBF3Qaz24n7KuU2DThUybs80lFV5pHbAITy3TpdIL7Qmo6qxhvy+yRKGh7HIg6Dx0Y44p4ej+FcEdPDlXgPgGEDjm/dOjt04rl/XLXzD3A4L5bAgVtvn+PPux3Sn3fPjNhqAGj4YrtfBP68/iuJAxP67HC+XQKA74faIpDMRuFEJGiUSXDdNdHG+ABXaeChSp3mcKiSdvXDnavLPJnnaGTCU5Z/zQkR27F3Y6H0ph57PJ4/ONUuABj2QHm2z/l62Ln9SY6TSyXRQYgwr/yNRBnzRKlxMZjf6AbZY9vOlC7//mfbQiK5/JxLyFNmvLruqmjk0ct1VYsqXRpwqHFHKA6sVBFP/m0kW+KxKZWB/r7e4a7Nnifr33GPQb+zfUhyIOBILIfNs5x5stDX3V9qD+e7DJaU8BccKF3+vc+1BQHkFfyISCjm1cBDlS4NOFSJc+ZT8XHoSCVJx3534mlJo1I5ccCpdnNG8bvRbLyiMppvG/3l+S2HZbLQV0N9RxXB5Xm2tfnGh/IvXR4J7aoWO8+RljQiEop7jFcfuVIDD1VaNOBQJc0bK4863SYdSBwlxcHfnWMjHJ64OBpwxD25rHmh40XACBwIhyfnX3nTznM5rMFGABDGGvJaBkv29PfGQ3n1BYkVKbbELFemsERCtmG8+sMrW2+LBC3n21cqSxpwqJLWWDf5IIEDTrYpEN91D+3Na1pFxLmMSkPYn3oc9/Q5u+19Xzyr9m795w5/Kedv5LM7LIHXVqyuaWyoz383WIERXJFn3kYkZPliHsOdYON44bKJ8uqjl7fe1qSBhyoiDThU6ctpn43hxRHPM4/DLnOmJwDFczTgsA1xrF0AkHJP38hXpXOpCJgDAcedN++qzifnQoDGhnrLJ8xv+oLkqhseyL8GRtzjaRI4kU80MoH4KAgfmSD711/RurQQ91TqRBpwqNJnOJ/HIchvpQrpXNKoYdtHA47KIzHH2gWAuMebXRKqI/ktg/TDgfwN0s6zuqi3Eba3HpCq3PuAA194IP/S5Q99ri2CYhShE6kC0Pjo5VHrh5daRd4hWI03GnCokheL2XmvAjhRvp8sRZyrYROjcWyVSpnH0eIXk96pzC7gyGPKYihO5W+IIOfN2giuBWyfCHKvKEr2eFiWd0n17/59W31uy1+dJH4xxHr08rYi90ONJxpwqJK3oW5GN8HXHG00zzdWko6NRHglFnOqrROFw2e+k+m1t/5zh9+NPogDK40a6vf7AOQcJAqkEbDz2pxNIKEb8ixd/tBn20JwYJM4J4iID2Bkw5LWkuiPGvs04FCjgkAcH+XIL3HU2VyLlHifg1MqRP/IF6VzaxO3/AOO3rLDOY8sEHgNYBXymMIgsfbGNTV5lS5/6Lpd1SIsvTd3Qf2Gy6KOLctVaigacKjRIup0g5SYP49nOxYYUDxHV5KUe8sdbJdvZXU9cp+yGE48ln+wKMi9uqiARB6jCgQODFTE63N9PpAINkCXlr86QkIbLrPy+h6VGokGHGpUoNDxEQ7mkcchEAf3IbKPBhwxrz3BqVaF8vtMrw2H9/skjymLIRGvhb+d/w6qkldtEKlCrjU3yB6DnlCqFHouIiHLB8QipRtspEjDo5dY/mL3Qo1dGnCoUeGRa2ZEnW5TmEcBMAeTRtNHODCA9zjVLoCM92WJeY74Hbxvumi+Ddz+lXZ3aoNkQozwF76Te+nySMjyDZQZFgq0/DVfhlHsZFY1luluscoxl27ce9yn0MeXTD1pK/L8sBUQ51ZRSO5vAgQNgTMLSgzbiB997Imf5tj29ILfZn6xO/un0IH6GyJGEE7tzJsFkptvun9OXqXL+8o8DYYbI0duobgyraYUoAGHytNnNu1ZChtBAzj6ppDaQn7JY3sAopmGrHp8ydS8p0RI6ZJ8N+46wd9/t8P/vetyGD1xsLR5zGsffTcVGh927s1VXs/0SgK1zm5Gn2DbRjTfNvKbTskR8Vq8LL/S5Q9c1xYRQcitWEkoK0jmt9T3pEbhe/QSy3/FJjPqWJtKJWnAoXKSCDQYFqIKgiHfIwUIim0HL9vQ2dhXUbGieXEe9RgMicLOb8Otk9isRi7D/gKPU28k7D+Ww0HaZzhXNd3+VSZXhcP7fTEcLsn8jcR0SuFHCAwawXzyNtZcl+tW8xlbde3DiY3j1l3T1g04t/mbUm7RHA6VlcWb9iy9eFPnqwAaJVG1MFOhiiN9r17+aEco13u7UQAs17l1cXCVSnl6Dgcw2al2KZ7/zOS6vhLO3xAR5z69Z4iUFfnkbTx4fVvQkPy2mh/B2qXrjlU7FUq3i/dSyjEacKiMBJv2+xZv6rRE0JjrfhYi8AESWbJ+T05LHN0oAJbzFI2Dpc1jXhIAbrrnlQqBnONUu0K+lMl1huRbMnxw+eZv3LFyd1Ck4OW/W790/+yc8zYeum5XNV0cbSDRunRdbSj9nA07NPjVudHpFOUWDTjUiIJN+/xi978qIn4n2hMwcuUPcy265XABMEFVKLI/+xUQQsd+dyiJHV29sTe/DsEpTrX77a/NzGiEg04m4qbJN3+Dkl9l0OxvyJ64J5Zz8LVmWUeVa1vNAyB5AMbxweHDV7f7ReDYZmykwxV9lUqjAYcaVvCJvQ1C2xLAsRdREfgI28ol6BA4X4/DG+vNuh+kQ0tUABhx+aflDbvaAfyTU20S7Mzkultu76gSoMqp+6Z1IK/8jdtv2RWCG/0ahkByztuIhCyf2P1NrgUbYA8MBusaj/UvErJ8tsQdHU0RQaOT7SmVTgMONahg035f8Mk9+0XoTvXBZNARbMpudMG2na84CjuXYXvnSpsLcK1AZjvVXqJN2ZHJdYbtTjlzCvIKDIUsaO4Gibtvui/3Led7J3ia8llmPRyCPRD66xrN7vTzEpdIrtObQ7ENDTiUezTgUCcJNu2tBvr2u1J5Mp3AV3mkL6tPaI/UOV8ADJLDVvXiXNKoG2ybz2dyndCd+huSR8JowUc3iNeW3zcn58B6zTJ3t5oXGPV1jeZxAdzaa1tXi4jDuTfcfMWG44MapZykAYc6TiLYoJUoB12YW16RZRIpgQMO9+GkHIZlazqqPv9AR2TZmo6qwZ4gcC5p1GkE3+3+2KzdGV7sSqEnO557wmihRzdsMJzrc9csaw0Dbi5/lbq6xprG9DPrrmkLAXB2eTgACvIqcqbUSDTgUEcdCzacy9fIhNiMBLNI3Mzn0/Pg7YkvFViEIvt91z+4u4GCVwGEbGPI0Q9Xdot1gkB2PL5E4iNd9/Vv7ap2JeeA7An/S27LSosxurHi3uPf0DN1/7K2EODesl0Ca08MNiIhq5riyiqYzVds0NUpyl1a+EsBSAQbFFrCwgYbABJTK+V9EQCLM7mcwi5xqvx3Usxg8PoHO05j/5H69I2+hPADOGlbcgJeNypzOoFERtMpJP1OlWc/rl3JbXQjXL/fR77T4EafhpLr6MaaZe1+CiMuVlzf/NnG45e/RkJWtVAsx+9E9tBwNlerKWhVAdIkRDeFdYubcy+ipsYOHeFQCDbt9yU/NRVtN0vJYmrFE3c+cVREGgCE5YRdRcnBEwGFJRqsk+/0T5i4PpNLBc4scz653dz+fyomvFMvBdykjWQPPPGTgsmR3H/jrmpb7CY3+gQkpgyFx9fWOBZsuPDvI0bYydyNpqAVBGQ/EjlgQaFYTUGrxHfKVYWgAYcCpd9CKWwwRWZUd6GxbkY3iR63uwMAIkMUBnNwt1hHidyzekWG5eOldPI3EqMbzuclDEdEVme7DLah3vKBMevEwNQpBHsMxv0nLH91Ldgg0Hr5YzWO5G40BS3fE8FoBJAmHP/hpVoorzbNt4r/GqOKSgOOcW7BU531KIVgA4AAVVf+MMPS5+J8PY6hXHf/oPVCSi+Hg3ynr2LiXZlcess/d/hd6kNO+RvFGN2wjVhWb7QN9ZavvN9wOdjwnhBstPsBl0Y2yJ7KXmeqzDYFrWpCrGH2j/GJV6ynF1iuVLVVo4MGHONYsGm/T+zC71UxLGbWH6cTR4fjMeInBRyEc5VGHSNoyHR0wzDcqr+R/ejG7bd0VBV6dAPIfnSjvN+wct17J6MeQU6zEV/+g7q22h/UtdVGQtEIYLsTbACAeIJO5FZsCrYup8j+kTbZE8BnizQ9tcAK5XtPNTqV3oumKhjb6AtDipe3MZhMRzlcKQA2FJ5cY0FKbISDZPTOr87OplKpK9MpYPYjT5R4uOC5G1mObtx/Y1vEzWAjJTlCEAUYBSTk4q1WXbEh90JnQGIKZdPiqCUGs/q3pEjkqQWthS1br0qCBhzjVLCpowqQAn+qzFAGoxxeTCjYlArBswY5XTIBB4lf9E70ZhxAhMP7fXBpGs3IcuTp9ls6qgDn9gLJTHajG/fd2BaBq7U2CoxYe8WGY7vN5uLxSyy/LfJq7pvrsf6pBdGIJpOOLxpwjFNxj9NVCp0jQNWV64Yf5Wism3yQdLwA2OD9GaRkNSEVhbj3SAi+FYvJufd+afrbmT6nr3yQ7eiJ1qN/cOwPB/8z5AZf//jN7D41U2IF/aSb7ejG/Te2hTB0XsLoQx64csPxy22z9fjFrQ1CsRwYHQ0ZMV3BMp6UZqa9ct8g0wSlxIA0ACPt68AuQAYbfXDcsjUd/gduOFZWXchyFLBexGBIbjHgWfavt07/32yed/vXZzaj2J1P+vrtcxbffku7n7ZUw0C1ENUAXPw/zXx0454b20IUicDFYhsFRR6o7M29lP3GS61qUCLCHLYCGIIIqj0D2L9lvrX4wq1mwUYtVXFowDEOBZv2+2z0OzOHT7RiqKWj+RD4rlzXEVp/7YzGoW+NqBRoON5OvMhGj50p3ggHid8JZPm/fnXmY8Xqg5O+9u05UZwwFXP7Le1+2PCDUi1ANQQfdeRmhrcxk8vu/WK7H4Cbhb0KK1HcK5RrkujGz7QuF5uu5HyJoCousJ6+yFq84BmtdjqWacAxDsW8sWrDdqIlrti0ZPrqizfuDXngfLllEVmOYUY5PPB0EY58IyMyTkoYZEWhBwkIvkzKPfTiB//25RlHCnrzAjsxCLn9lo4qwx6ohi3VybyBrINcgmu/vHpG90jX3X/jruo44k2FrHjqKiZ2m71qffYjCE1By9dfJhEhXZ2ClUTdDmvLfKvuwq1mo5v3UsWjAYfKWczLZgB4csnUxks37gkhhzeB4QhQffXDHf5Hrhl8h9jGuqldSxs7nbzlcJ05/nsTqSjUp1+Sz5PS0LBy1nOFuWPp+dq3Z3QD6EZamfm7vtLuB+AnWQ2BXyCnDdeGoCw80n0abtxVHTfirtXaKLg8go3HL7H8A5AmKWAFYgoiW+ZbH71wq7mqUPdUhaMBx3hkO1ODwRM3qpF4E8BA3A6VeYxXnWg3HZFaJjjE18lWEXF+SudkVcvWdFQ9cMOM7ks3/qwcb2Wco5k1AocBbCPZVBGreOqOW6YUpKrqaHPzvx4/CnJn/a5qj0E/aPuJ4wOQTEY3GuotnxGzI2Mm2AAAMeqvWl+TdbDx2JLWBtLZ/VUyRUF4y3yr6sKtZl0x7q/cowGHyh0RRPITZ/MVM7oveWzPWhFncyoEsvTySEd4Q92QbxZRODyyMpRkHkf3pEN/qACc252eZK8A+0jZacDY+e6p3uhDn59y2LEbjBMrV8/qAtAFJLZZb6jfVW2DfsD2CzzDrkxJBBteSwTVYyVvQyh1V63PbifcjZda1YREAOcSQ3MU2jLfqp54GKYZ1Y3fxgoNOFQ+FgWb9vuaFyeqW8ZsO1zmMRxP4vQaCAEID/Y1A0YXC/QOYSSWxzaX90tlXg2Rv4FgN2DsomD3kYnlP37o81MGnOmlSllxQgAyHE/cEwR4Roks3skP2SPMfhplw2Wty8nsini5rPrwRFhb5lp1F27XFSxjgQYcKmcC+IyBgSCSiZ1HRzkcXjkiiQJl4cG/ancV7E0iuZTYNiomeOIZxgeJrNafEtxFYjc83l33LZ/m+NSTys+X7q1pbKi3mo2Yt17Iesjw+SDZSOyRYgRt2H6By1sJkD1GlsFGU9Dy9VVIE5D7klkXVcMLa8tcy9SgY/TTwl/jkWFEHWsKPK5aacy2w061fZTAd/XDg29d31g3oxsF2jk2lTjKgfiEoS4h+A6JF0j8P4Dnv9tr++5dPvOse5fPuvG++lmP3HeTBhulasVq8+Dy++aEY2XxKgCrQDrzc2VL6LrvzYl+/nu14Vis7AwQax1p9yQ8kG2wsX5JW7CvXF4FxO9On/IngE+82L/lAt2DZbQTy7JomuYYGEdUmZq/ZW+1N8b9qWNJm5HI5vGxc4a56dKzo6mjJY/taURylCNxDfNoO/GY5NpHls4IDfb9XBvpiBo4ljg60j1z/X4BwLA9kym2DfBAsl//I4JdAHbbcez64O9nHAiHpTBrdZWrGuotn7ffWy+w69MTULP7meGqzz90chnxSMjyxQyjHoJ6g4O1zazuQ+Ju22uH03eaHU5T0PL1TpAGQEK53jOf36PjH/Ok88M8LzzvOV3BMhpZlkWdUhmHtl44tWvh5j2OtUfYIaStFqDIaiGdnlYZrlBZFAVKHKXE/J64vTHuMZYYtr3rvptm/7oQ91WFl6xIGm6ot1aX9xvhbPceIrF52XcH37MkGRiEIyFrtW14ggTCghyKm5GvCYz6ax+paR754oQfXmlV99rSBEhV1vcrvvCzF1hV857TFSyjkY5wjFMLmju7ReSjgBMjHEAsZp/RfMWxlSSXPrYnKkCtUyMcAECRxY9cM+2kF9ZQpMMPiHX89e6McAixds2Ng4+0qLFtzbKOqrgMhI20HKWhfk5AHKjoj/szHXEAgEhoVzURC1HEL+BZw/48Eq02ZXVdFoEGAPzwstblYmD1EKMxo2GEIyU6oReLdQXL6KEjHKPQvK2d73l2fuYbdQ1J0IVcPlENocwj9QCOrtunbYTFsK1hnpI92z66DPd4E7qAPkdvNRQWaCRFlZ4bHpjRDSC0ZllHmDIQxlDJ0WSPQW+orrEmqzfDusZZXUj+DkVCVhXgqU4tTz36nkzppicerWs0u7Np+9HLrSpCIsh5d9eS4+8rh/XsBdbiec9l92+hikdHOEaR857dEwbk4tc/csqUn595Zn8+bS14am9ImChH7sQIB4iDsbLyM1JLZIHEKIdB1Do1wgHi4MNLp//RYN9P6Acd3ThuxMaFEY7EvjHh9E3cxprdu3dXxmKxU0Vk0sDAwCQAp4rI0b9t254E4NTk5e8YhnGI5CEA76T+LisrO0TykNfrfWfmzJljtgT7mmUdVcRAWI7LVwIoqLvhgezqX7hp/RVtQVvsiMFjBc3GwAhHaqTnoEGY5+kKlpKnIxyjBSnnbdv3oADXAcBH/ufdu34OZDWffCJPvKzZNvojznQQEMDn7e+vR/ryVZFGkM6NCAh8V0c6/I/UDfaGL46O2BwnFWjcOHoDjRdeeOGjHo/nEyQ/QfLPReRvALwPwCQAp5KcJCKn9fUdGykSOf5zCMlBz514fSwWAwDE43FYlgWSPSJyCMAhAO8A+D+SPwfwXyLystfrfXnOnDn/4/g37bLjRjyOBh68+4YHahuL3DUAicTU8n5pIBgq1r4wBHtAdIu4tKuzoLWsP1HtWJU+HeEYBeZu2/M9g/K51HEiyhfzuXnHVobkYsHmPV0CDD9XPMzjkz9tsPvxy6afkX6Pyx7t7E7t9OnMpyeuWrd0RvjE7yUU6QgjWePAqREOEq0GRs+Ixo4dO97n9XpTQcUnRCT198cB5FeszGUkDwP4TxH5JYCXSb4sIi/HYrFquYtjAAAgAElEQVSX5s6dOypKu69Z1lGVDEKK7uGr2/1ixyMCqUqdy2BFjaMjHARbJbE1wUHYiBo4FnTkPcJB9hiU0PnPm1nlsKji0RGOUeC8bXu/BuBzJ54nuH7e1s6/yiufQ9gISkM+/Tu+Pam6dOPe0ONLpjYeO4fVABy7B0/atfWoKIDbnLkHWg0i/GCJBxptbW2fsm17FskaALMBfCg14pAabThxRCJDf0hOjxxKjUykpkuSx6lpM19yZCQ1zTKJ5CQAqXODTn8NRkQmAvhU8s/Rfnu9XliW9SuS7SLSDmCnaZo/zeWbclvpBButtwntMERScXcxHBQgtLg5kV/RFLT8sLkakMHzXrJAsFVEQudv09yN0UYDjhI29/m9V4P4l8G+JsCf2GJ8F8BlubYfjxtRr+HwKxLt25C2pXxfRUVjeV9fWABHKjcKMcTQbP6JowRaaSP8vRINNCzLmg3gaIARj8ffk+lzSf6fiLxC8mUAvzQM4xXbtn/t9XoPkTxk2/Yh0zTfcqnf7zcMY5KITIrFYpMA/BmAjwH4y7RRmPcO08SHReRKAFcCQEtLy9sAdhqGEbVte3cgENjlRr9Hmx9eaVXbIhEAxd4HBQB8gOxvClrm4maza3GzeRBAaPNCCzkHHWQPKeH52wKlVH5dZUGnVErUedv2BAhsE4gXGG6IUT737Pyzf5DrfRZs3tNlpL2JOzGkCkhd+ijHkkc7GkVkqVPDtYZd8UeNdZNPWgGQShzNYUqllYLw964rnUBj586dk2Kx2GzbtueIyGwAZwMYssJp0jsAXgHwMoBXRORl27Zfnjhx4kvTpzuwsslF27dvP83j8fyVYRgnTgl9XEROGeHpvST3pkZAysrKds2ePftQIfpdKtZe3brcSNszJrfETneSRmmzbvHTZmPq3FMLrBAgkWPXZDKlwlahhHRFyuilUyol6tzt+yaTfEo48ggUYd8/9/nO9u3nTX8lp5uJrEZytYpTxD5+lAOG0QwHC4HF0FuNQbeszy5xlMBaCBpLIdCwLOuDAPwAZpOc3d/f/0kRMYabEklUOZV2AO0ej6e9pqbm5wXqruOSeRp7kn+O09bW9jfxeHwOgDkAagB8+IRLJohITfJr6O/vty3L+g+S7QB2VlRURGfNmvWGu99BcUQut6o83uRy1+JNnwxLDIlsXth61qKnalcAwMKnzcanFlggsVoy2LOGxKoLnwuEXe+ocp2OcJSY85/b/V7b8LwEyOmZLw3jS17bM+XpBdlvaR5s2u8j+rshiSkPpz7h2OSKTZdPP/qJa8mGzoMGkXF56GHbtmkOtlIllTg60ggHiLXxGMKNNxR3zn337t3v7e3tvRrAtSLy6REuJ8mXUgFGWVmZNXv2+Kxy2t7e/pFYLJYegPwVMOIyjH0A1lVUVKyfOXPm793uYyGsu6YtRNgNgsRy1/yXrrq7LBY2mulhXXJ6BVvmW9UxA1EDJ78uJF/XemxKcMFzZhRq1LMsixpwlBLSmPv8PguS+KSW5YvFpmfnT7s0l9subOpcLZIo2+zUCw6BgwPlx+pyLHl0sP1Ocmt76IBjTxBg0zABx9q4B+HGuuIFGlu3bq2YOHHiQpLXArgAQ+dRxUj+WETaSbaXlZW1zZkz5w8F7OqokQzc5ohIKgCZjKH/XQdIPgtg3Qc+8IGnz8yznk0xREKWT+ISEZGgs0GB+3U4CHTR4OJUMumW+Va1LWzGCVWPhdg88TBCWkl07NAplRJz7o5930oFG9mTS+Zv2fulrRdOvSfbZxrgama5T8SIvQF85f39EQCLnWx3eINvVU9iLYscaFiWNZvktSJyKUnfiV9PLgvtTAUYEyZM2D2Wi2Y5KTlisTn5B7t3767s7e2dmQpASE5LroIBgDIRWQhg4RtvvPEHy7I2ishav9/fUaTuZyUSaguKbUdE5KSfodFAgGrYsv/pi6zFC54xoxduNbuagla1N8YoIGeB7IFI+MKtpiaGjkE6wlEiAi/snWnY2JXLp4ajyBgNmfncvKn7sr3/wqbOZhFZ5PQnHBDNEHQJGXZsumaIEQ4ACP2g82BiRQwBYC2leIFGa2vrGfF4PATgahH580EuiQHYRnJdb2/v5vnz5xemPvs4s3Xr1ooJEyYsQqIi6Pki4jnxGpL/BWAdybXnnHPOawXv5AgiIcsnlAgw8qhG+uNSG+FIf0xK/aJnau8GErvXegew2iBWX7hVq4aORTqlUiLO23bgFNvo+zmAj+T7Swzyf/sm4KwXzp32f9n0YUHTnqAhaHLnBWeYfIoc2h4+4OiICtBdrEBj+/btp3m93itIXiMiM4e4rEtE1pF82K2lqGpwlmW9PzmdtVREPjXEZTtFZN3AwMDGUig6Fgm1+4XxCCBVgHO/Ryc/HibgsPnaINMeWbQ95OPGuIcrUnkdauzSgKNEnPP8ngdE5POAY7/EbVvnn21CxM6mHwub9nQZyHyJbLECDsPmGcWcHhmMZVl+kjeIyJLBvp6sg9FoGMb3a2trXyp0/9TJLMuqBnA1yZCIvG+wa0g+CuDBQCDQWtjeJURClo+QboOSccJ1+mNnAg7eXTaAcMyLagLNqb7kP8LBHiHCC7fo9Ml4oAFHCThnx75zhdyeOnYo4IBQ7thy0dm3ZNOXYNM+P3Bsh9dSDDhgo+fh0PSSmb9uaWmZD+DrIjJrkC/3AthMct1bb721bcmSJfECd09lYOPGjZ73v//9FwC4FsAiEakY5LKdAL5lmuZzhe1dcudYW5pT+5EUMuAgufayTWYodW7jpVa12IgK5LS8Xp9sHvDYCOn0yfihAUeRffrFF8t8f7D/U4CPpM45F3AANrHw2QVTn86mT8En90QhiS3YSzLgIFsfXjrDP+I34iKSRmtr62dIfh2DVHUkuQvAuvLy8kfHWwGq0W7nzp2T+vv7r0BiyuWkKTGSPwbwL6ZpPily3E+mqyIhywfbaBZBbRGmVBqXPO6vSx00BS1f3EBUhtwbZcT7rFr0lBmGGlc04CiywPa9t4jgdieDjOMek+/EbO/kbYs+/Z+Z9il9lKMkAw5gxcPXTi/aEGw0Gq2zbfsWEfnEIF++37bthnPOOee/Ct4x5TjLsj4GoB7AF078GslfGoZxh9/vjxSyT5FrWxuNRPIrgIIFHICN5rL4sRoaTUHLZwuiyGLUBTZfIxFa/IzW1RiPNOAoojltP/7j8r5YNwQTXQs4AIB8yUB2RcFSoxylFnCQ6PHaFVWDlTV309atWysqKyv/nuTNkkycS/MOyTW2bf/bueee+7tC9ksVxo4dOz5gGMY/iMgNSGxSl64bwB1HjhyJFGqV0bpr2uopbAAKF3AIEzU0ymLHamgAwKbFVkbbFpDcDAMhTQ4dvyzLolHsToxX3v6Bb0MwceQr8yOQvybia7N7khF2pzd5ayxksLFt27ZTWlpaVlZWVnYDuC892CD5ewCrAHw4EAis1GBj7Dr33HN/FwgEViJRUn0VgPQCbFUA1lRWVr5qWdY/bNu2baR9X/J27cM1q4VSN/KVzhKgOuaR/RuD1tFpxEuazBDJIV9fCPbQZt3ip8ygBhtKRziKwG+9+FeGbb+U26eQHEcKaHz6mYVTfpxpH4NP7okKErkcI7Y94mNnRjgG4jxjQwFWp1iW5UNiKP1LOHmL9d+KyL/39fV95/zzz3/X7b6o0rNt27ZTKioqbrRt+x9E5APpXyP5f4Zh3D0wMHCP20tqI1da1YYh0dR+JG6PcKQ/FrLuM08e25DtiaAVFpHb0q8l2Jq+Rb0a33SEo0gkbl9Z2DvyrmyCDQCASL1LnckJibvdDjZIGpZlfYFkN4DbkBZskHyN5BeOHDlS5ff779JgY/w6//zz3/X7/XeJSBWAL5L8n9TXROR9JP+f1+t91bKsz5N07cNc3Xqzy2vTD/KAW/cYCkUiT1zcelvq+DPNZphk2qgLV13cbPo12FDpdISjCMwX9r0k4F8VaITjsWcWTL08df68bQdOef78szJ6sww+sScsguM+tZzQdob9yG+EA8SBR66dftJqECe1trZOjsfjjYMUg/oFgG+/+eabj+iyVjUYy7K8SNTz+NqJycQkf+zxeEK1tbU/cev+kZDl88Rk0FUjbo1wpP3daNjHCnc9EbRCBtC1uFmXu6rjadJoEfitfX9r2PhJ+i+3WwEHwZ8fPuX0T0fNM3oBYH5zxzTDkEh/ReXZmQQdwab9PrH7uiDy0WIFHAR64jFWuzW60dnZ+Z4jR47cQfJ6EUkf8fsDyVtN03xAsiygpsYnkkY0Gr0BwDcB+NLO2wDunzhx4q3Tp09/2637P3xVayMksYKlgAEHSHR5SFNzNNRwdEqlCAwblxTiPgTeNchgKtgAAEOMdQL564re3k2ZtNG8ePJBGp6QW33MhIBBt4KNlpaWaw8fPvwKgGWpYCP55vC9ioqKjwUCge9osKEyJSK2aZr3ezyeT5D8AZKRtogYInLTkSNHftnS0uLadOo1P6wNIZHUWlAiqKagsdD3VaOPBhwFRmJKIe4j4GXPLJj+Sur4oqf33CmCTyS/eMGC5j0Z7SrbvPjsKMG7XermsGyy7pFrZkSdbre9vf0TLS0tu0RkrYicnjpP8oDX651smuZ1yR1IlcpaTU3Nm4FA4HMiMi1ZKCzlgyLyw5aWltb29vbB6rjk7ZpHasO0C72ChasubjKDhb2nGo004Cg4Drpng6N3IFZvuWjaltTxRU+9OBuQm9OvEcFNFzV3ZvbCJBVhgAXbQZNADyCL1187o9HJdl988cWJLS0td8ZisZ+eUEXyLRG53jTNyTU1Nf/h5D3V+OX3+/eZpjkFwLLkMmoAgIjUxGKxn7a0tHzLsqwJTt/32vU1jRTDBOnuxnPkAcPm5M88qVVDVWY04CgwAdwNOIhfnHr4lK+mDhdu/sUkwF4/2KUG5MGLnnrx70Zqsnnx5IO2YQRBuL5zJoEeiOF/5JppzU62G41GFx86dOgXInIzgDIgMX1Cck0sFvuY3+//biFLVavxQURomuaDtm1/AsCDySk7ACgTka+T/EU0Gl3g9H2veWROVEC/ex8UeLdB+DU5VGVDk0YLzHxh35sCvN/FpNHJWy+cevRF4KKn9qyDyDWJr/Pk5xGvx8rk7K0XTv3tSH2/+Im9IYAR95JG+RrgCa6/aqpjL2K7d++u7O3tbTxxF1eSP/J6vdfW1NT83Kl7KTWS5GqoB0Rkavp5khsnTJgQmjlz5hEn7xcJWr6ySomKyFlOJI0S7DGI0CVPmI5+IFBjnyaNFoG4uC4fkJXpwcb8LXuXpIKNoZ+CD3kHuPXSjbsrR2r9yc9MbQTcmR8mcPfh/gnVTgYbbW1tn+rt7f1JerBB8g0R+axpmmdrsKEKrba2dr9pmtNJfg7Am6nzIrKkt7f3J21tbX/j5P3qms2DA0foJ5FdteFBEGwti6FKgw2VKw04CozAKyNflVPLLVsvPPuu1NHczT/+U7HxYCbPFGByf7nnsUyuTQQdziWREuihyOJHr5pe3+xg2fJoNHpTLBbbKyJ/AQAk4yTvLS8v/5jf74/o9IkqFhFhIBD4AYBPALifZDx5/i/i8fiPLMta5uT96prNg1c/WhsCkMfvLVcs2WT6demryocGHIXn/E6i5BGAS1OH87a+UlFmxJ6BHKsFkIEFC5s6MwpQnrhkej2Z//I7Ept7KyuqHr3SuXyNzs7O91iW9QzJe0SkInn6N16vd2ogEPiSbhevSoVpmgdN0/yiYRhzSP5v8vQEAGssy2pyel+WKx+trWeWe7AQPABw8qWbzKLt0KzGDg04Cs3ALx1vU+Q7z86f/vrRY/7+ByKYnH0zcv3CJ/fcPPKVwJOXTgsLZTKJ7Msqk60Umhuumh5sXuzcqEZbW9vfHTly5KcALjx2Kz4P4G9qamqyK+2uVIH4/f6OsrKyTwLYkXY6WF5e/tO2trYRk7qzcdWGmkZAFme2goV3lw/Av+RxTQxVztCAo8Boi+NTKuSxNuc9s+cegeRcXMgQ3Lmoee9lmVz7+JKpXU8smVaNRLGhTF7A1sZtY/KGK2f4N1zhbH0Ny7K+Go/H9yCxoycAxAB8LRAInG+aOgysStucOXP+4Pf7zyP5jdQUC4CqeDzeGY1GVzh5rysfrWm2E3uwDP47S/YAXLzkcbNep1CUk3SVSoGds+MnH6D0/tbRVSrkKzaMr3nIIARXp19z/LWDrFIZ4nGcOOfpi6e1ZPO9feaxPUEBqgXwH23PRjdhRz1AdMMVzlcM3bFjx/sMw1gvIuelnf4NycWBQGCP0/dTym3RaHQGyScBfDB1juTzInKZk8FzU9Dy9Vak78FCiM1W24PQFRt00zXlLN1LpUjMHfuaRbioQJu3pZ3LPOAg8LYd90x7+pIpvxjh2ymalpaWWQCeOGGLcAvAxTqqoUYzy7LeD+BRAOemnXY8kG4KWr6+CqMRwCLSXnXFRi3ipdyhy2KLxZDvFrsLIxHgPV6J7Vi4ufMDI19dWMlt5MMA2lLBBsm4iHzd7/efo8GGGu1M03zL7/efB+DWtCmWPwGwy7Ksbzi17f3iZvPg5Y/VBg3bnqzBhnKbjnAUA2mYL+x73Ui8gJTkCEfqMcGfHD6lckamW9q7bevWrRWVlZVNAOalndYpFDVmtba21ti2/RjSplgAbD799NOXnHnmmf3F6pdS2dARjmIRsSm8v9jdyIRAPnnKu0eait0PAGhvb/+jysrKnTg+2LAA/I0GG2qsqq2tbQNw4iqWRW+88Ua0s7PzPUXqllJZ04CjSA6d5mkA8eti9yMzMnfxpj2NxexBe3v7RwYGBvYBx3bbJbnGNM2ATqGosc40zbdM05yb3PY+Zcbhw4f3vvDCC39WtI4plQUNOIrkR1OmHLbBjGpelAIRLF28qfP2Yty7paXlrFgs9mKqaigSm7N8LRAI3FiM/ihVLIFA4HMAbk0di8hfGobxotMl0ZVygwYcRWTNnbYeZGex+5EpEbll8abOLxTyni0tLecA2A3gj4FEciiAJaZpfruQ/VCqVJim+S2SV6Ulk34wHo93tra21hS1Y0qNQAOOIhMYo+tTusi9ix/fc2khbtXS0nIlgG0iMhEASB4GcL5pmpsKcX+lSlUgEFgP4HwAvclTk2zb3mFZ1iVF7JZSw9KAo8h2zD17P4nGYvcjU5LYe2r94if3BNy8j2VZt4rID0XEkzz1JoCZgUDgBTfvq9RoEQgEXiA5m+Tvk6fKAGyMRqOjZqpWjS8acJSAeFnZCpKvj3xlaRCI14jjqc9s2pf1fi0jISktLS3fB/DPaede83q9UwKBQPb7tig1hgUCgR+VlZWdTfK15CkheWdLS8t3itoxpQahAUcJiJqTD8LAkmL3IyuCU8SOP+Nkk1u3bq2IRqNbROSzaae7RGTKnDlz/sfJeyk1VsyZM+e/RWQKyZ+lzonIDZZlNf/sZz8rL2bflEqnAUeJeOHcaR02eUux+5ENQn7oVFuWZfkmTJjQhuNrbGwHMMc0zbecuo9SY5Fpmm+Vl5fPABBNO73od7/7nbV9+/bTitQtpY6jAUcJaTlv2h0EtxW7H5kgeKh3YqUjy2S3bt1aAeB5EZmadvpxv99/gWma7zhxD6XGutmzZx8CMBfA46lzIjLT4/E8n/wdU6qoNOAoMbEyz9UkflvsfoyIuH3LRZ/6Q97NkMaECROeAnB22rk7TdNcIiJ2vu0rNZ6YphkzTXMJgH9LnRORqZWVlc2kVpZWxaU/gCUmak55C4ZRkGWnOSPe9NBe7URTlmU9kr61PMk7A4HAV51oW6nxyjTNr5C8K+3UBdFodG3ROqQUNOAoSTvmTtkJsHSTSIXfenzJzCP5NmNZ1moRuSJ1TPJRDTaUckYgEFgJ4JG0U1e3tLTcWaz+KKUBR4naft60x1maSaT/3V3lzXvJXUtLy0oAy1PHJJ83TfPqfNtVSh3j9/uXAngudSwiN7e0tIyuYoNqzNCAo4Rtv2DaHQS/X+x+pLNtuf5HU6YM5NOGZVmXi8gdaaf29fb2LtScDaWcJSL2kSNHgiT3pp27z7Ksq4rZLzU+acBR4rafN/V6Ek8Vux8AAPKJ5kun5lXpMxqNziV5dJiX5MuxWGzu/Pnz+/LvoFLqRPPnz++Lx+Pnkfxl8pSQXNvS0nJ+UTumxh0NOEqdiP2/Hz7lUpA7i9oPoodGZV5DsZZlTSH5VFq58l95vV7/3LlzexzooVJqCHPnzu3xer0myV8DgIh4RKQ5Go2ePdJzlXKKBhyjwM/PPLO/b8Kp85jYNbUoaOC6povPeiPX5ye3z94OYAIAkPw/wzBqa2pqfuNUH5VSQ6upqflNWVmZCeBg8tQEks+3t7d/opj9UuOHBhyjRNQ8851D74mdi+MrCRYEifVNF097fOQrB2dZ1odisZgFwJdoj4e9Xm+gtrb2Vcc6qZQa0Zw5c15OLkNP7TLrGxgYsNra2v6kmP1S44MGHKNIx8yZR7ZdMNUE8XTBbkq83lfJG3J9+u7du99LslVETk+eigGYX1NT8x/OdFAplQ2/37+PZJBkHABE5E9jsZiWQFeu04BjFOqtfPdiAE2u34g8EicvfHb+9Ldzezqlt7f3KRH582OneFkgEGh1sJdKqSwFAoFtIrIUAAFARP7S6/U+UeRuqTFOLMuiaZpS7I6o7J2/dc8aA7IsdSw89rXU4+PP8aSvD/eYIgs3B6fmPJpiWVYYwG1pp5aZpvlgru0ppZzV0tJyo4jcn3bqVtM0v1W0DpUAy29Ve+I8OtoTH5DXzE6zu4hdGhMsy6IGHKPc+Vv2XGkA34NIpZMBBwW3bA5OS6+VkZXW1taZ8Xi8XUQMACD53UAgcH2u7Sml3GFZViOApQBA0jYMY7rf799X3F65o8VsqbUpVWKgCrCrxJYqAFUQVI34mgh0GTa7BUYXhV3xQ9JqdpkHoTKiAccYce4zP/rrMoltFsjHU+dyDjhs2BBZ2bx46r8hR7t3735vb2/vz0XkAwBA8ue9vb1/p7U2lCo9u3fvruzr6zsAIPX68XosFvvb0b5c/fm5VjVs1AKohqDaIKqB1Otd4kUvk5He4R6TbBQx1s7ZaUYd/wbGGMuy6C12J1T+dlz06ZfO23Zgsmegb70IFubaDoG3YRif2Rw8e0c+/enr69uUCjYA9JJcqMGGUqVp5syZR9ra2oLxePxHSCxb/5DH41kP4MIidy0rz8+1qilYJDb8EPgBQFz+KC0iIYChnTNbug3KipkdZrO7dxzddIRjjLnwmRdNW+K3GEzswJrpCAeJFhEJbQ5O/VU+929paVmZXrZcRD7r9/sj+bSplHJfS0vL9SJyNMdKRL7s9/sbitmn4Vh+y9dfjkUU+MVGEJJYdj/S6ISTIxwntW2zeeIRo26yTrWcRKdUxrD5W178pNC+ATbniUgVMETAQfwXiX98evG0R/O9p2VZUwB0APACAMmNgUDgsnzbVUoVhmVZTwJYnDyMkZwSCAQOFLNPJ3r2AssPYKkQodS5rIICNwMOAiC6DUrdjE6dZkmnAcc4ceEzP/prwJ4hcXuygGdCxBByty3eTc8snPJjJ+6xffv20zwez89E5M+Sp/6zoqLiUzNn5r+NvVKqMCzLOhXATwBUJU91A/ikaZrvFKtPQGI0o3cCFgEII9m3vIICNwOOlAGZPGuf2TX4dzT+aA7HOLHlok+/BOAlN+/h9Xo3AEgFGwOGYSzUYEOp0cU0zXdaWlqCAPaKSDkSb+7rAFxcrD49e4G19LBgtQC+497QS52X1q6zLVODjmO08JfKm2VZXwRwQepYRJbX1ta6GuAopdyRnEK5Oe3UYsuyPl/ofmyZb1U/M8+yKGiU5LYIo4kAPnhpdUy3qordl1KhAYfKS1tb26cA/Hvaqc1+v39NsfqjlMpfIBC4h+TWtFOrkxswFsSW+VYIwH5JrjYZrQTw2UL3q0KPEhpwqJyRNGKx2EYAZclT3QCuLl6PlFJOicfjVwJ4PXk4IR6PbyDp+ntGMtgYMyvbBKjumP5CuNj9KAUacKicWZZVLyJ/mTyMeTyeRcVOLlNKOWPu3Lk9InIxEhsuAsAnk9Onrtky3wpRxk6wkULKcp1a0YBD5WjHjh0fEJFvpp36tu4Aq9TYkixxfrTqsIh8c8eOHR8Y5ik5e/YCq2osBhsAIAIfEB+T31s2NOBQOfF4PPcCqEwe/ur000//52L2RynljoqKilUAUgUBJxmG4UoxsJh3bAYbx4i/Y/oLoWL3opg04FBZsyzLD+DStFPXn3nmmf1F6o5SykUzZ848IiLLU8cickXyNcAxT19k+YHRnSCaodtGvmTs0oBDZcWyLC/J76eOST5lmuZzxeyTUspdfr+/CcALqWOS37csy8k6TkEH2yplVR1nj99RDg04VFZE5Gsi8ufJwyMi8oWidkgpVRCGYVxHsg8AROTPSa50rHGi1rG2SpwYXFrsPhSLBhwqY5Zlfci27W+kjkl+0zTN14d7jlJqbKitrX1VRG5PO/VPlmV9yJHGJbF1/Pgg/o4p2/3F7kUxaMChsvGQiFQAAMn/FpE7i90hpVThnH766beT/G8ASL4WPFTkLo1K4pFxmcuhAYfKiGVZQQDzUsci8jnTNGPDPEUpNcaceeaZ/SSvSzs1r6WlZWHROuQggq8BWFuYu4l/PNbl0IBDjciyrAkA7kk79Zhp6tbLSo1H55xzTgvJJ1PHInJf8jViVBMY1WY0EAJYV5D70a4vxH1KiQYcKhNhAB9OPj4Uj8eXD3OtUmqME5EvkDycPPwwyX/Kq0Hytfx7lR8zah5M/H1OI4lW129IjLvkUQ041LDa29s/AeDLqWMRue3cc8/9XRG7pJQqMtM0fwtgVepYRL6SfK3ICSFF38Ld8qfVFrEl7PoNBb49U3eMl+XAADTgUCOIxWLfRnJzNpK/rK2tvbvIXVJKlQAR+Savt2EAACAASURBVHcAv0gelg0MDNw+3PXDMYCoI53Ki330zd/caUYLNMqhAYdSAGBZ1sdwfEGeL4uIXaz+KKVKh2maMZK3pI5FZHFra+vHc2lLWAoBhyw67pCyuuD3HOM04FDDuRWAAADJnwUCga1F7o9SqoQEAoHNAH6aPBTbtr+eSzsXbjW7AB5wrmc5qbL81rFRjnazOblyxT3jbFpFAw41KMuyPgjgqtSxSAHmNJVSo46I/Eva4dVtbW1/klM7lEZnepQPHp8Qb8P1UQ5S/G7fo1RowKGG8g0Aqb0SXjFNc1MxO6OUKk21tbUbAHQnD73xePyrubTjiaPZsU7lzm/50+pjeIxGgj2u3lEwbqZVxkXAUb1/v6/YfRhNduzY8T6S16eORUS3nldKDUpECOCbaaeutywr69fcec+Z3ShY4a3hMJx6ZEbNg0JxNRASoKqjenwUARsXAUdZf8w6u/PFSHXH/qpi92U0MAzjyyJSDgAkX3vjjTfWF7tPSqnS9eabbzaS/HXysJLkl4d9whAoaHSuVzlbmj7KYcfdTx41yuPjYi+ZcRFwCKRaBKFyI/7qtM4XI9M18BjStm3bThGRL6WOReT2JUuWxIvZJ6VUaVuyZEk8fWM3EfmiZVmnZtvOgmfMKEn3l6OOxE4b5dhtdpFwNaF1vORxjPmAY8q+ff4TToUo8Vendr7YNL3jpK+Ne+Xl5TcBSL1Q/GbSpEk/KGZ/lFKjw6RJkx4E8Gby8I8ALMupIaP4CeoiWGT5j00LGWCjQ023kmgluZbEKgCrDNs2DRhOtV/SvCNfMroJjSqAJ58HgoAEp3e8GAW4qnPG2dFC963UvPjii2WHDh36h9SxiNw1ZcqUgWL2SSk1OkyZMmWgpaXlX0XkjuSplS+++OLd2b6GLHjGjG6Z19IKkVoXupkpH2y7HoltHRAfMJqNcjaM+CyiFYKDALsAHBQaXXYcB2fuM4teSbUUjPmAA+BIc2N+AP7pu/d2Q4xw54wpJZC0VBxvv/32dSLy/uThQZJritohpdSoIiLfAXALEiMcf/z222/XIYct7G1K2BBYTvcvGyJym+W3Gs2o2W12mt2tc1paQVYB0k2wS4CDjBtd4sHB2bt0M8tMjPmAg2C1JGpXDUsgVSAbZ+zat1qA1Ycneu/umjz5oOsdLBEbN270AFiZOiZ5VyAQ6C1il5RSo4xpmu9YlnUPgNsAQES+RvK7yZUsGVvwnBl9Zp61VqQ4G5wRfA2UbsRRheSS39r2gL8YfRlLxnzAIchyWE7gAxGe+G6sfuauvc22Ubaqc8bkbnd6VzpOP/30K0l+NHn4zsDAgO6ZopTKxWokNnycBKAqGo1eBmBDto2ccgT1hysZBOQ0pzt4glYQ3YlpEKMLQJfZGhg3HzYLaUwHHNX791dhIMcFFgIfICEjFjsDiWmXMY3kDWmHd59//vnvFq0zSqlRyzTNgy0tLWtEJDVi+iXkEHCYUfPgM/OssAAj505kgGAPiC6BRAF2G7bRZUY1t6KQxnTA4emPV2cwmzI8g0d/IGe37/PvnDP2kkuTm7TNSB17PB4d3VBK5UxEGnBsinbGCy+88BfnnHPOf2XbzkXPmqu3zmsJItuRarIHgi5AokJ0eeLoMqOB7mzvr5w1pgMOAauRd8SBLgCotvb7gJg1q31vF2xj9a7asZNcSvJaEUk93lpTU/PmCE9RSqkhmab5W8uyngNwAQCIyLVI5nVkizGpFy/2D31BYuQCIlEAXfEBdM3T4KIkjemAA+LIVEgXAJzqjVUnmpRqETbOad0btmGEy2zP5qg56pNLP5d6ICIPF7MjSqmxQUTWkUwFHJ9FjgHHhdvNri0XWKtEks8nDxAShY0ueBCdt02Di9FibAcckLPybWH3rKldAEBB9XF51iJVBthoS+xgTeu+1YbtvXs0Bh6tra01tm3/KQCQfLe3t7ep2H1SSo1+hw8ffrKysvIdJAoJfigajc7x+/3tubR14XNmeOs8q+v/s3fv4XFd5b34v989I9txbhNKAqVwmMCvhBIKI2LJt0jaeyRfc7EMxJAUyJjTG73Foe2B0tIoLQfohdqhpT0th1oJTeEYiuRcfJM1a0u+yZJB45ZAubSWe/qjTQKNnITYlmb2e/6YGXms2Lrs2XPV+3me9Nl7z95rrdDM1jtrvWutJefgOq4mdNaqul1pNDY6GiFQ1KZtAkwtsUu5TFlEBECXZ6Wfa3OHd9qmtpZN9zzvA/ljkl/euHHj+Uq2RylVHzZu3HheRL6SP/c87/1FlbfX6XVcR4ONGla3AUc4nQ5gMxwpzGC2Z7+fCWH6VDbwqP5l0/fs2bNYRN6bP7cs65FKtkcpVV8sy5oaoiV5tzGmznvV1UzqNuCAV3z+huTyNwCgYI2KOWACgLHNiKnmwOOKK67oJHklAIjID9ra2gYr3SalVP2wbdsA+Pfc6VUkN1eyPaqy6jjaZNE9HFZBwEEy6qMIG8AZAC4A2GbEdp3qmVZbODuFpG7SppQKnIh8keTv5I4/AOArszwSOGObiFDeLqQtQAwiEQJRAtH8PYU5ehfl6wnGIdm/BZYAoKQo1rh4kkII45kXeNJJ6VDPXNRtwEHK64udEptPGF1xqKheCnfqSNDj9A+Pi1hdbkdlp9UaY16ZzyDP+ULFGqOUqluhUOjznuflA44NxpiI45T+D3Rfh7FFcC8AO01EKbkfV4ILfxrmsOA6gcjFMx5pCwW0ss+HrxIcXp0EBCmKjBGWC0hq1bH4wGWKXLDqNuAotoejMGE0RMTm8h/mZUpyAcA2oxFKOkIwQkq30z+8g+AOz6rM7BaS70duSE1EjsfjOrVMKRW8tra2U8aYEwCWkQzlejk+W6r6+jqMLcADQthFr8I0H0QMYEwgnQBwdGUSELgE3VAGu5t1x9j6zOFYNhJE3sSFhFGhRP2W4jrNuXIuTmIlEKFIl5WZPNV+oPyzW3Jf+jxNFlVKlYyIFK7v84HL3lgEY5vIvjXGCGECWoOpeIQtlK5MSEaPreg/NbT84H2jMVPU7MlaVpcBhwer6PyNwoRReD57S+RCL8nlklgJREgkwuls4NHRV/ok02QyeROA/L/TZCaTebTUdSqlFq7cImCZ3PEtAwMDPxNk+cY2kYkGGFZLoHFpUSF3nF/knRpa3r/z2AoTrXSDyq0uAw6KFB1wkNbUMAcBfwuIsWBa7Rx6SUgkKGI6Dgybjr6RTb7qnEuzyJ8vOH1izZo1Z0pVl1JKOY4zTnJv/rxw/Z9i5YON7JBGDciu3ZSgeKeON/f7Wn21VtVnwFHEEMhUGSI9Kw+PmFVHhhO5/0B8sNyp8sA5t4mATZHetfuOn1q7//i9/uqe0VQwo0uZK6XKgWTh0G1gP6jOL0ZPzQQbL9d1vOng6HCTqdX2z0tdBhzz3lnwcqUQNoU7/ZcQKkwSmn+byCjA7jX7h59bu3/kAduMFj32Nzg4eD2An86dpq+//voniy1TKaVm89JLLz0GIJ07/ZmDBw++qtgyD6wxMcxpUcYqRsaE3uhwU3+i0k0ptboLOGLDo9URKQrOuE7jGADYZrioNuUTTBefn3xu3b7hnev3+k8wTafTGwpOD998880TxbRNKaXmIrfU+fH8uWVZ7cWWmSG2FVtGFdk5sqzPrnQjSqnuAg4LXnUEHIVJp7CiAZabgEy4fh8m6RQcJwNpkVJKzc3UO6fwXeSHsU2EAQ7NVAOB1VPPwyv1F3DQi1a6DQAAFiz45RWfxDqt8DG/T4rIxoJjE0hzlFJqDgp/5IhIvJiyzjWg039+XZUiIhDP1OvU2boLOFA143ksmKEScEITs4uJzdehQ4feQPIGABCR888+++yxQNullFIzePbZZw8BOAcAJN9QVB4HLyxLXleIyGQos6PSzSiFugs4BPQ3hTVwhQmjEmibPCkcrpm7dDo99YuCpLtly5ZMcK1SSqmZ5d45R/LnoVBowwy3z4j11rtRgOS9w7H6G1qpq4AjNjoaJarlP8L0TieZXUtjPlNi58LiIl8Bx7QuTB1OUUqVnYgEMqwiAay3VM0YzmyvdBuCVlcBRzidjla6DQVsIXptM/JckIUKcGbfhuzsFx+mssI1YVQpVQmF7x6SayrZlupGezRWX6uR1lXAgarJ37hIsD0uPodTBgYGfqYgf+PHtm2PBNoupZSaA9u2jwN4MXf66oGBgZ+e6f7LYdUMn5fOZMirp2m/9RVwSJE7xNYC0l/A4XleYddlf0DNUUqpeSEpKNiNO5PJ+JweK6cDalI1q6tpv3UVcEB87nlSQ/wmjAIoXH9D8zeUUhVTmMdB0lcehwDjs99V20hER+soebSuAg5StgIyMPudNSzkO+CYyt8IhUKav6GUqphp63FoHscM0pbXWek2BCVc6QYE6URTkwvAjo2ORhsmM10ASrHxWUX1rW2ed8CRTCbfjgu5JOOtra3/GGyrlFJq7hzHSSWTyf8i+QqSr0gmkzfH4/Gn5lcKXfjZo+oyBDhJSC8AiBTUAgDCKIAoBAAkCvL1QdU7G7J+ZuPUVcCRl2psHAOQiI2ObgtPpLcB3Ebg2kq3q1gCOennOcuy4nLhG3QwuBYppZQ/uaHddwHZdxSAeQYcgToZd+Pz/sN+6FZjZ4+8mAgiEEYJRAGJAQzmb44EsxlpNajLgCMv1dg4DqALQFfT8NcT9KQLQNki08AJ/SaMLiOZLUJEZ6coparBCHIBh+d5y+b7MBlgDofgWmObiOM68yqz5bDj5g7d6Z+Nxkzk3BKvU8AEiumJISKjMRNtTDljvsuoEnUdcBQaab6lG0D3smMjtgV0kbUXNZL+Ag6Sbyo4/U5AzVFKqWJMvYumvaPmRIgUZfb75oSIQuSUsfu7hXQpHJhv8DFdY8oZB9ANoPvoiv4xFvFjNxPKxACMFdOearBgAo68EyuzeR4rjo1GgdrK86D/GSpvniqD1IBDKVVxlmV9x/M8AICIvGW+z2/Y57j71gU64S4CcBsF2ygCty0JAC687FYQAIAMxmjJGABkXuBJJzXHoET4HCi+Aw4RxgD0+n2+Wiy4gCNvaGU2z2PFsdEuIJ0QoOrzPPZtaHLn+0xuc6SrAEBEMo7jfDfodiml1Hy1trZ+xxiTIRkiec3Bgwd/oqOj40fzKUNEBkrcW21nR6PFBgAWzOsMXyU4dGt2sg09pECMIxs/gaRreYBkn8vldai6mhbrx9DKxrGhlU1d564IRwHcD6A6F5MRf4vchMPhwq7KfyHpBdQipZTyjaRH8lT+fNq7aq5l+O31DVZ2R3CbzP4DSJdQukDYQexqWy8zVRZ8wJGXamwcP7aqacexVU1RD7IV4m9GSMn4XGFURKa+xDqcopSqMv+cPyh8V80V5eXJmvVIhFWyKWlxNOC4hKHVzd1Hb22OeRYcEVTFQmLiM39j2pdYAw6lVDWZeif5CTgWTcCFyJlgm1SFKFU93D9XGnDMYGhlk3u0pckWSqOIPFzJtliwXD/P6QwVpVS1Kux19TNTxXGdcZDdgTaqCrFO9gnTgGMOjq5uTh1pbU6kw+EbReRhCCoQUYfH/DylQypKqWpV+E7y08MBAELsCK5FVUqqNLdwnjTgmIehlY1jR1qbEyEvHBXBg1KmBFMBzuzb0Djm8/Gb8geWZf3zTDcqpVQ5TU5OFv4IuumyN85gwz5nDFLfe2hJHazBAWjA4YvrNI4fbmvqOtzaFBXKVil99Okrf2NgYOBGkqHc6Yutra3PBtgmpZQqSkdHx9Mi8jwAkFw8MDDwOj/lENwWbMtUKWjAUaRDrc3dh+ymaCkTTAlx/TyXyWQKuyi/GUxrlFIqUN/OH0x7Z83Z2j4nBeDBwFqkSkIDjoAcbmlyB50mmxJ8gqmQY36esyxLE0aVUtVu6t007Z01L+sOOF3wucFltSOzq5vWOg04AuY6zalBpzkBhG8EAksw1TU4lFL1qujE0TwKE3U6TbbmlzUHNOAoGddpHHOd5gSYTTAtJvDoW9tcdMDheZ4GHEqpahRYwLG2z0mBtP2uzFyd5Myyr3fURcCxoPZSaRr+xkVr7ofTwLFV7yhpdrPrNI4D6LLN6A546W0EEpjHroEC/3khJH+y4PgHfstRSqlSsSzrByLZbV8L31l+re1zUsY2sYkGcQm+vegGVp5b6QYEpW4DjtjoaDQ8mb4PYIyCGIEIxEPhdsZCYMWxEwAEFEAAFyJjFjgmFFfYcDq3yVvR8oEHgK54/3ACkC6Aswce/neIBXKbtgGAiLxQRDlKKVUS095NV132xnlwXGfc2MaeDGEHWTs7gl+KZKRu1hmpu4AjNjoaDU1mHrAmMwmAAPL/d3YEbJCAABSCksbqQyPjIFIUuJ4g9VImPJDKBg++JdubuwF0x/uHExDp4gyBh8BfwmjO1Je3oaFBAw6lVDV6seA4kIADyK1CCiSMbbomw9JNlHRX2VJ5sCm1xq10I4JSVwFHbHg0FkpnDIkIZPb754SIALAB2BaBq8JptAwMj4FwAfaGMuEB12cAkg88OvpGbIh0gXj5FyKgHg4AGnAopapOJpN5IRTKLxcUXMCR57jOGAC7r8PY8KSrZgIPkd1NX+/oqnQzglQ3SaOx0dFYiBlDoPS76pFRgAkAvZ6Vfq7FHelpHRi+zzajvuo+uKbJPbi22QboYFrOxsENTa6fMkWEAK7In996661F9coopVQpTExMFPZwXF2qetYcdNw1ybhtebgRkPshqN4ptCK7w5lQotLNCFrdBByhTGZ7WYKNSyDRCXCHMP1cmzu80zajUT/lHFzT5PatbbaF+cDD/5zy48ePT31xReQ8yaD6fJRSKjAbN248LyJe/vzEiRNLS1mf4zpj7cn2He0mHqPwRhG5H4LdgspPpxXBaYrnNH29o7Mx5dTdj8S6GFKJjY7GkMnYlW5HFhPCdMI2Iy4Q3uo68086PbimyQVg++0xAYB0Oj3VNUlSh1OUUlWL5BkA1wHA+fPnrwLwUjnqzQ237Mj9A2ObKICYiBcDaIMSnSnHLhAiZ4RwCfYuP9HeXdK6KqwuAo5QJlON6+jbQHrUNie2us4yX3Oo/eaGAICIaP6GUqomiMgLJK8DAM/zrgLwzHzLOLDGxDzgvpBI75qD8d1+2pELQMYwbaEts8JEw2FEhV5UBFEAkakt40Wic5pxmCOCAVLGAboUy20ecYrJ06spdRFwCLBprjNRyiwCSI/dP9zttjdvLWfFhQGHTolVSlW5qTyOaT+W5iwjiFgWEgImDnSYcRC9LCL4KOQMTQUic3ZshbEBjK3MPqtQJwFHpXI35opkwu4fOem2N5VtPrX2cCilasjUO8pvwHGR7OzCBMBEX7sZF6CXnvSuMcUHH3O1cshxy1VXraj5pNHYyIhd6TbMBYnttjnRWa76MplMYQ7HizPdq5RSlVT4jirMPwumcERIJGix92DcPNcfNzuTTnJToHWoOan5gCNEVnXvxkVEdhaTCDpP2sOhlKoVU+8okr4CDsuCPetNuZ4PIXr7neRz/Xa/Bh9lVPNDKiISI6s0g2MaAhF6k50AustQneZwKKVqRUlWG50REWF2PaVE0k6OE9IrZG+8jMMuC03NBxy1RoAHUOaAA9rDoZSqYrlZKvnT8gQchYgIhAkKEsZOjlOk1/LY23pIg48gacBRZgSj9sETnW6Hv6my86DrcCilakXRPRwiiATU2R0BmPAsJNy25Dg86bXA3kyIA7n9WZRPGnBUgEXPxrR53oHXYVmS3/JZRGo+V0cpVdfS+QPLskIz3Xg5hMTmvlXnnEVIJgRIWJ5g8Nb+XhGr12vAbg0+5k8DjgqQ/IIxpVX+MVGllPKn8B1VvbPqyE5SOkMZ4NDqZApkdziN3brWxtxowFEBxCV2hQ2eBhxKqZpAsnDvp9oYAiZigOxIh7Hj8KpkSoTdFjGw+ujCWTl0vmq+q51kkf/PlQEAA5L9p2yb99h9pV0/pPBLW/hlVkqpKlR0wCEs8Z4nMyFitGQHIKNHViZPHV7Zv/1IkylHT3ZNqfkejozIeMhHppAAZ4hQbGjlyzdXW3FsxIYnUQuMisAGECNwbdGNLUSv1OtxaA+HUqpWFD2kQiAaTFOKREQJbmNYth1dkRwDpdfy6K44rjNeaj7g8E0kdalgAwCGVja506+tOjIcQwYxgp0U2GBxAYhFxFDaxFENOJRSNUFErs5Piw2FQrUxpDIXRBTgNiG2HV3eP06il8Lexec5UI/bz89m4QYc83R0dXMKQApAt21GI5nQZCeEOxB0z0dACue1i4gOqSilqlndb8XAqf1dJHF+sWCo+WAvgd5FE6HdCyX4WLABB8m2FcdOiIikSEmJIGUBqWOrmgdmeza3bXy3bUZ7M0ynSMx77FAEJR3fE5EXK7qQjlJKzVGxSaMH1piYBNuk0iM7IeicWORhqOmgawG9DZOh3Y2p+p3xUvsBRzicQibj+3GSMQCxfPbsyqMjoEiuN4NjQnHPXtFwMtXY+LII1HUax1sGR3ZAsN1HxSXN4RARHVJRStWKqXeU53nzDjgygohVGztcXBJJGwJ7ssHbMdx0MEWhK2nr4eZUfc14qfmAI9XYOH7LiRMBl5oNQgDA8ogrf5zG6sHhMZJjAFwKUpMN4ZNDKxvHhEixCkPrSCTywgsvTH1vdUhFKVXNCt9RdTmkMnfZvz8Me9tGbukfp6AXFHfZ1zsernTLilXz02LLhWQUgA2gC0Bvw2T6VMvgiFgZmX/vBgBASjqFa9myZS/lj0kuLWVdSinll4gQwJLcsec4zrkKN6l6EBEQCYDdlW5KEDTgKBb9rRpKMBpoOy5tqovj8OHD2suhlKo6rutOJd6TfN5PGURpc+JUMDTgqCDbjEZLWX5h8pXneZrHoZSqOpZlFf4Y8jUllhZKva6RCkDN53AAgAAnCby90u2Yr1Bm8lT7wWHQQ0ooY4SVEs8bs8ixyYaGk7nZMMWYGgvNZYH/R5HlKaVU0KZ+DNXMsuZlJoJZZ0/WgroIOCAyjoD2Ja4IIkYwBkinlfv3aJicxNr9wxAgBeKhvrXN3T5Kngo4RER7OJRSVWfa1gsLPGG0vumQSpUjEKNI1Nez5A/yx+l0+icDa5RSSgUkk8m8Jn9c+M6aFxE7qPao0tGAowaI+FuzQ0S+W3B6U0DNUUqpwIjImwqOvzvTvQsVKXWxEqkGHLWA/jKwSX634PhNM92rlFIVMvVjqPCdpS4QKXZX9OpQLwGHW+kGVKNpX17t4VBKVZ3CH0P+Aw5W5Z5W6mL1EnCoS8hkMlNf3sJuS6WUqiJTP4bS6bSvgEOAARE5HVyTVClowFHH2tvb/38ROQ8AJF/z1FNPLap0m5RSKm///v1XArg+d/piR0fH037KWd/nbFvfF49S0AjgIQQUfAjkNCAPVTqYsYCxStYfFA04aoPv7kKS384f/+hHP3prMM1RSqniNTQ0FL6T/rmYsvo6Dv03ofWjtX3OtrUH49HMJG4EcL+InPRdqDDVNti+zT7UHvXSbBSRwIKZ+fA8b6zcdZZCfazDYVljkCrcQS0gxSzbKyLfze2IC8/zbgLwjcAappRSRbAs602Se3cXO0Mlw8n3AnjgwBrzBw2T+IzjOmMAdgDYYWwTTVvoBGET2DT3UmUqWdM56qQAbAOw7cgqE/PgJUB0gizpvlj1pC56OL5xyy3dX1+2jGkJNQqxGZAHBTIgwJlKt63SCpOwNI9DKVVNRCTAGSq8g+BSAJ+eCMs398cHVuU/cVxnbE3S2bGm3+m0PFwHyFYR7PZb0+qjTqrlaPu2liPt0XCaNwJyPwD/PSkLRH30cOSkmhtTAFIAevPXYqOjkXA6HbM82AJGAcRqcRl0v0h+t+AXhM5UUUpVkwBmqAB7Ngxdw/TZ1QVl3QTLO9zXntwZzvA3HdeZWscid9wNoNvYJuLB6yTYiXn1fFywcuhCT8qxFSaaodcJMhHk35kwwnUxLbauAo5LSTU2jiM7bdYtvL7s2IgdhhUVkRiz61y0VaB5Jed53nd5Ydl37eFQSlUNEXlT/v3keZ7vgCOcPnunEBfvb0EQ4AfTIdl0IG4+uiZpf4HgRWPv04MPwOsEaAukkz6m2k4PPoRep0jxwUdjyqmLhb/qPuC4nBMrm9zp15qODMfCtKKAxASwke0NqYr53bYZjfjZzG3RokXfmpyczJ9q0qhSqpq8OX8wOTnpO2nUg9wxPd6YQv4Eic/3x82H+jH4C+3J1kvmsRUGHwBgWkwnhL7/0L8s+BDpJJDAAuphn47GGHEcp4Z3PiutFcdGo5RMLJSRGABbBDGrIAgpjJfndyxTx3N5zvLo7Nvw8iBpLowxzwJ4JQCEQqHXtLa26q6xSqmKGhgYeJ3nef+WO/1Px3F87fe0665doWvOvPK/CF4DzPw+FYhHj58PCT5aOMxSTsdWmCjF64Tgop6Pmdq97OvtNf832hgjC7aHY66GVjaOITsHeiovZMWx0WjDZCYmIjEAMQhiJKo2Uzk3U+WVAJDJZG6CblOvlKqw3Kw5AMXNULnm+RtaCblmLvcStEj8UobeXQdt87EO1/lrv/X6dVHPR8xEGfY6ac3Q8yH1k4yqAYcPlwpCbDMaSSMdIxAjJEZBDGRVdJ3lkrFWAVMzVdyKNkgpteAV5m8UkzAq4l1+OOUyCL4Clvyvfqf/F5HGh9oPtQ/7rb8YK1MXgo/RmIlONnh2duiFUwmsAtRF/gagAUdgcvkVLqb9MbfNiC2CGCix7HoaFQlCTiA7dgiSTQD+pgJtUEqpKbl3Ud4J3+VkZ5j4ffYdCGEo6SS7w+nwR1oPtT7rt6xiNWaDj24A3aMxE5m0vE5SOgF/u4VXIw04Ssx1mlwUBCG2GY0gnY5ZltgQxISIEbMvHONZnu//6EKhkMlkMgAAEYn7LUcppYIiIhvzPRzhcNj4KWP/WvNmIW5EMes+ZrtHtqZDk+90FLCv+QAAIABJREFU2/o//swNP/rLLV/ZkimixKLlZqV05/6pG3Wx8FctcZ3GcXdNk5tsX97Vv2Z5Z7JjeTQdbrgOoAPIgwAuvWCZ53+10dbW1m+JyH8BAMk39Pf3V22+iVKq/vX397+R5A0AICLPtLS0+B1SuT2oNhG8VsjPXv/sK7852JJsD6pcdYH2cFSBSw3H2HtHow2hSRseYiBiAaQoHwSwBQBCoVAcwM7ii1RKqfkjWfgH/aDfcgRyB+aZvzEHb/YsHHTb+h+nhH+zbbDte0FXsFBpwFGl3A2NYwiwO42kQS7gEJF2aMChlKoQkvGCY1/DKXs2DF0j3kurSzdflHcIMusHW5J/vvSlzB8s+/qaBb9VRrF0SGWBEJHCL7V2FyqlKmld/sDzPF8Bh+W9dDvBUHBNugSiQYgPv3hl6PuDLf2/LNhV2vrqnAYcC0Q8Hv8OgP/Mnb7aGPPmme5XSqlSMMa8FUAEyOZvtLe3/4vPogLL35gNgVcK+VeHbv2Jfzx0q7HLVW+90YBjARGRZMGxzlZRSlVCYQ/rPj8F7LprV0iA2wJqz9yRbxGKGWxJfvnw6sOvKXv9Na5ucjhuOXGil568HuS4CMZIjlFkHLBSADDS/I6BSrex0nJjpffkTtsB/GUFm6OUWoBEJF6w4Jev4ZSrX7i+hcCcVhctkfd4PH/7odX9n3jFc6/+s5u/dfNEBdtSM+om4BCyl8wmQpIAJT8x2wMFaD6eW1dGJEVwHMAYhWNCGbc8LwUAZ69oOJnbXbYueZ5nLGuqU8sWEZIsZga7UkrN11QPRygUetJXCVKS2SnzQvBKEJ/6r+ue/vmjK5O/uupYfH9FG1QD6ibg8Cyr1/Iys868IFiwnkV2AzVhdtPiK86msfLoCCAyBuEYAJC5qaoZpEKQ8cmGhtO5pc1rTnt7+78YY/4TwKtJvmJwcDAGYLTS7VJKLQyu6zaJyJW501OtrX5X9uTmwBpVLOKNnoV9h1cnHwtleF9urxR1CXUTcKQaG8dvGT5xkix+61+CURBRAKDABrK9JgIinE6jZXAEEIwLkaJ3ISgRIgXIeCjTcNLPVvKF1hwYbps68RAjc8vbihezhBGgYeu+DfMPfETkAMkPAIDneXFowKGUKpPC3LFpM+fm7Mn2Q28C08WtLload2YsWXtkVf8f3fDM+U/99Pc3nq90g6pN3QQcACBkNyHby1IZESFg54YibQCwvOwHwjRsMwJAxgCOQQDkgpLsPQAgUcpUUAMBYgQil9yi+KIhomyFIulOZDf9mV+zs2OmH8idtgP4zHzLUEopn6aGU/zmbzCcviO45gSLwBKADzx9/ZIPHL3e/MaqY84TlW5TNamrgMMLW71WOlOegGNOGAUQJQDkekoue+e8i/Zs+Ag4puVxtOzatSu0ZUtl9w1QStW/Xbt2hUSkNZ8wGgqFfOU8kOWbDusXiRsh8vjRlcn9FP6yDrNk1dW02FRj45gApyvdjnIo3L54Ptrb208DOJU7ver6669fE1yrlFLq0q6//voNJBfnTr/nJ3/D2GYJMPOPtyqzTiinjq3o/8SJW04srXRjKq2uAg4AgKC30k0ol7V7jvvdlnl3/kBEPjDTjUopFZDCd83uy941g3NLsCKgtpQZf3cyfOY7Q8sPvrfSLamkugs4Mgh1V7oN5ULQ9vOcZVmPTJVBbt6/f/+VM92vlFLF6OvruxbA1A8kEfnffsqhsCWwRpUb8Vohv3Rsef/h483Joic31KK6CzhSzY2pS27vXodI8TWs0tbWNioi38qdLlm0aNGCjrqVUqUVDoffC6Ahd5rKbbUwb0Jpm/2u6kZgtVBSQ8v7//bk2/bfUOn2lFPdBRwAFtCwCqPr945G/TxpWVZ3/liHVZRSpVT4jiH5yEz3Xo6xTRiC1cG1quK2nl0S/v5QU/9vnbjlRMPst9e++gw4rIUScADMTo+dt1zAIQBAsrW/v/+ngmyXUkoBgDEmSnIVAIiIJyJf9FPOxCL8fyCWBNEmgfxbEOUUi8DVJP4kY5359nBTf9VO9w1KXQYcX1+2bMEEHCKe7ee51tbWZ0WkL39O8r8H1iillMoRkQ8WnO5zHOeHfsrJhLz/Fkh7ID/uSLa/HpAPQuBzpdOAEW8E8Njwsv4Dx5sPvqnSzSmVugw4AEDEXxZ0rSG5yTajEZ/PFnZt3htQk5RSqtDUjxm/wykAQLFeF0hrhN8DgPZk+85Fk4veKCJ/Gki5QSDWUHBfpZtRKnUbcJBcML0cV5ydsP08d/bs2a8CeBEASL5hYGBgVZDtUkotbAMDA60kXwMAIvLjs2fP+n4ve0AgAQeJmLHNqwHg1iO3vtDutv92KBN6kwj2BFF+AB6vdANKpW4DjskGa8EEHAL6yuPYuHHjeQBfzZ97nqfJo0qpwBS+U0h+KffO8YWUwLaH9ShPGNtM9Qy3DbZ9Lz4Qv83zZJ0AvmbQBELkx80jHfsqVn+J1dXS5oVSjY3jTcMnHhZI9KIPcluSkEwBMrXBmhTuYVJ4u1z+GjhtxbuL90GJgbjWV+PniQJf02OBbBeniCRyp1uMMb/mOE46mJYppRaqPXv2LBaR9+aXMi9mOCXL+iGC2rGNuCVDb9DYZqPjOv+ev9w+2H4AwJvdtuT9EOkCeU0wFc61XTxQ1vrKrG4DDgAYaV6WKFddthmNZEKTb6dYUUCi8ORagLGyVE5E1u8dsfdtaHLn+6ht28YY8+8AXgvgOpKbAXwl6CYqpRaWpUuXvjO/Fb2I/MBxnEPFlEeRQBM8Cf6sRy91sO3g3R0DHX2Fn9kD8e3Hmw8+cnYJPwngF4OsdxaPlbGusqvrgCNIK46NRhsmJ1/vWVaUIlEKIgLELE8iIGMe0rA84kIEHljv35xQpBPI7kg7XyLyCMmP5Y4/AA04lFJFmra+j6+VRaeV+GzQ71WCP0Fyf7/d/7lrX7j2I8u+vuyl/GfLhzt+BOCXBlv6/1qAz4N8R6CVTycQS6y63l12QQccTcOjsXBargXS8IQRWogBgOVJVIRRALByGwUxnYaQoMjUtvEEAJY3sLgcgWwCsM3Ps6FQqNvzvI/lTm8/cuTIDatXr34muNYppRaSI0eO3DAxMbE+f97Q0PBwsWVmQg3fCGVKMNpLkOCvPX/VmY3GNr/vuM6jhR+3Hmr/BoBb3Jb+D1H4RyCuDr4RgFCOLzvhb8pwraj7gKNp+OsJeJKd8knELMFUohAzGWTTkJjNnp0aHuSFOCKgIcNSIxjd+ORwbM9tzan5PtvW1va9ZDI5TLIZACYmJu4H8DtBt1EptTBMTEx8OH8sIkdbWlr+tdgyb3+y5bm965N7AG4stqxLIfkGQP4u2db/MQv4PXugvafwc/tQ+18dWXXkHzKhcw8BDHw7CMKq6+EUoI5nqVxgpUjYJGwCvtarqBUCJIp4/KGC4181xlxVZHOUUgtQbqO2Xy249LmgyhbB/wmqrMsh+RaAXzOtSffw6uTNhZ+tPrr6mdZD7XdLRtoBKTqIuqheYd1Oh82r+4BjZAFt5gb428wNABzH+RKAsdzp1fA5PKOUWthCodB9AK4CABE5nXu3BMNaWrblDki0pcP45kBL/18dXXn0FYWftR1tT7Ycbn8jIB8Poi4BTjedcL4ZRFnVrO4DjpwFsSZHfljF17OkkPxkwaUPG2MC2bdAKbUwGGOWkLw/f07yEyQDG5jeuHfF8wA+EVR5c0L+8mT47PcGW/oT0z9qOdz+CcB7owAHi6pDZEGsjL0gAg4ukIADKG5Y5ZlnnvlbEflB7vQ6kh8KplVKqQXi13Bh6Po/nn322Z1BV7Bhn/NxiDwVdLkzIl8h5M7BW5PuwMqBxsKPWg53/OviCb6/mOJDdby6aKEFEXAML184m7kRaPP77JYtWzIk/zh/7nneb504sTC2TVZKFSf3rvhI/lxEPr1ly5ZMKeoKeXxfKcqdFdHGcOYbgy3JJwZXJaeGsM83eEUMQcvzTSMdxfWQ1IgFEXAAABbIZm4AYuv3jkaLeP6vgewOiiRf88ILL3xwlvuVUgrPP//8LwB4Ze70hyT/plR1re1zUhR0lar8ObiNFnoHV/ePH1qdHCH5kdkfuRzuD65Z1W3BBBxiLZzN3CxvIuH3WcdxzonIjoJLHxUJbg8DpVT92bVrV4jk7xVc+ozjOOdKWee6A86DALpLWcdsSF4LYlkxZYi3MIZTgAUUcNTlZm6CAeDCP5L/J7domV8kPwvghdxp1HXdnyuqnUqpunb99de/H8BP5k5fnJiY+PNy1Ltuv/1BiPxVOeoqCYEgdOVC6X2v/4W/8lKNjePNx0+cBPD2SrelkEBOQ+iSMiZECrAubCiXARiS8b6181/MqxiO47yYTCb/vGC5848D+LtytkEpVRtEhK7rfqzgfPu6det+XI66CQoO4Ff2rzX/BeB3y1FnkAQ4uuL4iucr3Y5yWTABBwB4wu4QZHuFm3FaRFwSbibU4LpO41iF23NJJP8EwP0AriD5pmQy+c54PP61SrdLKVVdjDF3kfzp3OnZTCbzGb9l9dgmsmgpOm/b43TP57l1B5zf29dhfkgLlX6/zwspdb+6aKEFM6QCAGmpwLCKyEkReUjIzcLwjcn2pqjpaE4k25u7qzXYAADHccaRTSAFAJDUpc6VUpfy+wXHf7lmzRrfCy2Gl2KbEDuf3GgS8312/UFnh2SwRiA102PgpRsWTP4GsMACjtTKxjEITpe0klyAAXAzEL7OjTfH3Pbmba6zrLeaA4xLCYVCfywiE7nTZclkcl1FG6SUqirGmNtJ3gwAIjKRyWQ+5besnk4TAXFf7tRf0NHvHJRJ3iLA9/22o2xETq38Rtu3K92MclpQAQcAgMEuAibZhM0HhdxMCV834DTHBp2pAGN81gKqWGtr638AKNzl8Y9FZOH9N6OUehkRsUTkTwsufaGjo+NHfssLT2LHtP2u/AUdrvP9RZNoRIVnsMxKuGCSRfMWVA4HAHhWqNvyMvfNfudlDYjAhQX3cEuTG1S7qhXJ3xeRnyO5lOTbXNf9dVy80ZtSagFyXffDJG/Knb7ged6Dfsvau95E08S9l9ide+eT6w1u2ze/nA7HdV4EsHV/3P2aRXkErMKNOy3rHyrdhHJbcL9W57OZmwBnBNgN4H7PksbDLU083NJkH25r6loIwQYAOI7zn5ZldRVc+kNjzKsr1R6lVOUdPHjwVQD+IH9O8oGOjo6n/ZaXDuOyS6CT2Pnk+vn3dADAuqT9OJF5M1BlyZkip1Ycdw5XuhnltuB6OAAAgl4Q977ssshJECkBXFgN7tDK2sq5KBUR2Q7ggwDeDOBqEfkzAPdUtlVKqUoJhUKfA3AFAIjId2zb9t3r+fjtxgZgz3RPLuiYd08HAHT0dzwNYFOfk9wC8i8IXO+roQES8JFKt6ESFlwPBwDAyuZxCHBSBA95ws1nrwhfN7S6OTa0qjkxtLq5W4ONCxzHSVuW9d/z5yTv7u/vj1eyTUqpyjDG2ADelT+3LGsrSc9veSKX790oRGLnXp89HQCwxsR3LZkI3ySCR/2WERQL4Ydnv6v+0BgjjuMsuKWrY6OjkVRjbSd1llsymXyU5D0AICL/SvImx3HSlW6XUqo8nnrqqUVPP/30t0m+AQBE5JF4PP6y3uK5euw2s428sHZGfiP7wg3tL3G8dYOPno5C/fH+tRB+gcBrZ6hn3sczf567IDiy8nj7rf5bX5uMMQt3xsFCCzbW7x2N3r576L7bHx+x/ZZB8jeRW/Kc5BtE5H8E1T6lVPV75plnficfbCCbKPphv2X1dJqIWHzAx6NF9XQAQHuy/cDiiUVvAfDJYsrxwxL5dLnrrBYLNuBYCDY+ObLptseGt9/22PFT4fTkKZI7IBk/X3AA2QRSXLzIz+8bY157ufuVUvVjYGDgRhEpXADwY8VMg7XS6Jo2DXY+du5dU1zQceuRW1+Im/jvCiUqkK8UU9aciQwtH+54oix1VSENOOrI+r2j0fVPHL93w5PHe257fPg5ivSS2EYymr+HoF1ML4dt258F8M8AQHKxiPz1LI8opeqA53lfILk4d/pPjuP8hd+yntxoYiSLWZ4AtIoPOgCgPdl+ut20bxFihQBHii1vJpKRXyll+dVOA44at+bJ4dj6vSMPbHhyeNTyJk9ZZDfBzpnmndPLzClJ65LPkt60BNKNyWTyTr/lKaWqXzKZfBcAJ38uIluLKS9jMZA9T4IKOgAgbuLH4278VopsFOBkEGUWEsGnV51YMxp0ubVkwSaN1irbjEYWn0+3UaRTBJ1WQZfk7ElMhavqcOvjdzZ3+22HMaYbmJpa/H8XL15806pVq876LU8pVZ2MMUsAnAKQX3/nC47j/Lzf8h6/w3QK2JM/L3wvzTFp9GXHloeta/uKSySdzrSYd9OSByh461zbcvnP5X+tHGr/UJDtqzULOmm0HGwzGrXNCd8Z3HlrDgzH1u0bvm/dvmGz+PzkcxTpBZBgEavn0fMe6OwZ9f18JpOZSiAF8Lpz58593G9ZSqmq9oe4EGyMp9Pp3/RbUE+niWQYTO9GISF2HgiopyPPOeR81R6I/6xkZKNAjO+CBA8v9GAjTwOOgLUMjmxqHRjZbpvhU0D6FCDdtpl/zkRH38imtfuHt6/dd/wUBaMAdmCWxXHmhYx61sQ2v4/nksWmEshI/rbruk2BtE0pVRUGBgZWiUjhTJSPFrMbrOVhG4Fo8S17uVIEHQBgH2nfaw+2xxsm5bXiyW8DcnRuDZLHLc9bu2ooHnibapUOqRRphRmNLrIybSLSaQGd+euF3WkQSbnx5saZyrHNaDQ0ObmJIjbJzullBDMvfFrXpWDcEq+xd/PKsZnaNpNkMnmS5Ntyp/+eTqffWswLSSlVHY4ePfqKc+fOfYvkq3KXTjiO4/tHRc9GE7PCHAVmeS+97PN5Hwc+vDKdsc2ShsnMSg/WSot4LTzcIMBVIcG3hPJPHhf1txxp+bdStqHWGGNkYS5tXqRVR4ZjoQzvFRHbQjoGACRwiY2HAAAEY3b/cMJtvzhnwukb2USITZFOpiejIECUMfYjIh6tLgAJv0WEQqH3ep73DQBLALw2FAr9PYDbgmmgUqpSzp8//9V8sCEiL4nIe4spj6Hgh1IuY+eBNQalDDoc1zkHwOT+UXOkPRxzsOLYaDSUybRRpBMCm7Mkal7qWCBjYIODzOQmC7RB6Qwomp/xeLZfEgBgeZbTu9n/ZnTJZPKDJL9QcOm3HMf5jN/ylFKVZYz5KIBP5c9F5N3xeNz37qY9d5htVkHuRol7OPJK3tOh5k6TRmew6sjIppWHR7avOjx8KpRJn6JIN4AZp5vOhGCUkj5lkTvAC0Mv1UDofzEwAIjH438rIrsKLn1a8zmUqk25vI3/mT8XkZ3FBBsAAAu+88WKsPNAu/G9BIAKngYcOU1HhmPLjw7ft/LoSM+qIyMCILtoFhitbMvKgfYdPcOJYkpYsmRJAsD3c6dhEflaX1/ftcW2TClVPkePHn1FJpP5Gsn834Zvv+pVr/rlogsmOgVS9twuEonLBR3GNtF+u18DkjLSgCMnRO6wwB1AdfU+lIvF4qbJrlq16qxlWXcCOJe7lM/nUErViOl5G57n3XHzzTdPFFvu5l4nJWnY1RR0ZChdJBMadJSPBhx5RFelm1BZjHrwP00WANra2r4NYGq+eW4VUt+bOymlyieXt+EUXPpAe3v7vwRV/uY9TkosxCAS+CqesyGROBi/EHT02cYmswsXatBRPhpw5AytbHIF8nCl21FJJB7o7DkWLaYMx3G6ReSRC2XyjzSfQ6nqZoxZVpi3AeALRedtXMLmXmfMC8GuRNCBgqCDlIvy1kgmjJ0cNbbx3curZqcBRyE2dAmwwNeQYNGR/rlz535RRL6VO9V8DqWqWF9f37Ui0luYt3HDDTeUbJOxzb3OeCZcwaDDMYa85CKKMUCMBh2lowFHgaGVjWMQ7Kh0OyqLdmfP8aLyWDZu3HheRO4UkZdylzSfQ6kqFQ6Hv0zyp4Bg8zZmUsmg4zLBRp4GHSWkAcc055aGdwhwutLtqCzZXkwCKQC0t7f/i2VZifx5Lp/jf87wiFKqzJLJ5B8DWF9wKdC8jZlMBR2oQE/HzGIUDTpKQQOOaVKNjeMgKzFnvIowCpzvKrYU27a/IiJTQzQkP5ZMJj9YbLlKqeIlk8lfIfnb+XMR+Xwp8jZmsrnXGU+HaQtkoJz1zoEGHSWgAcclHFu1rFeAavsClJegs9heDgC45pprfgnA4YJLn3dd945iy1VK+WeMeTfJvyi4dPiaa6751Uq0ZXOvM37nE3EbgmpL2tegI2AacFwGIQuul0NEdgNyP8DG3neuiPZubhwvtsxly5ZNAtggIt8BAJKW53lfTSaTq4tusFJq3lzXdQB8CZjauOmbADbkvqsVc8eTTgKowqDD06AjKLqXygxWHh7utsDsXO3A9zuRoPcNmPdeKgKcJNBreZZbzF4qczE4OPiT6XT6BMnX5C69ICIr4/H4U6WsVyl1gTEmJiKHSV4JACLyb4sXL25avXr1M8WW/Q+dJgEg8q5ep6jE+yduM92U7BoZQKneiTKv5wRIiUXHcZ2if4QtVLqXyizOXtmwTaR+pskK5DQED4PYbHmLrnt80/LYY5uWd5U62ACA1tbW/2hoaHAA5L+wVwPoHxgYeF2p61ZKAQMDA68TkYP5YAPAeENDgxNUsEFyJ8EHejqL6w24/UknIVU2vMJcT8exFSZa6bbUMg04ZpBqbBwHanearABnRGS3kPenww03PnHniujjm5YnHr9jeW8QwyXz1dLS8l2Sa5Fb/pzkqzKZjNE1OpQqrdweKYbkT+QunSO5tqWl5V+LLbun08SI3E6w2c0ti35n3r63OoOOiQYZPbLKxCrdllqlQypzsOrwyJgleH3+vKqHVEROCumGPPY+cUfpey78SCaT6wDsyS80JCLD586da924ceP5CjdNqbpz4sSJpS+88MJhAI0AICIZALfF4/H9xZbd02liHmmIC7to54YsnM29jlts+U9sMNss4DLb2vs79jOkUngswHg4Q2f1USc1j3+VBU+HVOZIrCqeJityWoCHRbD1paUN1+25fXls723N26o12ACA3IvuF/LnJJuvuOKKXhH971GpIO3atSv0/PPPP45csAEAJO8NKNiIeGRPrldjmuJXLAaA2/c6O0SwNYiygkIgkg6J0Z6O+dMX/BwcW7WsF9U0TVYwIML7MyE07r1teXTfxubEvtuau12n/MMkfsXj8b8F8GDBpfWu61ZVF6pSte7666//Esl4waWPO47zaLHl9nSaSIY0IKKXuSXa02m6iq0HAG7b53RXY9CRsTTomC8NOObIsyo3TVZETgN4SCib969v5r6Nzfb+jU07+tY213SXnuM4XQC+UHDpfclk8pMVao5SdcUY8ycA7iq49AXHcT4RRNmZEHtIzPLHlg/0dAaTZFnNQYcmks6dBhxzdHR1c8qDPFSu+kRktye83/Iabuxbvzy6f33ztgPrlveWq/5ysW37FwDsy5+T/J1kMvlHFWySUjUvF2z8Vv5cRB7LfdeK9tV3ujuBGfcjmUIJZmgFyAYdQHUFHRDsXjnkjFW6GbVCA455eCnd0FW2abKW5R5c37Rj34bGsbLUVyEk5ezZs50iMlxw7X8YY7p37doVqmTblKo1ImIZY3ahINhAdhXRd5OF6Y/+7HqXuxNEYh6P2D13mMB6hzdUUdAhImcyP67i/L4qpLNU5mn14ZFtlhdE1vTMs1QEGE83NNxYzryMzp5jUYrVJkQUYATiTXWZWoIxT5CiZaWEDSeDnlZrjImIyH6SzQWXn1y8ePFdq1atOhtkXUrVI2PMEgA9KNiMTUSOZzKZdWvWrCn6h9JX3m22AdzuY3bduFBu3Nwb3KJZe9ebBAUX9mkq4yyVC8fyYMvh9q75t35hMsaIBhw+3Do4MkZkp8mWeFrswwfWNScCafRl3PHY0CaKZVPEBhCb+9Qw6fZC8mDv5pVjQbXFGLNERHbn1uoAkJ0ym8lk1gbxwlSqXg0NDV1z9uzZfgDLCi4fPHv27O1BTDff9U6ToJUdHvE5nb+3c7e9udh2FNq/1nQKpBvktWUPOEROtx5ujxbR/AVHp8X6Nb8uxWLc27F3xA660PU9x6J37B7efmfv8eco7KXINmC2BLCLEUyE09apd+0a2nnXruFAMrUdxzn3wx/+cCOAL0/VQzaHw+EhY8yrg6hDqXrT39//Uy+99NIwLg42vmLb9rpAgo27LgQbReh8/A7TWWxbCq074PRaQhsiZf8xQliJctdZDzTg8OFwS5MrJZ4mK8AZBLyR0W27j997+2NDpiFknSJk26Xnz88PyYRHMXftGk4E0ERs2bIl4zjO3QAKd7J8M4Dh/v7+NwZRh1L14tChQ2+yLOsEyZvy10TkrxzH2ULSK7b8XXeZRFBramTIncUuez7d2j4nVfagQzDQcrj4Rc0WIg04fEo3hBOBFyoYEPJ+AI0H1zZHDqxrThzcUNwCXp09o5HbHx954LbHjp+yiG6CdiBtLZBdZVB23rVraGcQW9oDgOM4vy4iHym49DqSx13XbQqifKVqXTKZvGVycnIYQL73T0TkI/F4/FeCKH/XXSYG4fbZ75wbAhHLQ1dQ5eWt7XNSIgy83MtpSDNRrrrqjeZwFOHWgeEdFnhf/ny+ORwQOU3QBaQ3E1rkBpkgaveMRpYuSt9nZS70ZEzfLbbY48t8nppsWOQElVSaTCY/AGBnfhl0AGdJbrJtuy+I8pWqRclksp3kEwCWANnlykm+13GcrwZRfi7YMBfeHRc+K3ZLBs8TZ/MTwfUQGNtEJhpwaqa2Fh4Xk8MBTx5s00RRXzSHo0hhr6EL85wmmxuKud+z0JjsWB7t72hO9Hcs7w0y2Nj45PB9V4YnT1GkK4hhk3kcHrTmAAAgAElEQVSKLTp/fjSovI54PP4IgDsB5GeqXCEie4wx7wmifKVqTTKZvAfAfuSCDWQ3Q1wXZLAhuBBsBI1WsEMr5xejLO85gZzxwlbNbuZZDTTgKILrNI6LNUsXoeC0QB4WcrMwfJ1pb7KT7U07XCf4VULXP3H83g1PHj8FYEcFAo0LyChETIBBx5Mk23Bha/swgC8ZY341iPKVqhXGmI+SfJRkCMiuBSEit8bj8f4gyi91sAEABKKhTDBDNXvXGxvAfbPdFwRLsM1xg5vauxDpkEoAWtyRMRKvL5gydZJgNyBuKQKL6TbsOd4pwHZLGM1fu3S3Z1mGVC5aSwSk85UtwfxvkEwmbyJpAPxkweVuAB9yHOdcEHUoVY2OHj16xblz57pJbim4/J/hcLitpaXlu0HUMT3YKPb7P4fj7jsft4taxGvv2qRLsq3k02IFA22H4nYxbV3odEglIBJCQoDdnshWSvi6Aac55jql6cUotH7vaHT9nmEDsIdgtJR1+UEgQi/Qno7vAGgG8P2CywkRSQ0ODr4liDqUqjaDg4NvOXfu3D8VBhsi8h3P85YFGWx4LG3PxiUkdt9uihqiCAm3lWOGilXGpNR6pj0cNcg2o5HFZycfILFtfr9CytvDkT8WyLgl0vjlu4NZJGxoaOial1566Ysk7yy4fJbkfbZtfz6IOpSqBslk8ldIfgYX8jUA4MmJiYn3rFu37sdB1fOl97hjREEvLcrSw5GVka137nG6/bQbAA6sMTGBuCCvnXu759HD4eHhtkPxhN/2qSzt4ahBa/cf71xybmKURM2s4U8g4pE9QU2ZXbFixfPxeHwTgG0AJnOXrxCRvzHG9Ozfv//KIOpRqlL2799/pTGmh+TncGEmygTJ33Ac5/Yggw0AsMSq2PuEFnY+ttEk/D6/ts9JEaVZi0MgZ7yQ7pcSFA04aoRtRiNr9x3vobAHYLTCzZk3ArHFZ8+boIIOAHAc5yGSq0Xk3woudy5atOibg4ODbwuqHqXKaXBw8G2LFi36JoDClTnHwuFwk23bf16KOt+zq7VXRAJdaHA+qjboEOzQRNHgaMBRAzr2jtiLzk+eIhjo0sDlRgYfdNi2PbJ06dKfFZHHCi5H0+n0iOu6vx5UPUqVg+u696fT6REA0YLLvRMTE29tbW39x1LWvWQC20TkdCnrmAkt7HyyyKBj0SSjAjkZRHsEctoZ1DU3gqQBR5Vbu3/kAcsSk13Ns/aVIujID7GIyH0iMpGth4tE5LPGmCeGhoauCaoupUphaGjoGmPMEyLyZyQXAYCInAfw647jbA56COVSNvc64yJl2yfqkoTFBR2O64wvmqQdSNDhVW6YqV5pwFGlbDMaWbv/eA8gXZVuS9BIxK44ez6Q/RkKxePxz5JcPm2I5bazZ89+c3Bw8B1B16dUEAYHB99x9uzZbwK4reDyWDgcbnYc5y8u91wp3P1VxwXkwXLWOZ1HbH9yo/E9sy2IoEMEA84hp9fv8+rSNOCoQrYZjTRMThrU+BDKLDrf++hQ4EGH4zipSwyxvC6dTg8nk8k/M8ZcFXSdSvlhjLnKGLMjnU4PA3hdwUdlGUK5nPfscrqCGpbwg0BEABNI0CE+/z0s3S+lFDTgqDIXgo35bRdfi0gkShF05IdYSP5GwRBLiOT9IvKdZDK5ZbYylCol13XvBvBdAPcVrBp6HsCvlXIIpafTROayrLhV4aGVoIKOhoyfoEMeclxnzG+96vI04KgiCynYyCORuKcEQQcA2Lb95ySXAzh1oT6+huT/SSaT/YcOHXpDKepV6nIOHTr0hmQyOSAif4+LV8zND6F8rlR1//3dg50vXcFTLy0JzdpzuuUrTkqkskMrU0HHmvIFHQI5A1hdfutTM9OAo4qEJie3oxqCDcEAwK1C78aedy6niNxf4hoT9zx6rKsUBTuOk7r66qvfCuBPAaTz10nGJycnv2WM+cM9e/YsLkXdSuUZY5Ykk8lPTk5Ofptka8FHkyLyx1dfffXNpRpC2dlpIo/e7fYA0kMwAsichmrf89XKDq0A2aAD4WCCDswh6CB0v5RS0pVGq0RH3/EugA8EtXqfn5VGRfCwBa+rd/PLVwTd/NWhHSTvu3zZMx3PdVU/2fr3P7eye3rdQTl06NCbJicnPz/thQ8AY57n/VJ7e/uBUtWtFq7+/v61lmX9b1ycpwERGWxoaPiFoJYnv5S/u3vgXlB2EIwUfueuOOtdt7l39j+su+4yMQAuJbuKJxD8SqOXei+9fLVijCMN57Y+x/d2EcY2kYwlLsG3X+qdBMHJuBuv/A++OmWMEQ04qoBtRiOh9OQpApFKBBzwLh9odPYci8LjAxYuJFGVLuAASh10AIAx5ueQ7fF49bSPei3L+o22trb/W8r61cIwMDDwOs/zPgfgjsLrIvIDy7J+y7btL5Wq7i+910QzIe6k0M5fu/g7x613f7m1ey5lfeXdZhtwYXfXSgQcQDboaEjDWVts0EF0k7Lp5fXQcVzH9Vu2mpkubV4lwumJbZVYZ0OAAc+znMc2L09MDzY6e0YjnT3HH4BYo2T5MrYp3HnPo8dKWp/jOI8C+GkAD4lIpuCjzkwm88/GmI8YY8KlbIOqX0899dQiY8zvep73HVwcbKRFZDvJm0oZbHzxfQP3pUMcBS4EGy8nM3x2sbu+6uwQyEDxLSsOgUgmhB5jz570ejmO64x3GKdTBBevqip4WION0tOAo8JsMxoRZIcqykUgp4Xc+vim5fYTm5vc6Z9v/trxe4HzoxR0VSIQonDnPY+UPOh40XGcbaFQ6GdF5OhU3eRSAJ8WkW+6rttSyjao+uO6bsvTTz/9LQCfAHBF/rqIHLUs623xePzDjuO8WIq6H73HxL74PtcA2JHN1bg8kewv/LlqSCORTaisuOjZxTDFBB0A0GHiiXzQIZAzhO4GWw4acFRYOJ2OleuPugjOiODBcGZx7PE7m7unf97ZM2J39gwZIborvV+LBW6/59FgtrWfSVtb27fj8fhqZLe5fyZ/neRNIjJojNlnjLFL3Q5V24wxHcaYPhEZJPnG/HUReVpE7o3H46vb2tq+Xar6v/i+gQc8y5qlV+MCkpG/3zI453V+Nvc6YwS6fDZvTDzZ6vPZlyERCyrogODh3H4pYwE1T81AczgqrKNvxAbE5M9LlcMhIrszGW/bvsvkaQj5AMBEabannsdW0IVlC8bTDdlt7e95dDgWymRiX/xA6fI7hoaGrjl79uwnReRDJC8KxkVkmOSnbNveTV6cdaIWJhGh67rvAvARAMumfZYB8JdLly79vRUrVjxfqjY8eo+JpS3uJBnz8R19+O4vtyXmU9+udxvXErbNoeyLjsWTrRZhA7z35ffMLYfjZcceUosn4OisktpgjBEdp64wD55toXTxnkBOE1biyTub3emfdfaMRjxr4j4RbEOV7dUikNOkte3Ld68Ye/8jxxLIeDsB4v3dQ5tCsnhr99bGwF8yuT8Mv2aM2SEivwPgffl9LUg2A+hx/1979xrc1nneCfz/HIASJWcTdDtJZ3c6E7jtduvmQ6CZRjIlWwISuytfCTqxLfmmg6zj+JJYUJqm3W1TQe02zaVbQlvbcmInAOWLHMkOoVqSnSjSAWWLkOXMkPqQOttpbXKnH7bbbENuUkkkgfe/HwBK4BW3c3Chnt9MxofEwTmvMgTwx3t53mz2J9ls9uvve9/7nv+d3/mdGbfboNrfj370o66f//znOxzH+X0R+c3yx0pbyO/v6ur6i+uvv/5dr9qQsp2AFKzdBSBe77tHrcMqAFDq5XAqnbfgeZb0G+HVVoEhiHy01ucv0ZjQ1Co4ANa5cj3lOe3haLGPH387boELZoC7cUxi76p8VyLTt/DD+fbDZ3aCkoDUvzLGk1Uq5DgEidmVKvfsz9k+SGrOucSEocSej23wdK+DU6dO/bt8Pv9FEXkIwPyS6P8oIn81NTX1rWZsrKVaz3Gc94nII8aYuIj8+3kP/xzAtwD8ZSQS+d9etiN13xthsQopgQQbfY3SSN89BzfX9Dp6+Q5nDCIfrmM1yh5jIS0Go9acZbZ19nBcPk5v/X7EtSEb5Q1dFtsGwj84G/ILRmZ/diNwEJj0GYkeuW3hhNBbDr+1wwITAgk2eh83AweBSQGTL97bk5j9/X3PvbUbYGKZ52XEo96Oco7jBEg+DuBxEfnl8sdI/guAJ7q7u/du3LjxX7xsh2qNH/7wh79sWdYXRORRLOwJ/GcR+euZmZn/ceONN3o+qTJlvxG2jKl6CLaK12jNwyqv3OHYFEnV+r4BYoIWr0YeIZ9I2b+h4cABGKS3HtfQ0c40cLSJTxx/a0wgHwZc6NUAJgUIH7tl/Zy16re++nYYLOyW0qQyN+eHVD6uFDi45/x0dzJTFhzu3X8mJVLcz6HCfSaEEkt73NsBAMPDw2ump6cfJPklAL867+GLAJ4FsDcSify9121R3jtx4sSvi8iXSj1cc5D8XyLylUgk8s1mtqk4lCJjIsUegoZ7OMiJe74b/qVa2/HyHc6l96xq7nP5mHt7/yYSP3yrkxCR3cXfNx44Sj26GjramAaONvGJH5xNi2AH4EYQ4J5jt2xIzP5u62sjQX9+JgUgXKnSaK3HjQYOggMQJF7aPnci6z3Pn0mVbx5V5X0ygPe9HQBQqtFxL4qTBa+Z/zjJYRF5Lp/PH2jGt17lnjfeeOOXCoXCNpL3A+iZ/zjJHwP4+k9/+tMX7rrrrsLCK3hv4IGhNFDd+0U1rx3LSN/dNQ6rHLrDSVgoBoZq7zN7bCxe3ZeJjP3NbU4WkC1uBQ5AQ0c700mjbaLQ1ZXw52d2uHEtlmaQb31tJGgVZnZb+Rnbjeu6ihwS+uIH7p3bCxNNjQTWdk05Ut9+MlFgKmyn3vK8tyMSieQBDJDcn81me0n+YWmTOACAiGwEsNHn8+09efLkEQD73//+9x/TSabt6Uc/+lHXL37xi1tJ3j8zM3PL7ETheXIkv/bxj3/8cNMbOI+xTMIylivvFwBginur1PSa8RskjYXdlc9cyDJIALALPkStPMcE+ECl51RLBPbxG5xzN/4wknTrmso92sPRJtzcS4VE1gLCCx9vcQ+H4TgE9kvbe7KYJ5oaCaxdNeUIi2GjkfbBIAOrOb0ds06cOPFxEfmsiNy1xCkTAJ4H8EIkEjnTrHappQ0NDW00xmwHcB+WWKVF8qCI7ItE2qsK5cD9Q1kItrjyGjWc2HawjmGVPictstgy18rHlmHktiOR7Ku3OmGUrXpptIej7Dj2u8cj6Wr/Lcp7OqTSRor7qUyPWqxnXHTp43YIHAQnScYPbV+8hsa2A7mgZWQQQMitNxzCTMAgln5wo+dzO8odP378A36/fxvJ+0Vk02LnkPw7EXnOsqwB3beluU6cOPFhEdkhIvcD+I3FziF5ujQk9lK7Dontv/+UTWHFiZvVvl6EtQ+rDEadoLHkvVruc+nYIHv7kXAEAF691UkAxd4SFwMHoKGjrWjgaDOf+OFb0dIHL4DODxwEJsUgOd29KrnY0lwAuOeFsyHQOJDiN0z33nAu9apkjG9NU3s7Zp04ceLDlmXFSN5XXn2yDEm+ISLPdXV1ffe66677ebPbeCU4fvz4B3w+392lkLEJWFj4huQ/iMhzxpj0Jz7xifHmt7J26fuzExYW7uJaflx1QCcGth+sbbUKALzS52QhUrGnZfFjxm5/tRgIXr315CggH3U5cADAukY2e1Pu0TkcbebEDRsyNxx/e5fwcl2ODjbgM2bBhNBy2w7kwjRmUMTDomMiUTEXwv/52eHYt5vc21H64EoASJw8eXJT6QPvblzuvhcR2Qxg88zMzFMnT548KyKOMcZZs2ZNbuPGjRea2d6VYnh4eM3U1NQmkhEAYRH5GICuRU79GYCDlmXt37Jly/Aij7c1EUmDcGUfJkHtRcAAgERSBFvqem5x0mkaAPx5ic74OCplAapRBAb+k4aNtqI9HG3oxu+fTUOwo0N7OIZYsBIvb19YA6TcthdytkixoFdj80OWOuaC38Mwafxr9rSit2PWj3/841X/9E//dBuAB0TkJiz+QQiSUwDeEhGHpHPx4sUzN99881RTG9shHMfpNsZsFJGwiERIrl9i4icAzAA4RvK5X/mVX3n1Ix/5yHQz2+qmlO0EfQXrvdmfG30dCU3f3QcjNYfyV+5wxqTOoWCSe3qPRBIA8OptTlQMBmu9xmLHpbBh1/pvUd7RIZU2duP33xoVXC4B3O6BA+Q4KfFX7q68QuTul87stAwuzSJvVuAovRGNWUTs2c/0ZCu102vDw8P/dmpq6h4ADwD4WIXTL6K4UiJrWZbzwQ9+8K1O/rBsxLFjx1Z3d3dfKyLhUi/GtSKyernnkHxLRJ7z+/0vXn/99T9rUlM9t/++7OhsqfDGX0fm8LbvRqre0G3WK3c4tnBeNeAqjwlMGB+v7ssU90M5couTBhr7sgVq2GhHGjjaWNgZCayans4CS7+ZVHPseeAgJiFIvnzn5dofy9l24EwKgN3o/JDKx4sHjrLHk/kW93aUO3369IempqZuQHEIIAzgP1R4ygUAwwAcy7Kcq6666u2Vuuy2tHfJBhGJGGPCpWXH3cs9h+T/BDBkWVa2q6vrxKZNm/7Pcud3opTtBK28DIrIkiu7anvtEKun+EuzH/7VGow6ASMYmx0Oqfn1ajhw29FiQBgMO4GutRytr6gYAPDcqmkJ64Zu7UcDR5srDx3tGDhADBT8q+JLTQidbzZs1N7ueo4rBQ6AxJhIe/R2zHfq1KkPGmNuILmFZFhE/mOFp8wAGAPwLsl3ReRdku8C+AcR+YdIJPILzxvdgDfffPPfzMzM/DrJXxORXwNQfvxhLDH0VOYnALIAhnw+34nNmzf/s8dNbqmBB4Z2A0i4+zoiLMPYXYdqX9nxSrS8cmgt97z0vhS57Uhx6fHRm50QUM92Dxo22pkGjg6w9bWRYMGaGbWIZWejL3XsReCAwZDxGzuzyFb3i4kOjgRWTU05Fi8X9GqHwDF7THLXs5/d2NaFgk6dOvXBQqHwcRTrq4QB/FaNl/jpIkHkXb/f/+511133jyJiXG7yHCStN99881fz+fycMEHy1wD8+vw9aqq43t8CGAKQNcacuOGGG/6vF+1uNynbCYmRlGDpXo3y41oDBwwPbztU+7DKYNQJUupcIlt8X8rediQSmf3d0ZsXLpWtcA0NG21OA0eHuPEHZ0NikJ2tyNe6wMFxY3x25s7lJ4TOFx0cCay6eDFpoVgkqPZ219XWqq4Ng4FnP9tjV/UPaSNnzpx5/4ULF35bRK4xxvyWiPw2yWuWWH5bEcnzInK+/L8AfiEiFwCcB3DpMQA/J+kTkbUk14rIWgBrAawluQbA+8ofKzunHn8P4B0AfwvgJyTfWbVq1d92yhLib33mdAgohB56ZnO60WsNPDC0k8KEUC6t6nI7cAiBVdO1D6sAwPeiThoidcy/KP5Ag9jtxy73rhy5+eSoVNO7S07SktBNr0fGam2zah5dFtshjv/u+tEbf3A2jLLQ0VTEJCDx731yQ7qep5eGXOxtB3JpEGnI5fHZViK599uf3RhvdTvqce211/4/AGdK/7vk2LFjq6+66qrfLBQK14jINQCuKQWR38Qy8x5mQ4OIzP682DkLjuefV805i7hQKob2Dsl3LMt6h+Q7H/rQh/6uEyfG7ns4F7TMzE6CUaIQFGIIpeWf9UjZTkAoKQJRLCwh4rqZLkRRR3sFSLK0x0tdLPQPhp1MX6mXQiA2yoZWFkVOWpTw72rY6Ajaw9FBZns6ahleaaiHw2CSQBLW0oW76rHtQC4hXH7jJ697OAwR+85Di1c+XYlKQxrBmZmZa0RkNoRcg+Lmc97VQZnrZyTfAfCT2XDR1dX1znXXXfeeyJx+p46z7+FcUDjdC8KGSGje393QQ89sDtdz3ZTthABxaunVKD+up4cDxOjdh8Lr6mnv9/qcrJT2c6r+/nPelwZuPXp5hcnRm52EEIu/V5hS2NBaGx1Bh1Q60NbX3g4DdGZ/9jBwDAAmUe08jVq1og5H6c10UoBoO04UbSXHcQJdXV1rZ2Zm1lqWtaZQKKy1LGutMWb2v2vmD48sMgxzQUT+leQFn893Pp/Pn1+9evWFmZmZ85HIyhtb77edwOo1Vi8M4rIwZMw5fuiZzTW/x86GDUAC9b4e6gocKO7ouv2l2nsNBqNOFKi1WvLc9yXK5QmkAHB068lRWWTpL4DITa+31x43amk6pNKBXr/pY9mtr52NAUh5cgNiCGIlMn21zdOoxbYDObt83X7TEJMF+sLph9ZX9Y3ITo0EumYufNRXkDAAkAwJJCDgKEUmhMwCwL5HNw551+jmKAWCFRcK3NYfdwKrp6xeQKIAokJ4MsrxbfuUDZh+QJrV+zSH5BEFUPNE6r5MJPO9qDNevqy15nsb9AO43MNSEBv+BUMrMQ0bnUcDRwd6/ab16a2vnQXcDB3kuIGVePWO9WnXrrmIbQdyNtCCsAGcK/i7w5XqbtipkcCq6Yu9IKMydXHOmLmIlL5hSVgICIuPPfrE8ASIrIhkuma6Dyd3tUdtD+WeJx471StEFNPFZd1eetY+FRVhCmxdx3NpF9i6Vm5JsZx//a9xQejozU7ilmPFCqS3HI+MHt3q7BG5NLQSu+l13ZStE+mQSgfb+tpZW3j5hV3XkAoxCSJpwd15GovZduCt3QATS7W1/NjNIRUCQ7S6o5XCxkPfzO0mGJe6u7AvdUlnKZJ+8nM9A8vdT7W3vY+d6vURUQqjVp1zKC4f+9Y99Mymij1rKdsJENZ7ENQ9jFJ+XO+QCgCYaV69PVPXsEqAKBYCq2dIpdSUCZ/BuvKVJ0e3nhwVSvrm70faegm7WpwOqXS4129an9569CxE6v42MWDRu3ka5e5+6UwKpO31feYjMZB6cPllrw8+kwuLQQpAUNzpHw8LGf783uGEgSS6jPZ6dIr+R0+HfFLYASAqIkHAnREToalqaITwDRZ3Tm79HFq/v+5hlYnBqJMELk/2rJUAgULxfe1SbQ4LEr3p+7oapZNp4Ohwr9+yPr312Nmw1LYcbcgYK3HEw3kas0pFv1IAai4m1CiCe9MPLr3s1U6NBLqmL6RARCFw/z1eELTAdME6P/H43lzSMt17NXi0n/54LugrzOwkEBWYoLRoKOPbnz5lgwi35OaLYAPDKqXn1R04AEAE4aM3O/YtpdocWmej81mtboBq3Os3r7cJVOy+JzgOSOzV2zeEmxc2ph1pRdggYulPLx82/DMXHIh43zaRAMCEkfPvfb4/Z3t+P1VRfzwX3Pv4GzuTj78xYpn8e4DEBRL06n4UVrw22UANC2+EDt7phCqftlCxcBgbHlIk0O+EnZZMnFXu0x6OFeL1m9fbNx05C5Gl3rS4x19Y7fk8jVl3HjwbwvR0SoC63rDqRkzSiJ1+8Nold639zLfOhkz+ggORQFN7rkUCIkztTA73CtfEtLejufrjTsAyXb0UxsF8sTR4k+5NLh84UnYuaGQm7MrfIzmJ0kZqLrAB1FscL4FGCoEBQPFLUmOXUG1DezhWkNduXW+Tc3s6SB7O+7uuPnLbhkRTwwbptCJsQKxw+sENS4aNB5/JhY3kHWnRcsOSKOXCSLw/F25hG64Y/fFcsD/+xiDg/xmFaTT777IKxppxpaeNRmIQy3bjWgBASG+9z+3LRMZI1r1knOC5q87r/igriQaOFea1W9fbBIYIjgslcvT2DdHXb1o31qz7f/K7b0VLYaO5H+jkOMQKp2NL19h48JlcmIJWh41ZQQodDR3NYAJowbDeXBJc7lHSlRC094EXN6fvf35zptjL0TgBgvUOqwAALCTqeZqGjZVJA8cKdGFtV/TYrRuCR27zfp5GuTsPnrUtwWCzwwaJc5Du0HJhw06dDRnh4FKPt44ZjPePtEMAWrF2JSsvR/WaCILLPo7lH6+OdblnT2TJXr462PU+sS8TyRbnjtWAnPQZiWrYWHk0cKxA2Ujz5wZ86tBbuwE2vaAXySELq5ct6GWnzobEtHwYZQkSAM47lc9TqnpC41qtikaGVQAApoZeDnJSIGFdkbIy6aRR1bBPHjyTEnpfgXE+kgP7Y8vX2LBTIwEpXEiJtGPYmCWh+F8NJ5NfqH7n2t//es4muAMAxBiIFMuvL1HQKXtpMqJI1jIARbKrp9ecSySujImrBIYE2NK6+3P5Ut/iRq8gL13j3hcjo8/fkx1HAyXGZwkQPPQpJ3zny/WVEu97NZIe7HWSUmEiK8lJCxK+5ZhuxrZSaeBQdYsOjgR8M9MpEUSbX6eo6rDhiEjbTRJcQNCLmlYD0J79AK28/buEL51RqvMgJKa7zuOP/uzNCYpkpIDMn+/edLjmdquqVFxyS0w0vhiDYQCXhlIIyQiws9Grli5mA8g28PyKdTlEJHrLUQ0bK5kOqai6RAdHAv6ZaUekFZPxuGf/juXDBgDAXOzviLBRFIz3n66qraU5H+58WxcJCGCLhcwf/+mbP/ujPz2dSiRW4pwSjrW6BcuhGxvnkXP+JiyYdMPXvKTBYRVr+QJiNIiV7xCrViYNHKpm0YNnQ778tANp/vJCCmP7d/QkKp1nfztnizR/mKchpjgsUok1c9GbkCcSEIFdkH9974//7HRDVSLbjUDGWt2GfQ/ngks9JsLGv9mLhFK2M2dYheS5hq8LAILAy5906v67W64QGA1itx/TzdiuBBo4VE2ig2dDlsWWhA2Asece6ElXOstOnQ1B2N+EBrmq2t4iS4y3vUoiASESX/7T063Y1XfF8ufzwaUfdScQ+aZ98/42rLQb1wUANri02OQX6eUw3KVh48qhgUNVLXro7bCY5tfYIDFZ8FnrqgsbIwHQpNpzRYo72LzJj/aXE6cHV8gQS7bVDViOZbqyrlxIOCcU+FhwcQhRV0QAABCwSURBVHms9A5G6y8z3ncsMoqyQmAEB24/qju/Xkk0cKiq3PHKWduyTPPDBjBp/Fb4xXuXrrEx11R/0yucumes0gm/97XhaDPDlAiiRs7XW9palTHgkn+XsXTPGNF4sS4R9JYPq2x/KTLm5rDKjNVYL4dV2gyO4EDvqxHblXapjqGBQ1UUHTyzsxU1NgCco1V92LBTORsNFClqNbKKiY0NvuHXaXcisfT8g85gtcHyXy4fFClZN+7im/HZc3/j3rCKNPj3d9urkQzAPRo2rkwaONSyoq+cSQmlFd2e5/z51TWEjbMhQDydt0HgHMA+knu9vE+FVjS2WqBORgqJVtzXLW1SbXTZwCHizrCPwMzZMG3mQiHtxnVLV29oWAUAev8mknCpMarDaOBQi4oOjgSir5xJiYjd9JuzGDaWqx66kEnBw+EeAuemurvD+x7dmHn6seoLdNV2E1n2Q7HZwylzSbttnd6Bll+ibZkud+ZbiIQObHOCsz/GMpEJAK7VWMlbnduLqFpLA4daIDo4EgCmnZaEDXDghfuvDdUSNh5I5RLwcN7GbNiYbdMjTw17MqyR/OLG5T9wWjOcckki0dkbzRV7qNpXcR6HO20s+KzE3N+4uLeKaPhU9dHAoRYxnUQLJl6SHHjhvioKepWxU2dDIuJZzQgCkwJEywMQIe5Ub5xzI1bxDbQ1wymzDEy4lfd3QWvncZAfreIcV4IBwTmTR6fPu7daRYDQYPRyD4pS1dLAoRbI9G2wAexp7l2550CNYQMAKMbTeRsWEX36kZ6x2Z8ffjJnC4rlwV0l1rIfCL/3l60cTrkk3OL7N4g1BQ6Sh4WMuXb7KvbzseB3JRgIJOCfvtzLEctEJkhXh1Va2tumOpMGDrWoTN+GBEXWoSnd0Iy9eG/l6qHz3Z86E4enH4Lc+/QjPdnZn+zUSEDgVUGx7mU/aEja3tz3yiFYfo4MAIA4R8qufN5/9eNPbo4+9tTmtPctuyyW3jRKoLbt3Jcggp0v3HPKBoDntr0RFlTRw1Lttb3o5VMrngYOtaRM3/rRwTs2hAjvVmWQjL14b+WCXvPZqZGAJctvBtWgc998eO7k0NUXLySq+ZZaM2IguWvpOSvx/pGASIN7WailEeMk9hYK1rrHn7g+9PiT1yV3PX25V8tNzzz4RrjSOeLSsEoRUy/cM0TLMg5Egq5dVhAcjDqdWu9GtYjuFqsqytxxbTx66O2MZRXSbmx3DRTnRli0wgeqLug1l7EuJoWeDTFMCud2GT+8LxeGWztvzieSWO5hy3i0d8oVRyZQ2taY5KQAGWOQ2fXE5kU/4PsfzgX9Vr6XMBNNLbaGVUliuu17EArFvYq0KJyqmgYOVZXMnR/LRgdHQlKYSjTanUpg0sdaqofOZadyQePhMk0axMvnbdipkQAuXvSm8BkxkPxChW/TxkRRcQt6VRlHSR6GhQykkNmZjCzoVeqP54L+fL4XhA3Jh4QAGt83/nILDIOVzomle8a+HcueE4hrQyAeafWcItVhNHCoqmX61k0AiH/q0NsZI4W01NPbQY4b+qLfrTNsAICxkKj3uZWQPPzMIxvT5b/rvnixH0DQkxtW6N2I948EpHBBh1NcsCt5fRaL7KnSH88FrXy+F4AthXxxmMCjfCdW5cABAKCVbFF134oIToJI3Dmo+6Co2mjgUDV7eba3Y2YqIVJ9bweBc1NrusOl4FIXj3s3JmdWr7HLf/HQN4ejMN4UOiIxsHfX8r0bbTackm11A9zSHz8dsozpJRAVkw+1WweShUKGkKRAPtDqtszFw/4C7OJ280rVRgOHqkt5bwdRVW/Huanu1Q2FDcDb3g2Adnm9jYf35YKG3n3LtLB87wYAECYqXn3dvgL1x09FhegHTRDwrCNjGctXG50VS0cmvmMPZQC0RZEtgpMWYX/qlYiLE1rVlUZXqaiGvHznx7IF/+oQllnJQnJoanXjYWNbKhf0rsQ2937rs3MrfRrhoFeTBUnsTVbo3Yj354KC9lmdYsHKtroNDTMSAiTYqtuzhnkP4uKma40gOdCVR1DDhmqU9nCohpX3doBzeztIDBzcXntBr8V0+SRaWmTgKoLj+a41ifLfPbQvl/Bqm3sS4xbm3m8xlmE7DacAMNqN3kSx9PXZ79gtnDxKjgtg3/VyJNuS+6sVR3s4lGtevvNj2XzX6lDZbqoDB7dvsN27g0cfwCJzhlIe3JcLi4c1PiyIvVzdjVkk26I7HSiuLEokWr/jasMsjrXy9gJsqe18X0uWnZLc25VH6E4NG8pFGjiUqzJ96yYObbs2TpF1B+92L2zYqZEAIDW9WVeHe5/9zLxqohYH3b/PpfsdTu66fL+lxPtzQZHqxvubQVbMhFEZa3ULahFLX58lMNSs+5EcN4aRbYcicZ0YqtymgUN54tBd9S97XUzePx1283oAAGJyZt5QStfURS/nbUxaZq1dzblSYFsVVCKZbXUbVoryTdWqIZi/86s3SO7ZdigS3K69GsojGjhUZzDG/eEUQbJ8KOUzTw8nRbzbm4VEVUMppba1zWRRAPBBsq1ugxtKtThaKu/319RzFUtfn3Vz47WFeM4yZt32g5GEd/dQSieNqg4h4n7hrXwe6dnjz3wrZws9Kl0OgMDQE7s2VjXLP95/OiTGo0JjdVgx8zc6mWXipIRdrctBTkIkue274YRr11RqGdrDoa5YPp/02qmRwIPP5HYD8KzeBoFJnxG72vOF0lbDKStn/kYRyckWt6DmuTmxdGQM4nOtl4/AEISh7S9tSbh1TaUq0cChrlgiTHbNXPyZ0MtiYgAEdqWaG3MxALqzRbkbSKyw+gtVbFPvKdY1RyiWvj5LI7saujM4Tkrsnpe2hLe/FBlr5FpK1UqHVJTyEIm9Tzxe3VDKrP4vbFrwTfb3v346RLFKH1QmTAIQhEAEBfC0ToMPa1dY4KhDcfjBleEMsv5Nz2LPbU4OPDAUQq0VSMlJUpJrLzLZl9msq09US2jgUB2BlFGR2moYtBrBc0/s3OTK8Mg3vjRnDkV2/uNf+tpwlKQtcH2y6eFEorEKse2HY1UtsSbGSaT9pittrGkbcKk2S4PLnXfs32Kn7juVETHpinM6SvM0LDK9/aXwWCP3VapRGjhUR8gbJrt81W8U12oEJrsKVk1j7vH+kYDwwg4Ao/1f2FhT7YWv/8HGDIDMH3z1zVG4WJly5Q2nAMvW4iAnQWQs+pKPPXU55D356Kmln9MCsec3Z1K2E2RekgCjMr/3hTgskMy9B7akW9NCpRbSwKE6wkuxnrH79+eGvCn+5T6BRGubtwHAXLAh6AeAL/z3YZAcFcgYREaFnLAMRgFOzuvtuOQP/yIXNCh82M0Nya6U4RSChwXIPP7E5rTX9xLSlUAYS0cmgOJOxinbCfjz/pA/nx/TuRmqXWngUB2DYiWF7IDAwT1PfH5jtuanydxluaVKoyFhsaQ7pXjSF78xDCEAcJSQCTEGAGDEhIUuxg2uxOEUABZHQQGIcYEkCz5fZldyYTh88tHTIUphB4r//wddu7+4X1iuFD6ybl9XKTdp4FAd4/n7N2QeGDizF/CuXkajCAw8+flNiVqfF+8fjgpr/VCTkAAQ8WiTdVmJwykA0DVKyUfif72wCFh/PBf05/M7SNpGTFAoxT3sXd40MGU7gVJIUOqKoYFDdZT9O66NPzCQC3i3TX1DBp78/Ea7rmeSdvGTrT0QmPSblTmcUurNGJv9uT+eC1r5fC8AWwr5EOBhiCspVRvNenoTpdqMBg7Vcfbv6LEfGMihzULHwJOfqy9sxPtzQYC9bn+LbgiRXpHDKSX98VzQMvleAraYfMjjfKGUghb+Uh1q/44e2xC7QLS4aiRAYuDJz/XY9V/BNPBcb/hpJVvdBq/0f/7NuDD/HoCkAC3akdeEW3NfpVpHA4fqWM/Frk0KGCLZtO275yMxsK+hsAG0WU9NabJojStsOomPui+MUi2ggUN1tHSsZ2x/rCcMSB/IppUDJzAJINZo2Ij352y4uQLCBbQk3eo2rHiUYKuboFSzaeBQK0I6tiGT/nRPEJA+wOMeD3Lcoi/81GM9aRcu1la9GwTG/9uXayvF3nn8Y61uAT3Y/VipdqeBQ60o6diGTOrTPWEKIgAG3Lw2gUkSey5Mrwk99dj6hrvli5NFEW64YS6i1xvZtYHFam40H93bZl6pDqGrVNSKlI71ZAFk7dRI3DIXoySjAqlrnxECkwIkp7q7k+mYeys3DJhop8RPYPwrf7Ip3ep2XAkEje2nolQn0sChVrRSQEgDSNupkYBlLkZhGCq94YcALPpNsxgymBVK5mJ3d8bNoAEU902hnO+Fm5VBGySw7Fa3oVlIDAmavxkgwUmhZAQrtaiaUkvTwKGuGGXh45KH9+WCeX9xPJ2F4u/y3d2jbgeMhS5GAfdLXNeLxOE//5OebKvbsWIRhyHIPPSsbqamrlwaONQV7elH5ladbBYK3dnq3CUFY8Vb3YYmy8LjHg4ShwlkumcKGS1jrpQGDqWaLt4/HGUbLYUlseerK7nuRnOdEyK9arqQ1pCh1FwaOJRqMkr7bD5HYugrX659szlVhjhHIg2rK/PI0xrclFqKBg6lmijenwsSDLe6HQAAYnxVYW201c1oCYujMPVP2CUwDjLDgj/92DObtHKpUlXQwKFUExmLCWmDTdoITIogupI3aFue1P7vJichSFP86cee0pChVK00cCjVJPH+XNC0S2VREfsr/3WjfmhWUgwZGSEyj+7boktZlWqABg6lmsRYxgZaW3ejVMQs/BdXfNjwjwH5JR8leVgE6c89tVlDhlIu0cChVBPE+0cChud3tjhvDHVPr72Ch1Eu25XsGdv7+BtzfkfwsACZvL+Q2ZXUFSZKuU0Dh1JNkNy1buJz/cMxSxAlERVZvMKpFwhMgkh+9Y90NcoCxDmBpAu+mbSGDKW8pYFDqSZ5YtfGDEolreP9p0MFSNhHRAGE4EUAIcYhSE9NrU0mtVdjAWP5r26PjdyUujKI4ziMRCLts6GDUlegeH8uCIMwYIIiEgaB2b0+Zle1lK9umXtc9oPBkAhGhRj96n/RjdiUUu3BcRxqD4dSbSC5q2cM8/Z5mfXFb+TCs8c0DIjF0GzGsCCjxlgT4jMT3/iSLtVUSrUxx3HaoCqAUkoppVYqx3FotboRSimllFr5NHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz2ngUEoppZTnNHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz2ngUEoppZTnNHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz2ngUEoppZTnNHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz2ngUEoppZTnNHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz2ngUEoppZTnNHAopZRSynMaOJRSSinlOQ0cSimllPKcBg6llFJKeU4Dh1JKKaU8p4FDKaWUUp7TwKGUUkopz4njOGx1I5RSSim1sv1/Bbfdo7ZrTacAAAAASUVORK5CYII='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((540, 540))\\n\",\n        \"def text_on_path2(r):\\n\",\n        \"    circle = P().oval(r.inset(50)).reverse()\\n\",\n        \"\\n\",\n        \"    return (StSt(\\\"COLDTYPE COLDTYPE COLDTYPE \\\", co, 100\\n\",\n        \"        , wdth=1\\n\",\n        \"        , tu=100\\n\",\n        \"        , space=500\\n\",\n        \"        , strip=False\\n\",\n        \"        , fit=circle.length())\\n\",\n        \"        .distribute_on_path(circle)\\n\",\n        \"        .f(Gradient.H(circle.bounds(),\\n\",\n        \"            hsl(0.5, s=0.6),\\n\",\n        \"            hsl(0.85, s=0.6)))\\n\",\n        \"        .insert(0,\\n\",\n        \"            P().oval(r.inset(70)).fssw(-1, 0.75, 3))\\n\",\n        \"        .scale(0.75, point=r.pc))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"UW0Ia_JXr5Zo\"\n      },\n      \"source\": [\n        \"One thing that’s weird about setting text on a curve is that, depending on the curve, it can exaggerate — or eliminate — spacing between letters. Sometimes that doesn’t really matter — in the case of this circle, because the curve only bends in one manner, the text is always extra spacey, which usually isn’t a problem. But if we set the text on a sine-wave, the issue becomes more apparent, since the spacing is both expanded and compressed on the same curve, and when letters overlap excessively, they can get illegible quickly.\\n\",\n        \"\\n\",\n        \"Is there a solution? Probably many but the one I like a lot is the understroke method on the DATPens class, which interleaves a stroked version of each letter in a set (a technique popular in pulp/comic titling & the subsequent graffiti styles they inspired).\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3v5klt4Er8Y4\"\n      },\n      \"source\": [\n        \"Let’s see what that looks like.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 26,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 314\n        },\n        \"id\": \"jG9FcCaPnMZP\",\n        \"outputId\": \"b742e589-27e9-40e8-b5a5-7b978c487702\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=500.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3XlcW9edN/4PthGrEKsB2UhmMWAnwhvOYgvHdrwlIpuTNInokq1pIM007dPU0KTTztP+Csm005lOi9I2bZ82BU+nTeIkkMXZI5w08RrhxPsisLFxWGSzg13//sDCiHu0ALrSlf15v15t7SMhHTeOdD/3fM/3hJ05c+Y8iIiIiIiIiCiopgR7AkRERERERETEgE5ERERERESkCAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERArAgE5ERERERESkAAzoRERERERERAowLdgTICKaDJvNht27d2Pp0qXQ6/XBng4RERER0bjZ7XY0NzczoBNR6HCGcZvNhsbGRlit1pHH6uvrGdCJiIiISBGcgRsAmpqaYLfbR37d1NQkGXdiQCciRfIUxkUMBkOAZkZEREREl5uJBu7xYkAnoqAbbxgXiY+Pl2FmRERERHQpClTgHi8GdCIKKH+EcSIiIiIiX23YsAG7d+8OSuAeLwZ0IpJNoMI4y9uJiIiIyJ2NGzfC4XAEexoezYyPQVJMBAM6EflHoMJ4sjodbV0nXMY0Go0s73UpsdvtI/98Ghoa0NjY6PWLKj4+fuTmh9FoBAAUFRUhIyODDfmIiIgoZAQ6nE+bEoakmEgkxkQiKToCSTERSIyJRGJ0BJJiIod/Hz38v0kxEYhWXYzlYWfOnDkf0NkSUcgLRBgPn6rCjKQszEzKxsykbGQkZyE9QY89x3bgd2/+2OW5RqMRr776qt/nEMocDgc2btwIq9WKxsZGWcq5ioqKoNPpUFRUhCuvvBIFBQV+fw8iIiKiybBarTCZTJN6jSlhYUiMjkDCSMAeDtuJI79WXQjjkUiMiUBcpAphAIb/CwDEkTtM8BhX0InIo0CE8YhpUZiRlIWMpGzMTM7GzKQcpMbPxJQpUy9+rl348OrpPyP5eZ1O5/c5hSqHwwGLxQKLxSL73WLn34WamhoAwyvuRqMRRUVFuPHGG7nKTkRERB65a9TmrOKLi4ub9AKAs+HbWJoo1YVwPXqlO3JkpXt04NZEqTAlbPiqNEz4av5b82ZAJ6IRgQjjkaoYZCTlXFgZz0FGcjZS4mYgLCwMLh9u4k8/9Ax0ScYYBIe/4CwWC2pra4O2x8rhcKCurg51dXXYsGEDCgoKYDQaYTabubpORER0mbPb7diyZctIdZ/NZvPp5+Lj42EymWA2m1FUVDTu9xUF9HuvnoMNaxaNGT3v7vIT/gzg3jCgE13GamtrZQ3jMRFxyEiePRLGZyZlISkufeRx9x+C7vUN9vhvgpcAh8OBqqoqVFdXB3sqEjabDTabDdXV1dDr9SNfrgzrRERElz673Y5XX30VVqsVDQ0NE15AcDgcqKmpQU1NDQoKClBeXo7i4mKff150I2BWknpCcwkEBnSiy9jDDz/st9eKi066EMKzRwJ5QmzKmGdN/u4jA/pFNpsNJSUlPu0vj46IQU5aPrJTc5GTmofZ6fmS5wyeHUTvYA/6BnrQO9CDvsHeUf/pw+m+TpzoPI4TjhZ0dLeNa652ux3V1dUjYd1sNsNsNrP6gYiI6BLS0NCAuro61NfXy9L/xmazwWw2o6SkBJWVlYiPj/f6M6dPn5aMzUqM8/vc/IVN4oguY3FxE/twSoidfiGM52DGhVAeF5144VHfy4Okz5OWuI/dg/6X93+BrQffcfkpi8WCkpKScfwJQl9NTQ1KS0s9PicyPArLr1iDq2cvgzZh5si4qCGJq/OjnjdG2PDjA0MDOOk4jsOtB3Cw9QD2tXyO073jvzNeUFCAsrIymM3mcf8sERERBZezbL2urm5Sq+QTUVBQgOrqaq+VeaLr3Q++dTtS4qLGjPp2DevrHnQ2iSMiWSTHaTEj8WIYz0jORkxk8O469gtW0C+3JnHl5eUeS9oTYpKwuqAYxvyViAiPlGUOEeER0KdkYVZKFlZeuRYA0N71BRqbd2H74U+w5/hnPr2OzWbDX/7yFwZ0IiKiEGGz2VBbW4uGhgaf95G7M0MTC60mFgCgjY/FDE0sEHYeW+0n0eLowfHT3R7nUVZWhrq6Orcr6aJV/GjVNKSox4Zz5WBAJyIXi7JXYkZSznAoT85BZHi0y+NhYcEtuum9zEvcS0tLR7qmjxWtisGXltyLa3OvQyCbmTglqVOwfO4qLJ+7Cj0DPdh66CPY7Dtha9rl8ecqKioCNEMiIiIaL4fDMbKXvL6+flKr5IW6NCzWp+EqfRryUhMRF6mSPinMdbV606cHUf3Bp8KwbrPZUFxc7DakixrEZSYpt7wdYEAnolGiVGqYl30v2NPwSLSCfrnwFM5nJOrwyLpyJMUmB3hWYjERMSNhfejsIPYc/wy/fP1nkuc5j2UjIiIi5bDZbKivr0d9ff2kVsnzUxOxIleHlbk65KclXRj1VEoudeu8HKzM0+G5Tz5H9QefCudaWVmJp556SvJYY2OjZEzJ+88BBnQiGiV8muAupsL0Dkjvnl4OJe7V1dVuw7lBtwhfv/7bUIUr85+fapoK592s6JeVlQV4NkRERDSWw+EY2Us+mVVydaQKK3N1KNSlYWWeDnGREX6ZX1ykCo8sm4/rczNw318240z/oMvjFosFxcXFkpv+ogZxXEEnIr9oaGhAXFyc346oEh2rFj7VPx+icuodlAb0S70TeE1NDcrLyyXjYQjDLYvvxrr5twVhVuPz8rbnJWM6nW5cx6QQERGR76xWq8cqNZvNNhLKJ3Pcbn5qIhbp0nBLwWzkpyUhTMZtdvlpifjjl9cIQ3pVVZXkzyv6czGgE9G4OBwO7N69G1arFY2NjcKOmHq9HjqdDgaDASaTyW8lwuFTw/3yOnIaGOoL9hQCymazud2jffs1X8Eqg/ID7ufHdsPedlQyzr3nRERE/ue8drBarThz5ozLY3a7HVVVVWhoaJjwMWjqSNXwCnmuHoX6NMyID+yZ4vlpiShbNg9Vm7e6jFutVslNiebmZsnPM6ATkVd2ux2vvvoqampqfNrnY7fbYbfbYbVaUV1djaKiIpSVlcFkMk1qHuHT5On47S9nzw0FewoB5XA4UFZWJiwzuzqnKCTCOQC8uutlyZhOp7vsjsYjIiKSk8PhQEVFhcuWOJvN5lJ92dTU5HbLnCdaTSxW5OqxMk+Pxfp0BKMZ7WhfuWoO3tnXhE/srS7jY1fRRTchspM1ss9vMhjQiYKotrYWdXV1qKurm9TrOO8Y6vX6kcA+EeFTlbmH2elyC+iVlZXCGzazUnLw1es8n4GuFMc7moVHrk1m9byhoWGkZK2hoQHA8AWH3W5HfHw8DAYDNBoNDAYDCgoKkJGR4betIURERErjcDhgsVhgsVgkN/XH7sHWaHwPpytydSjUpWNFrh4z4tUIG09ntwAoXTYPnzy32WXMarXCbrdDr9cLr6G0mhiopk0N1BQnhAGdKMBsNhssFsukj6kQsdvtMJlMsFgsE1qdDJ+m7D3oZ/95NthTCBir1QqLxSIZ10Qn4JG15Zg6JTQ+vl/dOfnV8/Ec7+JwOEbC+9gbXwUFBTAajTCbzQzsRER0SaitrUVlZaXbcvWxAd3T959zlbxQl46Vecrv73OVPg0zNLGS49fq6+tRVlYmPGJN6R3cAQZ0ooCpr69HdXX1hJtwaBOz0TfYg87uk16fW1paCpvNJjxuwhOuoCuDs7R9rPCpKjy67vtQR2kQ7NIyXzh6OvHxwQ8l4752bnfuk5tIKZ6IzWaDzWZDdXU19Ho9jEYjiouLJ701hIiIKNCsViuqqqq8Xlc2Njb61JD11bK7xuwlV/51BgB85eo5kr3otbW1KCsrEx6xlpXMgE50WXOu/Hm6symiTcxBemIWstPmQZuYDW1ijsvjLR0H0dF9Els+fxGHTkrPgwSGj5soKCgY10ql4lfQBQHdYDAEYSbyslgswr8vZuPXMTNpVuAnNEGbba9KxjQaDcxms8efc5bqVVZWyjW1kT4ONTU1iI+Ph8lkQnl5+SV/IgAREYU2f9+8dgp0ozd/WZmbIQnoNptt5Ht+LKU3iAMY0IlkYbfbUVtbK9wL5E5CbBqMc9djrm4pEmPTPB5RoU3MgTYxG1fqluLwyU/x5q7nhEG9tLQUGo1GeOfUuXd3NJXCj1kbOjcgGRvPXqpQYLfbhcF0zowCXJu7PPATmqD+wT58sOddyXhZWRni4+OFP+NpD52cHA4HampqUFNTg5KSEpjNZr+djEBEROQPE7157Uvz4VA2Iz4W+akJ2Nva6TJeX18vLnFXeEDvHTzLgE7kT8795b7e1YxSxWKubgmMc2+XrJL7KjttHrLXzcNfG/4d2w5uljxeUVEBo9HoNhSNpvQV9MGz0oB+qRE1TwufqsJXr/OtLFwp3vv8LfQLjsQrLRU3t7NarSgrK/Op0iRaFY0FmQuRrE5BvjYfAJCsTkayOhltXV+grasN7V1taGprQlN7E5ramtA72OvTvJ1B3V8nIxAREU1WbW0tysvLvd681mrUaDnd5TI2dg86MLy4MXa8q38Q6khlb3V05/o8nSSg22w27N69W/Lc7CRlL+wcbe9iQCfyh9raWtTU1Pi8vzwhNg2r5n8VhTlr/TaHu4yPA4AkpDtXZH3Zj65SeEAfusQDutVqFXb0v3nx3UiISQrCjCbm3D/P4Y1PpeXtZrNZeKOopqbGbXB3SlanYMGsBTDmFUGX7K4M/TyS1SlIVqcgDADyLj7SO9CDHUd3YMeRHdhxdIfXP8PokxEqKyt92r9HRETkT77evM5LTcJ3V12LMAAP1rheR4w9Bx0Y3h44tpJyX2s7CvXpk55zMFylT8Wvx4xZrVbJDY3IaVORGhcduIlNwKG2MwzoRBPlcDiwceNGVFdX+7y/PCttPlbN/yqy0+ZDjuYbdxU9js7uVkm5u8ViQXFxsdeyXa6gB1dVVZVkLFWjxcorbgzCbCbu4wNb0NUvvSAQVQeUlpZ6rDiJVkVjdcFarDasRXRENCZ6wkt0RDSMeUYY84zoHejF3pa9I4Hd0+q63W6H2WxGcXExqqurfapEISIimgy73Y6ysjKvCz/qSBW+e/21uLkgD+6+IC/1EncAWKxPk4w1NzdLxjJDoEHckQ6uoBONm91uh8ViQW1trc/7ZBflrMWq+V9DQqz0A8TfvrbyR6j8+1fQN+h65ERVVZX3gK74PeiDwZ6CbJwrtmPdepUZU6Yo+7zOseoFR6uZTCaXBmwOhwPFxcUeLxxWG9bilsLbEB0Rc2HEPze1oiOisTBzIRZlLkTP0l407GvAZttmtHW1uf2Zuro6NDQ0oLq6mqvpREQkC4fDgaqqKlRXV3t8njpSBXOhASWLDSFblu5von3oYwWqQdzpvkF80d2HU119+KKnD61n+tA9MIiewbPoHfWfnqEhl9/3Dp5FD/egE/nOarWOlLL7IiE2DYuy12Lp3NsRFREr8+wuioqIxer5X8HLn7ieoW21WmGz2Tyefxk+TXkf8l+cacGx9sM43n4I+47vCvZ0ZCNaPc+cnov5s64Owmwmbnfzp2g9fUIyPvpoNZvNhpKSEreVJ/naObh/xdeRrE6RbZ5OMRHRWFuwBmsLVsO6twGbG99EU5u0qQwwfOHE1XQiIpJDZWWlT01SbzLk4hvGQmjj1RcWzV1vXuelJmFfa7vLmNVqveSbn86Ij/Ua0OXaf97VP4jugUE8+vcGNLZ0TPr1GNCJvBjv/nJtYg6Wzrkdi3LWIVhnSBZdcRusn7+Azu5Wl/Hq6mo888wzACD8AlBNjQzI/Nw53n4YxzsO41j7YRxrP4jjHUcwIGg0NppOpwvQ7OTjbvX89mu+GoTZTM7ru+olY0ajceTCwGazobi42O0FyGrDWtyz5MtuS/XkVJRvRFG+EXuO78WmbS9hb8te4fOcq+l1dXUeb3gRERF5U1dXh4qKCq/bJQt1WjxkXIRCvdbj89QR3hdbRCfgdA2EdpVifmoi3t4nLWsfLTtFnoCujlRBHRmOva3+OYGGAZ1IwHmURW1trc/7y+dmLIVx7h3ISpsv8+x8s2bBV/BX689cxmpra1FRUQG9Xo/GxkbJzwRyD3pz2wE0fbEfx9oP4Vj7QRxrPzSh17kUzq0WrZ7nzyhAdmqe4NnKdbyjGXtbPpOMl5SUAPAezu9f/nUY85bJOkdfzJmRjzkz8rH9yA48+87vhXvUnSX6DOlERDQRNpsNFRUVXheAtBo1HjIuGt5n7gNtvBpocq1ka2xsdFlBLygoQH296w31fa3tWJEbutdU+akJXp8jZ4n7MUc3hs790+vzUmIjkZUUh6zkOMyMj0FGQgzS46Kh1UTjX+u34e39LQzodPly7vMxmUwjH1p2ux1VVVWor6/3aX95pCoWczOWYtX8e5EQmxaMRT+3CnPWYPPO5ySr6PX19S7lxqNNmypfifv+4zux/fB7ONFxBM3tB8f1s6mamchKm4uP9kmPkQt17lbP1827LQizmZz6HZskYzqdDiUlJR7DebQqGo/f9AT0ycqqhliUuRD5X87H7999FtuP7JQ87gzp3JdORES+cl5retsyObzPvADfKFo0rtfXatSSMdFRa5eaOB/24udO9x7iJ+p03yAyk9SIUYUjNiIc09VRSFVHYfqF/6Spo5CTEifpGTB6m8L+L4b/OTGg02XJZrOhrKwMNpsNGo0GRUVF2LBhAywWi/cfxvD+8oXZ64b3l6sCt798vBbnrMHmXc+5jFksFrcBPSJcvhL3c+fP4ZMDb/r03NT4DORq5yMn7Upkp10BdVQ8+ga7hQHdaDT6e6oBJfqC1iVnIW+GAcHaIjERHd3t2Hr4H5LxiooKj+Fcl6TH4zd9/0IjOOX9eWMiovGtdY9i+5EdqNnyP5JGcg6HA2VlZTAYDJdENQcREcnDWZ3pyz7zYkMeHl+1BOrICIz3u1HUNM7XatBQlpea6PFxXYL0xoU/XZGeiNfLXG/Wh438F+Dtn+PguXNo7uwBwIBOlyGLxYINGzaM/H48x0+kJ+Zg6Zw7LuwvB5QYKEZblLNaEtDtdrvbP7NqmnwBvX/I/VFWibHTMWt6PubMLESudj400YkjH2jOz7V+N0dhhXLTE7vdjtraWsn4DQvuCMJsJuft3W/g/HnXfx80Gg0KCgpgMpl8COfKtihzIfK1+ah6+WnYxzSRczgcKCkpkZwpS0REBAxvMaysrPRpn/kPTStGNYAbv7zpSZKxpiZx89NA6OofxDv7m0Ya15UWLYA6Mtzv7+NtBT1L4Ues7W+9WOXAgE6XDXdnSu7evRuA573MC7PXYVHOOsXsL/dVojoN2WnzJOeij9135CRnQB8c6gcARKtioZ8+B/qUXGQk52DW9DmIiXDe1XR/w6NvsEcyFuqr56JwnhCTjHn6xUGYzcQNDA3g/c/flozff//9KC0tDflw7hQTEY3ym78nDOk2mw2VlZXCs96JiOjyZLVaRyrJPNFq1PihaYXXBnC+iBUEVdGZ4IGijlThyVcuXnvvbe3AH768zsNPTFxcpApn+sXN7rKS5WkQ5y8Hvjgz8msGdLos1NXVoaysTBgU7HY7HA4HDAaD8Gcfv/1/FLe/fDwKZ68eR0CXr0ncgqxlyEk3IEl98Sz48fx/KgrooU60pWLllTciLCy0/rZ9uP8D9Au67W/evBmffSZtGheK4dzJGdJ/8LcfScrdLRYLSktLefwaEdFlzm63o6KiAnV1dV6fq9Wo8UpZid/eOy81WTif0UQn4LSc7vLbHDzZaj+JltPdmKHx/xbR/NQEfGJvFT6m/IB+cQV9ShDnQSQ7h8OB0tJSmM1mj/t9xna3HE3Je8x9kZUq7TBts9mEd3NV06Jkm4dqWqRLOB8vb8ethZqamhrJ38lpU8OxNH9VkGY0MefPn8cbn0pv+GRlZQnDebI6JWTDudPwvvRvSsYdDoewKoKIiC4PDocDlZWVMBgMPoVzYDgYd/UPyDwz1+N1hQHd0S37HJy22k8G7L2c5DoD3V8OjlpBZ0CnS5bNZkNRUZHXLpkARvaOilbRT3SMr+O40iSq06BNzPbpuXKuoE+Wuz3ooUq0en51zjJEqaKDMJuJ2938Kdq6TknGDx8+LBmLVkXjkTWPhXQ4d9In61CUt1Qy7mujSSIiurRYLBYUFBSgsrLS4/MKddIy9vcOHPXrXAp16ZIx0fG6wRLImwFOs2Xs4O4PB9u4gk6XuMrKShiNRp+7Vjr3pQvvKIZ4QAeAK3VLfHpepEq5wUlUQu1uW4LSuWvUd90V8uzJktNbja9LxqZOnSp87uM3PQld8qXT6fzWwlskY56aMBIR0aXHarXCYDBgw4YNHqs1F+m0+I35Zvym5BbJUWjb7S1yT1NRR61tbZJnBX2xXlypOV0dhWiVcnd29w2dHengDjCg0yXGbrfDZDJ5vHuZmbpAMuZsFFdQIC0HD/UVdADITp/n9TlynoHuD/1D0j3oobrXt7q6WjKmS85CRlJmQN6/uf0oTp2e/JfjSccJfHZMGkbPnTsnGbt/+TcuqXAOAClxyZijzZeMs5s7EdGlz2azwWQywWQyeVwQcjaA+03JLViknwFgOKyPtr3JvwFd1GxOSSvogZadrOzrxf2nXG+eKPdWAtE41dTUoKKiwu3dy0hVLEyFj2Jhzg144s/LXB5zOByw2+3CruCOnsDvk/G37DTpjYexImTs4O4PfZdQifvGjRslY0vyVsr+vh/uew+v79qE1tMnRsYSY5ORFq9FevwMJKlTEB+TiISYBOiSZkE1zfNNmw/2SDu3iyzNW4alecu8PzEE5WvzsKdlr8vYRFbQneepl5aWhvTRgURElzqHw4GKigqvWyjVERG4Z3EB7llcIDmbfHluJl5p3Dfy+5bTXThxugvpGvnO6vZ29rqcZmhicfz0xbL2QO9BV/oRawcY0OlS47yw9dSMIz1hNkpW/AQJscN7cjJTF+BI606X5zQ2NgoD+uGTu/w74SARHbc2mipcvgZx/nCpNIkTNYcLn6rC1bOvk/V9D7Xux5/el+6P7uhuQ0d3Gz4XrISnatKhTZiBGYk6pMfPQOb0bKRoUkce37L3fa/vm5Gkx93Xfnlyk1ewOTPy8eK2l1zGJnLerLPbb11dHYqLi1FdXR2yFSJERJeqyspKWCwWr2G32JCHh4yLodXEXTiyxvUY2bEr6ACwrakFNxny/DJPb3vQNRppw7TjMnZx18a7BvRAy1H4CvroI9YABnQKcVarFWVlZR5Li1bOuw/Xz7vPZSw9MUcS0K1WK4qLi6HRaCT7dE50HIQ2Mcd/Ew+C7LQCjwFd6Svol0pAF91IWph1LSJlvkESMYEGgK2nT6D19AnsPLptZCw9fgYM+vmYNmUaer0cfRetisYja799STSFk1NpaanLSkxdXR0aGhpQUVGB0tLSIM6MiIi7Q3kbAAAgAElEQVQAoLa2FpWVlV57Gy3SafGd643Co85GU0dGIC81GftaLx7Xud3uv4AucubMxRAo2tLZEsQALTelH7G275TrDR/uQaeQVVlZ6XHfT0JsOh5Y80tcP+9+yWOifejOO4uXYid3ANAmee7kHoor6KKKByVzOBzCM+ivnb1c9veemaTHD+/4GVZcsRaxkRMvoTvhOI7Nn9bj1Z0veX3ufcu/gWR1yoTfKxTka6UXU+PZgz42nDs5HA5s2LABJpOJTeeIiAJo9Oq41WqFyWTCww8/7HWf+b+vX4ffmG/1Gs6dls+e5fJ7f+5DXyTYg345f5coPaAfauMKOoU4u92OkpISjx80C7NvwA2LH0W0ShxE0gXHjjkvqouKiiQX2J3d8u2V+axpC97a9We0XFilf2jdz2U5e12bkOXx8QgZz0D3h4Gz/cGewqSJwrkmOhF5MwLTjV6bmIG7l96Pe5bej5bOZjS3H0VT21E0tx+Fo7sDp3s70eenSoWlecuwILPQL6+lZL0D0t4IotJBEXfhfDSr1Qqj0Tiyms6ydyIi+TgrM2tra1FdXe3TPvO7FxfgIePicb/XdbmZ+E3DxQq1QOxDV5Kt9pNuu65P1Jn+QcmYJkqFpBjlVokOnjuHk2dcr70Y0CmkWCwWVFZWemwEt37J9zFX57nJUkJsOhJi09HZfcJl3Gq1Co9aO9Iq3z70z5q2jBzl1tJxEG/t+jNuuqrM7++TqE5DlCoWfYPiEiaV4kvcQz+gi8rbC7OlZ2kHgjZhJrQJM3F1jmsVQlf/GZzoaMaxjiY4ejrQ1X8G3f1d6B+88P9/GHC49QCGzg25fe2MJD3uCsK+86a2Jvz+3d+hqb0JD674Oox58ldYNLU3S8Z8Of7Pl3A+WmVl5cgFI5vIERH5X2Vl5cgpQKtXr0Zvr+fmtHcXFuAh41VQR0Zg7B5zX+SlJkMdqULXqFDpz33oealJ2Nfa7jJmtVov6e+QLkFAV3oH932t0uPvGNApJPjSCC4zdQHWL60YaQTnTXpCjiSgu2sUJ+cKemKs693D7QffkCWgA4A2MdvtPvSIcGUH9MEQX0G32+3CFfSrcpTV3VwdGQe1di5ytXOH+9qM4ejtxPf+8ojH17hv+TcCvu+8qa0JT71cid4L3f4b9lkDEtAnwlM4X5y1EFsP7xA+5jxGkk3kiIj8R3SN6SmcL9LNwL+aVg43gJuk5bNdu7n7cx+6OkLZx+fKoa1HWgWYlaTsDu5jy9sB7kGnEGC1WlFQUOAxnK+cdx8eWPtLn8M5MNwozt17jdXZfRL9blaeJysrzfWM8r7BbnzWtEWW9/J03FpEeLQs7+kvod4kTrQvOVmdiozkwJx97i8f7nsf5z2sFNy86PaAn3feO9CL/37jP0fCOQDokgIzhz3H90rGPK2gewrn9y4rwbfWleKnX/oB9MkZbl+jrq4OBQUFqK2tHf+EiYhohM1mQ1FRkcdrTKfc6cl4xnwrnjHf6pdwDmDkXHQnf+5DF+2FH0+PFH9arPNvKbs70eHStedMhe8/P8yATqGmvLwcJpPJbUl7Qmw6Hin+I1YKGsF5I2oUt3v3bgDiC+wWmRrFxcemSsYOe+i2PhmeGsUpv8RdGtBF2xGUSvTlf9VsZa2e+8K69123j2Uk6XFz4foAzmbYf7/xX2jranMZW1OwOiDvvbdln2RMdJMP8BzOv7z0Lqy6cjkAQJ+sw0/ueBJfXnqX2+77DocDDz/8sMdGmURE5F5NTQ2MRqPXz1B1RAT+1XQ9au6/C4t0Mzw+d7zGNopz7kP3h7Fnr48lutbdZj8heGboaOqU/n+n9BV0BnQKGTabDUajEdXV1W6fc+2cO1FW/AekJ86e0Htkps2XjNntdtjt9oB2ch9b4g7IF9A9NZ+LVPwKurTEPVRWEN11b5+nvyoIs5m4gyf3o63rlNvH71v+jQDOZtjGLTXY27LHZcyYVxSw7vF7WnxbQfcUzm9ffDPWzVvlMjZlyhTcMG8V/t38fzFf735F3mq1wmAwjOybJCIizxwOB0pLS30+xjI3NRk3GebIMhd1ZAQKx5yJPvrotcnIS02SjFmt1pFf+9rQNJQcbZeGXcWvoLdLbypwDzopjvdGcGqsX1KBubrJrz5mpi3AkZOu56E3NjZCr5eWx8p51FpW2jyXUN7ScRB9g91+7+buqcRdpfA96KHcxV3cvT0h9Mrb97/v9rHh0vZZmEijnInacWQHNje+4TIWrYrGPUvuCdD775SMaTQayQq6p3B+4/w1uG3xTW7fIyk2AY+bHsW2wzvxp4b/QUd3p/B5bCJHROSdLycBjbW96Th2NB3HQp306DJ/WJ47C9tGlbZvb2rB8tzJXx9cjnvQ+8+ek4zpEuTtit89MIRTXb041d2HnoEh9AyeRffAEHoGhzAwdA5jG/r0D51F18AQuvqH0D0whANfsEkcKZivjeDuWfFTRLk5Pm280hNyJAHdarWiuLhY8tzOHvkaxWkTcySr5ic6Dkn2p/tDYmwqOrpbJeNKPmZt8OwAzp//Z7CnMWGj71g7LcxcEoSZTNzQ2UF8fEC8d224tP32gM6nrasNv3/3t5LxWwtvC1iDuu1HpM3cxjaZ9BTOVxtWwrzkTp/eqzBrAa6YOQd/+3gTNu9+F+fPS2+EOJvIlZSUoLKykk3kiIhGqaurQ1lZmdsFIHVEBLoGBoSP/bbhEzxjvlWWeV03OxM/e+vDkd/vH9N5faJyBSvowdqDHgif2KXX6dkyrp63dfehcvMO1H3m/21mLHEnRXA2PfLWpOOGxd/yWzgHhlfQx9qyZYtwb/Phk/IdtZYgKHN3121djvcCgHA3e10DzdHThiOte/DJ/rew6eNn8atXn8APN34t2NOalC1bpE3/rtAtDMJMJm7H0a0YPCc9vgQITmn7f7/+Xy5N4QAgX5uP1QVrAjaH7YIV9JKSkpFfewrnxtxr8bUi87jeL0oVia8W3Y3/784nPTaRq6mpYRM5IqJRysvLYTab3YbzYsMcbCr9KtQR4msh5yq6HLTxapdy9G1+ahQ3fPybMnjbD+8Pxx3SZs5yBvTk2Ch09olv6EwWV9ApqBwOB6qqqjzuNR/toz3/i/VLv++3909PlDZNs9ls0Ov10Gg0OH3atezkRMdBYff3ydIK5tHSccjv7+N8L1H4D3STuOPth3H01B4caz+Els4jON3TjtO947tr7Mt508Hm7Gsw2pSwKZidfkWQZjQxr+96WTi+ynDDhdL2wHlp24toanf9/zRaFY0HVjwYsDlY922R3CDQaDQj1TeewvmS3Gvw8KoHJvze+uQMVH7pB6jftRl//+QVDJyVXiA4m8jV1NSgurpauG2HiOhS53A4UFJSIqxkA4ZXzb+9qgjFhjkAzuO63EzUNUp7iwDAbxu24hmzf5vEOS3SaV3OLN/e1CLZmz4RWo0aLWOazgXjLPR8wWr+Yr1/O7u3nO6RjM2SuUGcqDxdJHLaVGQmq6FPUEOXGIuU2EjER0UgKnwqvvk36SIOAzoFjc1mQ1lZmcd9QPGx6XCMOqt8T7P4A3aiEmLTkRCbJjnn3Nl4aWwpUGf3SVkCuuhGgVwBPUolLv9VybiC3tHViua2Azj6xR7YT+3DkVOf++V1Q6HBiaicLCd9LsKnhiOQ+7Unw9HTiWMdTZLxJHUKbl4U2K7te1v2YtO2FyXjtxbeFrDGcADQsFf6hWoymQB4D+el1088nLu83/zVuCanEH94vwY77Y3C5zg/yyoqKlBRUeGX9yUiCgU2mw3FxcVuV83TNXF4ev2NyEu9+N3xoPEqtwH94l50/4f0YkMearde/BzfbvdXQI+VBHRPugbElXL+FifDirqoxD0rSb7rxK7+QfQOnkVGQizio1RIiY1CVnIcdAmxyIiPRVJMJDSR4dBERyBaNQ2iaz7bcenClEajYYk7BYfFYoHRaHQbziNVapiXV+LGwm+5jPcPdmHnodf8OhfRcWsNDQ0B7eQepYqVlJ53dp9Enwxnr2eni/e1y7mC3tj0Ef7fuz/Fe7tf9DmcJ6vTsSj7Onxp6SP43q2/RHbalbLNT06iv+N5WuWv/I/2+3fFFS53XfuVgO33Bi6cd/76f0rG87VzsLpgbcDmsbdln7B7e0lJicdwfl2+EaXXP4CwsDDh4xMx3ETum3hs3TcQH+3+QqSyshIGg8HtKhIR0aXEeZ3pLpxfNzsLz913N3JTXW/sajVxHo9S27hVnu2HeanJ0GoubuHcd8o/ndy18dJtoY2NwzcCRKvo+/y0/92bFbn+Pya3xSFdQc9JkS+gqyNV2P69O/HWN2/G3x9YB8tdy/D49fNx18IcLMlKQ15qPNI1MRfCudghwRFrBoOBK+gUWN5KjQBgTsYy3Lbk+4iKGP5QkayiN1mxIPsGv80pPTEHGLNYbbPZhB9cLZ3ydXJPiE2VrOTL1ShOJCJcviZxojPMR4sMj4Y+JQ/66XmYlZIHfUoeYqKGy5KcUUaOmxWB4PwiHE2f7P8qDLn0DvRgX8tnkvE87VwsyCwM6Fx+/+7vJGXlgS5tB4AXt74kGbvmmmtQVVXl9rPt+iuW477rvizbnK7KWghDxlz87z82YXPjezgvuFPPJnJEdKlzOByoqKhwe6MUAL69sgh3L54v6a7t9KDxKmyvlVZqAcB7B47gxOkupGv83xl8ee6skVV0fzWK02qkpwGN3b4ZDLcU+P866Php6XViznRlf8+JAnpRUREDOgWOt+6ZkSo1VhTchyVz7nIZn5NRhI/2/O/I7/c0fwBH90m3zc7GK1MQgLds2YKysjLJ+NgA7U/ZafMlndw7uluR5ef30SaIX1HOFfTBMWeYZyTPhj5lOIzPTJ6NtHhnwyv3Jd/9Y4JZqBCVuM9ICp39wL99+7+FYe/eADeGe9P2BnYe3S4Zf2DF1wNa2t7U1iRcPT927BiOHTsm/Jm1BavwZePdck8NUapIfG3Z3SjKvwa/eefPaG4XNzSqqalBfX09qqqqYDaPr1EdEZFSeds6qY6IwFPrb8Qi3UyPr7NIN0O4d9vptw2f4Iem6yc937GW52aOBPSW011+uRGgFfz8eI6Y87e4SBUeX3WV3/ef7znZIRmboYmBaupUv76Pvx36QhrQdTodAzrJz5e7mWkJs3HbkieQnjhb8ti1c77kEtCB4b3oS+b4djyRN1rBezocDuH+ZjnPQk+ITZWMyXFDICpCfLa6nF3cUzQzcOPCryIzdS5y0i+Wd4+n0LdvUFq6pPTznsc2hwOGewBoohOCMJvxa+v6Ap8dk5bzrTLcENBQ3NbVhpe2vSAZXzhrERZmLgrYPACgZsv/SMbCw8PdhvP1i2/xeM65HLKmz0Lll57Ea5++hb9vrcPAEJvIEdGlraamBhUVFW4XgXKnp6D6nvU+dxP/uvEq/Fv928LH6hr34iHjVX5fRV+k00IdqUJX//A+8H2tbbIE9GCsoBfq0/Bfd6zEyjznd41/e/C0CFbPs1OUvXoOiJvM6XQ67kEneTlLxT2F82vyv4Sy4j8Jwzkw3Mht7D7xnQdf9es8swTHrTU2Ngb0uLVANooTkbNJ3NW5a7B6/t0u4Xy8RAFd6ZqapI3VMpIzgzCTidm09a+SsWhVDG4KcGO4X73+n5LS9mR1csBL293tPR8aGhI+v2Tp3bitMLDh3GnKlCkwLViNn5t/hAV69//eOZvI+XqSBhGR0pSXl6O0tNRtOL+rcD6eu++ecR07tmx2ltsj14DhVXQ5LJ998RrBH8etxQpuSDQ3N0/6dSfiYjj3v72tnZKxLJk7uE/WwNlzaOqU3lgoKipiQCf/c35AVlZWwmg0ClcRgeGS9vtW/wo3Ln7M62suyLnR5fcnOg/4dTU7M3W+ZMxqtQoDulxl7lpBd/j+AO67jlSJV9aV4Ow5cQBSOmF5e2JorFS2dX2Bjw9KO5WvMtwQ0MZwoiPVgOHS9kDOAwBqtmz0+bn3LvsK1hWslnE2vkmKTcD3ih/BuoIVbp+j0WhgNBoDOCsioslzOBwwGo1ubzCqIyLwgxtX4TvXLxv3a6sjI1BsyHf7+Pv7j6C73/9nYC/PnTXya3/sQ88THG/m7ro8lIlK3JW+gr6vVXpDyZk7GNDJr2w2G6699losXboUlZWVbp83J2MZvn3b35GZttCn112QfQMiVa5lOjsP+W8VPStNGtC3bNkiLKF2yLgPfWxI7+hule29Rps6JRxTwpT7cRCq+89F+7xCJaC/sv3vkrFoVQyuN6wL2Bya2pqEpe23Ft6GfO2cgM0DGD733N4mrYgYKwxhKL3+67j+iuXyT8pHO47a8ObuD4SPaTQa1NfXo6CgIMCzIiKaOKvVioKCArf7qZ0l7cWGuRN+j7sWu2/S2zUwgI3b/N/RfXlu5kgZvj9W0N2x2+3CRahAdXH3N1GJe06yso/iPdwu7XHAgE5+V1dXh7Vr1+L48ePCztXA8Kr5bUuewD3LqxClGt++mrGd2/15JnqaoLzcbrcjOTlZMn64VZ4Sd0Ba5i5nU7rRIsLlaxDnD/2CLvCiLxalEe3zio+R3s1WmrauL/DRfmmgC/Tq+R/e/a1kTJekxy2FtwVsDsDw8W41Db6tnpetfghLcq+ReUa+e+fzBvx7fTXO/fOc5DF34fxSXF0hoktHZWUlTCaT25J2k2EOfn3PeskRauOl1cThutnuW/Vu3GqTZRV90ajzz/e3Tv64tUJdumSsqalJeB3l3P8eakQl7rOnK7vfz6E26TWic2GQAZ384j/+4z9gNpvR0+N+n3BawmyUmv4fFmSbJvQe145pCtfZfQJHTu6c0GuNFaVSDx+3NkZnp/Rf+BYZG8Ul+qkzvSd9A9K7jHJ2cPeHgbOhGdBFwqf61qAmmD7a/75kLFoVg+uvDNzquai0PVoVjUfX/UvA5uD04raXJHvgx5o6ZSoeW/dNXJNzVYBm5d1rn76N3737F+FjBoMBjY2NknDuPC/dUwUUEVEwOBwOmM1mj59Pj60swg9uXD2u/eae3B2EVfSbDHkjv5ZrFV0JR635yyd26WKWt/PHleBIm3QF3dmgmgGdJm39+vX40Y9+5PE5ywseQGnxn5AQK72L5yths7hDr0349cbKSpU2ijt3Trrq1D/YLdve8ECceS5qPBcZHi37+07G0NnQvKMrEj5N+QH9wyCvnu9r2SMsbb97aUlAu8cDwN6WvXjD9qbH54RPnYbHTY9hUab0MyRYnv/kFTzX8DfhYwaDAfX19S7noDscDphMppEL38rKSo9Nl4iIAsnZdLiurk74uDoiAn++14y7F/v3c3iRbgZyp0urKZ3qGqWNQydrdJm7P/ahF+ql197uKl1DUYtDek0+W+H7zwHxGegGw3BTVwZ0mjCHw4HZs2fjrbfecvuc+Jh03Lv611gxzz/dlsc2i/vcj2XuohV0Z4fjseRaRY8fc9RaVIAat6nCowLyPhN19tylE9BVCl9B33l0K9q7vpCMB3L1fOOH0lMfluYVwZgX+GP1vDWGU01T4XvF/wdXzJz4Pkd/+8P7tXh+q/giVhTObTYbCgoKYLW6fp7W1NSguLiYJe9EFFTePosW6mbihYfvm3RJuzv3eFhFbzndJU9Iv9DNfd+pyZe4X+pe+/yoZEzpAf3cP/+Jo4I96AzoNClvvPEGcnNz0drqvonZ/GwTHi7+k8+N4HyxIPsGxI9ahe8f7MKeJv+E9EzB6nVDQ4OwlFqu89ATY9NcQnkgVtQBIGKasgP64Nn+YE/Bb5S+gv7RPml5+5Lc6wK2ei4qbdcl6XHPkpKAvP9om7a+hCYPjeGiVFEov/lx5GlzAzgrz377zp/x1m7pP0MAMJlMknBusVhgNBrdrpQ7V63GhnciIrk5HA6UlpZ6rOZ5cOnVqL7ndr+VtIuYDHM8Hrn2OxmOXCu+UObuj6Ztok7uVqt1pJx6tK6B0FoQ2dvagY+OnJCM56Qou0GcvaMb5867ngWv0WhGvp8Z0GncrFYrHnjgAfT3i0NTpEqNu6+rwm1Lnhx3IzhfLJSpWVxCbLrwqDHRB5iczducjeKiVLH4kvFx2d5nNKWHxv5B6R70UCA6Zk3pe9B32bdJxpbkjv+ImonoHejFm42vu4xFq6JxfxCOVGtqa8KL2za5fTxaFY0nbi1HTqq0wWQwnD13Dr947Rm8t0d6NB4AmM1mbNy4ceTL37mXc8OGDV5f21n+brFY/DpnIiJ37HY7iouLUVMjragChkvan7qtGA8aA9OU09ORa3KsohfqtdBqhq+ht09yH7q7mwui0zv2hlgX9yde3oJz/zwvGVf6Cvrhdvfl7QADOo1TTU0NTCYTzpyR/sVyys9Yhjm662SbwzVjmsX5s8w9K026d2nq1KmSsROd8jWKy06bj0U5a1B+x19kKXHvE+yfj1D4HvQBwQq6aOuB0ohu7ij5TPedR7dKxpLUKcjTBqZ8+83GNyTN2O5eWgJdcuCPpvv1m+7DaFxUHH5w2/ehS8oI4IzcGzw7iKq6/8LWw+KmmWazGc8888zI773t5XRnw4YNKC0tndRciYi8qaurQ1FRkccj1P58nxnX5QbuBqmnZnHAcEd3f3Oeid5yWloKPR7pGum1pGgBIdQ8tXmrsHs7AORMV3ZAFzWIY0CnCXGWGXmz61A9TnYckG0eUSo1FmRf3Ivu1zL3VOl56EeOHJGMydnJfdX8r+JLxg2y7T8/dFL6JaL0JnEDgmPWRpfpKpWwf0Gn97O0g2V/y+eSsbz0wO2t3rLf9d/jWwrXw5gXmNX70ao3P4OTDnGVTFJsEn64/gnMSNQKHw+0vsF+/HjTz/H58X3Cx8eGc297OefrrsBTdz2BmYnihp41NTUeS+KJiCajsrISZrPZwxFqc/Gre25HuiYuoPPSauJG9oWL7D/Vhh1Nx/36njf5qcxdG+//atZge+LlLfjzJ3uEj+kT1VAJFteU5Ihg//no61oGdPLKWd7orswoLEz61+jFD38i65zGHrnmrzJ3raBRXHNzs2RMzk7ucuvslvYNiFQFtnx4vIbO+f+c0UBwnmc52vEO5Tbc2nFEuo9uwazCgL1/26jmdEvzigJ+3jkAbNr2Ej4+9LHwsTRNKv51/feREhfYTvLudPV340cvPo1Dp44KH7dYLCPh3NtezilhU3DPtbdiQ/Ej0CfPxE/u+B4WzhJXqTibyrlb3SIiGq+xJ0mIPHnjGjzpxyPUxsvbKvpvG6RVaJORl5oMrUbtl07uznL50ULxM7yrfxC3/+4VbLJJTyRyUnp5OwAcEZS4G43GkV8zoJNHNpsNxcXFbhsEzUpdiKVzpc2bTnbuxz/2/FW2eaUnznY5cs1fZe6ZadIVdLvdjsJCaUiRcxVdTh2hGNBD9Jg1UYNBJQf0zh7pRUBu+pyAvf831zyGBbMW4ptrHsMDKx4K2Ps6vb37Hby4VbzvPCMpAz9Y/wQSYhICPCuxzh4Hfvj8U2huF6/YWCwWlJQMfzY7P8fd3WSNi4rFD2/7Dm5ZuBZhYWEAgMjwCDx+48O486pihCFM8jMOhwNGo9HtaxIR+cpbM8p0TRz+dG8JTIbgnpbh7ci17U0t2O7nVfTlubP8cha6VlDmHmpnoW+1n8SaXz3vtqzdabbCy9sB4LBgBX30NSMDOrlltVpRXFzs9g7b/GwT7l1TjVULH0FawmzJ4+/afi/rKvPCnNFl7t1+K3MX7UOPjpaWgB85ucsv7xdoXX0dkjGll7gPhegxa6IS9+Ptygzo+wTl7RlJ+oA2Z1uYuQiPrv02FmYuCth7Oln3NuDP1ueEj+WkZuPJW8uhjgzMsYfetHW144fPV+Hk6VPCx0eH87q6Oo+f47lpWXj6rieRly7dyxkWFobbF9+Ix00PIyJcvGLl69YnIiIR50kS7rbdLJudjT/dWyLbEWrj5enINcD/e9HNhcON3E5Mch+681z10ZqamoQLCZPd8+5ve1s7cN9zb+De597AmX7v14NKX0HvGRxCZ6+0MlSvv9hvhwGdhJzN4NztAbp1yQ9w65IfjPx+XeG3Jc/pH+zCix/+WLY5Lsi+AQmjjlzzV5l7eoK0zL23t1cyJmcnd7nsbvoQXX3SO49KD+iDZ0OzxF3UIfXU6RZF7kP/7NinkrFktTIuiORm3duAZ9/9vfCxfG0+ym/+HqJUyjiKsKXzJH70wlNo65beaANcw3l5ebnHvZw3L1yLH972fxAf4/k4moWzDKi8sxypGvHfB2/fF0REYzm33Xg6SeKBpdfgqfU3Ba2kXaTYkC8sF3d678CRSYfp0bTxauSlJk16H7roqDW3Ad2hjC2cLY5uPPlyA27/3Sv4xO77NXeOwgP63pPS78qxCzoM6CThaUUkUqXGvaurMT/b5DKembYQ1+TfJXn+3uYPcLRV3FnYH66d86WRX8tZ5j4wIA2InT2hF9Bf/ljcmVrpJe6igC7qkK5EJpPrvyvncR6vbv9bkGbj3mfN0oqQjKRZgZ9IgA2H82eFj+Vr8/Hd4u9ANS08wLMSO9bRgn978Wl09ki/3DUaDRoaGlBSUjJSfl5dXS18nWhVFDYUP4J7rr0VU6b4dhmgTUhF5Z0bcOXMPOHjVqvVY9dlIqLRSktLPR6h9ut77gjYEWrj5enINcD/e9FvMuRhX2ubX18TgCJvqnb1D+Il20F862/vYs2vnve413zmzJnCcaUHdFGDuLHXtAzoNMJbM7i0hFzcu+rXmJW2UPj48nkPIjJcWgL64hY5V9HXIfLCWev+KnN3nkM+WmNjo2TscIiVuG87uFm4/xxQfkAfEgT0UDhmDQDKysokYzuPfIRTpye/p8xfhs4OoqXzWLCnEXDWfe7D+ZUzr8B3i7+D8KnKCOdHTtnxby8+je5+6cqGRqNBfX09CgoKYLVaPTZwm5Wcgafu/gHm668c9xxiIqLxxE2P4qYFq4SPezu3mIjIqbi4WOZAvo4AACAASURBVDg+e3oK/nRvCRbqxOFLCe4unOf2bHEAeKVxr19X0W8y5GJ704lJvUahTnryiOjaNlje2d+EJ19pwLU/r8UTrzTg7X2eKw0NBgN+/vOfS8bzpiujT4wnRzukfzfGNhVmQCcAvjSDW4R7V1cjLTHX7WtEqdRYt/gxybij5wTe+1RcPjpZUSo15mZc/EvtjzL3hNh0JMSmScZjYqQh9kSINIrrG+zB5p3i/bUAEBmu7IAeqiXuwPCH7tgSsvM4j+f/8acgzUhqx9FPcO6f54I9jYBq8BDO5+nn4ds3PqaYcL635QB+vOln6B2QbrUZHc4rKys9lpqvumIZ/u8d30OyOnHCc5kyZQq+vHQ9vrX2foRPnSZ53Fm2Wl5ePuH3IKJLX0lJibASLnd6SsCPUBsvdWSE11X0jVul28Ym834/v32N317P6cwZaSfxQHGulD/5SgOW/LwW//K3d7DJ5v2aWqfTwWKxYMuWLdi1S7pQlpuq/IAuWkEfe53IgE4j4dxtM7isYty7unpkpdqTBdkmzEqVNln7aO9f4ZBpz/aKefeN/NpfZe7pidKmd6mpqZKxlg73pTdK0TfYA8tr33W7eg4AUQpfQT8bok3inCoqKiRjjU3b8OLH7m+aBNI/Dvjn35tQ4SmcL8pciG+texTTBOEzGHYf24OqV36BATfbPOrr66HT6TweT6SaFo7H1j6EB5ab/XbTYcnsRfjJnY8jKVZcSlhdXe1x/zsRkajC7IMDh9At2FaoNHcvlvaYGe2Vxn3o7vffn2Oy+/DzUqU3ZoOxJcnywU7c/5fXsOTCSvkm20GfGr85g/nu3btH+qyIGguGwgq66Ig1BnRyUVNTA6PR6PYiau2ib7s0g/PFukLpKnr/YBde2/afE5qjNwmx6SNHrvUPdvtlVTszVboPferUqZIxuW46+NMzr33X640EpZe4D4Z4QC8pKRE2YnnT9hLe/+z1IMzooq6+M/j8mPhLunewJ8Czkd+mbZvchvOrc67GN9c8gqlTpP+uB8P2I7vwdN0vMXTurOQxg8EwUp7oLG0XSdNMx0/v/D6uzhFvTZqMWckzUXVXOWanZQof99ZBnogub6WlpZJV9K6BAfx1m3y9i/xFq4nzuIreNTCA2m3K+exzF/D7+/sDOo9q6y5sHUfDN1Ewd2pqkpbBh8IRa0fapCvobBJHI8rLyz02g7vruqdxzZy7x/266Ym5AW8Yt3LUKvrOQ69N+vW0idJO7h0d0q7Jh1uVvQ/9r9af+bTKHx3hvToimAaHAvsFIoeqqirh+F8/fBYbG36HgSD9Gf9xwIrz588LH2tuU+aRcBP17LvPYtM28TnnV+dcjdJV3/C5aZrctuz/B37xerVw64HBYEB9fT02btzo8QbrtTmFqLrrScxITBc+7g9xUWr85I7v4vorlgofd1Zo1dXVyTYHIgpN8fHxwlX0v27bGRKr6Mtni29OOm3cavPrKvpkiTq5Rwj20m+b5H53T2YIzmMfS6PRoLS0FA0NDcJg7tTQ0CAZU/oKenNnN84Jrrni411vLCjjSoQCyuFwwGw2u+3wGx+Tjq+tqkZ+xnUTfo/l8x4QNox7YctPJvyanmSmLRhZRffHPnRRJ/f2dukRFy0K3YPe2d2KX7xUim0HN3t9rmqaco4vcSfUS9yB4YY4Fou4i/4He97Aj5//Dg6d3BvgWQGfHNzi9rFmhZ7ZPhHPvvssGvZJv8yBi+E8LCwswLMSe2v3e7C89QfhjRODwYDa2lqUlZW5PZ5o2pRpuP86Mx5d+yAiwqVn38rhoRVmPLTCjKmCGxzO7xx3JfhEdOmz2WwjfTJMJhMMBgN0Oh3eeustyXO7BgbwwX5lbyHcuPVTfPcFzwtCXQMDeO/AkQDNyLsVuXrJ2KlTpwI6B228OKBrNBqYzWbU1taiubkZTz31lPCoWidRZVZ8VASmq5V5bHBX/yCOtnfh7X3HJY8ZjUbJmDI22VHA2O12lJSUuC05TEvIxdd83G/uibNh3KYPXQO5o+cE3v3091gx74FJvb7Ikjl34kjrTnR2n8CJjoNIF6yCj0dW2gIcPul5xb9/sBv9g92IVHm/Ixgo1s9ewJu7nkPfoLTbc1xcnKQpiJLm7s7QuSHJWKgcszZaSUkJmpqahEGlvesUfvbKk1g2Zy1WXHkj0uJnyD6ftjOnYG877Pbx3sEe7Dq6DfNnFco+Fzl5CudLc5fi6ysfhEKyOV7/9C38ZctfhY8ZDAY8/fTTKC4uFu69A4Dk2ER858ZSzErRARBXRsjl+iuWQpekxdP1z+BMn/Tzp7KycuTv/9jVAiK69DgcDlgsFtTW1rr9zNq6VXwk2bNb/oEbDXPlnN6EdPcP4N/q3/Y5eP+2YSuKCzw3lAuU4U7uO1zGmpubgzOZUaqqqoSVFJ6IytvnpE28Aep4dQ8MobN3AO09/Wjv6b/w6z50XBjr6B1AR88A2nv70dHTj7P/dP99LLqeZUC/jDhLDd2VQ87PKsYtS/4V/rqoW5Btwq5D9ZKy9o/2/i8WZJsQL+iUPhlzdEVIiE1HZ/cJ7Gm2TjqgpyfkSAJ6UlKSZCW9peMgsgQr7oHWN9iDP73zQxw66b5z6AMPPIBf/OIXLmNRIRDQRSvonu6sKllFRQXsdjtqa2uFj3+w5w18sOcNzEychatnL8PiHCM00fKUbH1yyP3qudNbja+FdEAfDufiqpqL4TwMgQ6zIn//5CVs2iYuBTeZTFi8eDFuuOEGtz8/T3clHl3zIKIjouSaole5aZl46q4NqKp7BvY26UpBTU0NGhsbUVdXx5BOdIlyBnOLxTLhRpEnTp/Bq42fKyqk729tw+MvvIoWN0eoqdVqdHW5PtZyugt1jXtRbMgLxBQ9KtSnQx2pQteopmyB3oOujpBWdU1kwUV0RFzeJDq49w2dRUdPPzp6+9F54X/bewbQcSFgjwTvnn609fRj6Nw/J/xeY4muZxnQLxM1NTVu95sDw83grplzj9/fd13hY3im/msuY86GcfcsF+/JnYyV8+7D81t+ij1NVpd96RORmTYfW/b8zWVM1CjuRMehoAb0vsEeNHz+AqyfvyBcNXeyWCzQ6XSCgK6sBnGneztwrP0QjrUfxLG2Q2huP4QzfZ3BnpZfPfPMM9Dr9aiursbp06eFzznWcRTHPj6KFz5+DqnxWsxKyYE+JRuzUnIwM2mW8Iir8dp26COvz9l34nPsa/kceVrlXCT5yms4X/GgYsra//h+Dd7+7D3hY3fccQf6+/vxox/9SPj41ClTcM8163HjgtXyTXAckmIT8NM7v4tfv/UcPjywQ/K482ZxTU0N9HppySURhSZ/BPPR6ncrJ6B39Q+g5I/i6ibg4vaj8vJy1NfXuzz2W+tWRQR0ACjUpePd/cHbvpafmoh39ruufotWw70RNUbNH7X/fPDsueGwPSpYd/ReDODto4J3R08/eoekzVgDZWyDOIAB/bJQXl7udr95pEqNW679AfIzlsvy3s6Gcf/Y6/qhtudCwzjRkWyTsSD7Brzz6R9xovMAHN0nheeZ+yo9MVsyJtqrE6yz0J3BvMFLMNfpdKitrXXb6TmYK+id3adwrP0QmtsO4lj7ITS1HUB3/+VxLFNFRQXMZvNIIxR3zuM8TjqO46TjOP5x4P2R8WR1KlLiUpESl4a4qAt3n8OAKWFToI6MQ2ykGlGqaHT1n0ZndweGxlQhDJ0dwLEO6ZeiVqtFS0uLy9gf338GVff8chJ/2sDqHejBf7/xS+xtEe/pXzF3Bb627GtQRjQH/vj+X/D2Z+8LH7vhhhuwdetWt+WhiTHxeGzdw8hJ9dysKNDCp4bjsbX3I2u6DjUfviTZT2+z2VBUVIS6urqQrYYhoovq6upQVlbm16MVdzQdw86mY1igm+m315wo59nndY3S75XS0lI89dRTAIaPjhsb0FtOd2F7UwsW6bQBmasnK3JnBTWg+4uoNP/Zjz6DpcGGjp5+dA1It0YqFUvcLzMOhwNlZWVuu+fGx2hx13VPIy0xV9Z5LJ/3APY2vw9Hj+uxCi9s+Qm+s/55v7+fcxX9SOtOJMS6Lwf1JiE2HQmxaej0cpRaZ09gj1rrG+z2KZgDw18aFRUVI6WkotXaQAT08+fPo73rJI61H8CxC2G8uf0gegfEZWKXC71ej1dffRV1dXUoLS11u5ou0tbVirauVuw57r9jXAwGA8rKyiTVNu1dX+CP7z2D+5Y/7Lf3kkvvQA+eerkKTe3iO/JrDGtgXmoO8KzEzp8/D8vbz+LD/R8LH1+4cCFee819E6IrZ87Bv6z5OmIjlVUFM9rNC1YhKyUDP3/tWfQM9Lk85nA4Rjq8M6QThS5PC0GjFeVkY2V+LnJSkjFdHYvwqVPReqYLR9s78Onx43h+x6cYOud6ckX97s8VEdABuA3oxcXFI78uKiqC0WiU3Hj/rXXr/8/emYc1daV//ItACGsA2dWwIyiJICAuwV1rJe62WrCtWxfsTNtxFkl/XbTLgO1Ml2lL7KZtZwhdlLYKtta1giuokCgqoJig7EvCZtj09wcGuNx7kwBJQL2f55lnyjnnnnNAuDnved/3++Kz+CVG36MuIrnGq+qhD/Zscoh7fy91lEol5aV1cfXwd/D0FoSLiYkh/H9vGAP9AUU/MTjxoMXg9MGaZY8FkS/juz8SCe3GEowLHiMAm2WHAkUWJvoP3EAHAE/nQJ0G+vUK05Raq2+qRFbBHpwr/l2nYc7hcCCRSEh/9FQ5O4Y20O/cvYMa1a17YepFuFnTFa6ubm8x6DoPEkKhsDvkNyMjg3T7biri4+MRHx+P1NRU0uHiZOEfcLF3xaLIFUOyN33QZZwvjVyKpZFLTbwrajrvdCLl4Bc4cy2Xsn/06NE4f54cHg4AZmZmWBG1CEsjHsUIs+FfjCV09FgkPfYPvJH+IepbiJdQjJHOwHD/IpVKsWnTJtqzJgBYWVhgaRgfT02OhpONRh+jJ6LGe6QzvEc6Y0ZQAPxdXPDOr8TqM5myAmyYNhmeHAdjfAv9IoI7CkFuLiisqiG0p6amEs5bIpEIsbGxhDHnFGXDwovu5WiPse4jcbWSXJnIFARTlHqjOptqo7/jjQmVwa2tXV8YA/0BRJcY3IR7YnCmDO8M4c6Aj3u4SQTjrFn2mBryOI7k7xz0XJ5OAShQEMPCLSws0NFBzFUxhGo8Hdcr8pFb/Dtyiw/oHMvhcLo9oPoKMFlbDdxA77zTiSqlopcxXoxbddfR1mFY0REulwsejwc+nw+BQAAul2vQ+YcLGgNZqVRCIpEgIyNDa/i7odEcKJKTkynLfuw9txstbc1YNfVJk+1JX3QZ53FT4zCfP9/Eu6Kmo7MDH/++A+dKqC/3OBwObt68SdnnYG2PF+c/h3GjgjAchO30xcPRFe889je8+fN/UKGqJvQxRjoDw/1HamoqRCIR7VmTZW6OpeET8GR0FJxt9YvyieWNx1cnTqOiT7WZ/bICbBBMHvSeDcETUROwLfMwoU0ikUAkEnVrasTExIDL5ZJyq9NypENuoANdXnRtBnquvBzov01pMox5LjKWwd1fGAP9AUOXGNz8iM2YHLLahDvqYenUV/HhT0Tvm7qtET+dfBvr5n9i0LWmhKzEycs/oECRhXHcgf8h+XmE4XAfUXRzc3OSgV7fVGk0Az2rIB2XFLrVtuPi4ggfEPqirwe9o7MdFUo5btUWdQm41RajrO46OihKoA2GvsY4j8d76NSeHR0dsWnTpu6yI1KpFDKZrPv/jfHhFBsb2/27w+fzIRaLKd8lh2S/oraxGmtnPg8bq+FRb1RRI8dXR7+kNM7NYIZ1M9djevDwOG20d7bjX5n/waWblyn7bWxsaFMdgjz88dKC5+Foc/+VGAQAF3snvLPyb3h778coqSZeQPROyXrY/t4ZGO43EhISkJqaSts/3ssTW4UL4eXY/3dVLG8cvjpxmtD2fe4FrIoKh52VVb/nMzRCXjC+yD5LUnJPSUnpzkMHurzofT9DjxWWoFzVCC+O8aNXtRHp7YnUnItDsrYnh3xZc/Fi//ZCp8lCxXAxuPsLY6A/QOgSg1s85fV7YnBD43VxsvPELP4GHJV+RWgvqTyPy6XHETLGcH8gGi/65dLBGei+FOrsra2tpLbyumKM404b8Dra8HL212qg98cwp3qpURno7R2tKKsvwa3aYtys6TLIK5RydN4xrMolY4zrB5/PB5/PR3x8PKFdI/onk8kIRp1SqSSEgOn68OFwOKRwvPj4eKhUKiQmJpLGX7iRC8UeEVZPfRLhQ1yCTVEjx/a9SWhpI6dQmJmZIWHuJkzyn4Th4G1Wt7fi3X0foLCCXliypYU6FUQY/ggej14K8xHkShL3E/bWtnhz+cvYnvEZLt4qIvRJpVKIRCKIxeIh2h0DA4M2lEol4uPjKQVnga6KEhunTUV8dBTMRwwsTvPxiHCSgd7Y2orjhdeGjaK7kBeMz7OJ9dvT0tIImj/x8fFISkoiedE/z8rBVuFsk+2VillBPkO29ihH8uVEf3PQORwO6czI4/G6xdaGo8HdXxgD/QFAqVRCJBLR3mayWfZ4aq4YHs5DX+JhcsjjuHAtkyQY92vOR/B1DwfbgPnQU0JWYueBlwY9j6dzgE6l9rJ64ym5+3tMwEGK9oF4zKlKWZibW6Ck8mKPMV5XjCqlAnfuGq7GI8AY48ZAm8CIIdDkFlLVbK9trManB95HuE8kVk99EiPtXY2yB21oM84tzS3x50deBJ87PEKmm1tbkPzLv3Cjpn/lZGxY1nhh3jMI8w410s5MD9vSCq8sTkDiD/+CopZYMSA1NbVbrJCBgWH4oCvffIyTE95cHIsgd/d7LQO7FLVns7EwdBz2XywgtH954vSwMdBXR05AWo4Ujb0cNkqlEpmZmYSLdCov+j7ZVTwXEwXPIfaizwryHlZq7kqlUu8zYe9IhQeV4a8uw6AVTe4enXHu4RSEF5f+MiyMc6DLs/1o5MukdmVzOU5d/sHga/l6hKO+qXxQ8/i5665xrktIblDre0ygbE9OTjZIDeG04+/i0/1/xc9nxMi9dggV9TcGbZxzuVzExsZCJBIhMzMTCoUCFy9e7L5hjomJYYzz+4QdO3YgOTmZtv/CjVxskbyEvbl70NJqOiFAbca5rZUtREteGTbGeaO6Ce/8/G6/jXMfFy6SVr3+QBnnGizNLZEofA42LGtSX2JiIq2HjoGBwfRkZWVBKBTSGuePR07Ed8+s72WcD46N08j55uWqBlxQUGtzmBp7thVmBJFLW/b9rIyPj6csofVZVg6pzdREeg9dLnywuzOpbTgJvw0HGAP9PkYqlYLP59O+MCf4CfHUvB0mUWrvDyHc6ZT1z49Kv4LSwIZubNSf4WQ3uJIS+uSWG7sWuhdFTXZTiodpgzHGH3w2bdoEiURCedDQsPfcHiRKXsJ3J/+L2sYa2nGGIPtqFt7Y/Rqlce5i74L/W/Ya/Nz8jLoHfVG1NODtn7ajtLZ/B8v5vFl45/HX4GJPVrx9UHC1d8bmBesp+7RdCjEwMJiO1NRUxMbGUoYhW5qb43XhQrw4e5ZB1/TkOCB8DLm02pd9Qt+HkmcEUaQ2uVxOKm1MFQ20T3YV5aqhLTM7K3DwDh59KVM14X9nL+GlHw+D984uXKmsM9na9yuMgX4fw+FwaPM2ZvCfwZKpbww741zDsqmvUrb/dPIdE+9ENyFcspo1FcY00qm86AO5beyvEEdfGGP84UUoFCI7O5uUq96blrZmHJL9hi2Sl/DpgQ9wtYxaCG0wZF/NwldHv6DsGzOSi9eWvwFPx6Gt89qbqoYqtHW06T3eysIKLz7yPJ6OGR612o3NBG4w4qYsJrVnZWUxXnQGhiEmISGBVniYY83Gx6sfx/xxIUZZe1Uk2ZFzXnET5aoGitGmx4vjgAjuKFJ7Xw2NhISEYelF15RbMxa58gq8e/AMFnzyIx755EdsP3gWRwrpo8iGi9NpuMAY6Pcx3t7eiIsjH+LYLHtEBw/vw51GMK4vXYJxw+tQZs2yw0T/BTrHldVdM9oevCi8+AM5vPZHiIMxxhn64u3tjbS0NJ3edKAr9P29fW8jUfIydh77DBdunBv0+r/l7ac1zgM9AiFa8gocrIe+Vm5vAj0CsP2Jt7F44kKdY7kjR+OdVa8j2j/CBDsbPiyLmAcPDlnDoLfoaVZWFmJjY7XWW2ZgYDAMSqUSsbGxtOmTfi4u2Pn0kwgdZbww6RlB/vBwIL/Pvzpxxmhr9hcqL3pWVhbhPaWpytKXfbKraFSTRYdNSSTXcJfZZaom7JUW4eUfD2Pav/+Hdf/7Ff89W4BbqiaDrfEwwYjE3eeIRCKSgJO6rRFnrqRhBv+ZIdqVftAJxu3XCMYNoj63oZkYsADnr/2mdYyhw/N74+VMDtc15G0jI+DG0B+EQiEEAgHEYjFSUlJoy4IBQE1jNWquVuPE1eMAgHCfCIT7RILrwsWYkbpD7FpaW3C17DK+OyVBdUMV5ZjQMTz8+ZGXwLKwHNg3ZGRYFpZo1eFFnxkiwMZZT5toR8OP+aECfHviJ0JbZmYmlEolxGIxkpKSAKBbc+VBUOllYBiO6BKDm+Lni7eWLAbb0vgmxEbBZLy9/3dCW6asAC/PmQ77YVByLYI7Cl4ce8qSazt27Oj+OiEhgfKz8ljRDSziDZ1G1GJ+0KDKreXKy3GkUIFcefmgwtY1506GHswaGhqGvvYMQ7+RSCTIyMgg5bpoYLPs8eLSvTSq6F3/5PQFMIi/EmZ9+ygeNOvdr2Xevo+eLPgOv537D2nkbP4GzArrnZtInpe0Lwp07ssMMNOpNNrV/96e1VrF4Pw8wvDsIx9QPtv3GzfTtqfuMcT+NyRLcbuNeBOZnZ0NPl8/ISylUgkul8sY4wwGpa8BNRDGenWFSAZ7hqClrRmltQq0tLZAUatbYTY6YDKemf3cvfJjPX8z5NcUzTvEjL6/Z5zudwTd+7S6oRofHfgU8ppSyn6WBQvrZ6yBYOwU4r56zU29J4o+0ibo96X9Z9XVX9VQgzPX8jA/dDqsLFk948z6uS/SGHJ/c2sL1n6xhdQ+YcIE5Ofnk9q3b99OG3rLwMAwMLKyshAfH08bbfdkdDSenS6AmZkZtJ8VQeonjtHjHWEGNKpbsXzHTjT1KW+7cVo0NgrIQnJ956Z7t/UdoM++6N5tGbIr2JZ5mNQuk8kIQr5btmwhhb8v4o29V3JtgGfYvvui/Ia1n/mn/GsXbrcRS+hGcT3x5ZpY0rqN6jYcK5IjR16OI4VyNKr1T9/qjaa0q+aynzmDkmE86PcRSqUSaWlpSElJoaxn3Zv7wYt+4dp+SuMcAE5e+QHhAQvhaOdh4l3RE+G/AIfyv6btN6aSO9CVh963Hnp/DHSgq8wa8yJkMCSOjo7dpWQkEglSUlIoy/lpQ5Or3t+c9Vnj5+CpmOHrdT5Xch6fH9lFKWYHAB4cd7z8aAJGO5PzGIeao5dP4uvjP6C1ow2HL2XjwzVbjbqerZUN5oybgsMFpwjtVMY50HXYlUqlSEpKYt5pDAwGIDU1lfbSy9LcHK/FLsTssWO1eXcMjj3bCqsiyXXRMy9e1mKgmxYhLxjvH8omlFwDuhxpIpGo++uYmBiSgX5OQSwzORSEj3bHyeu3aPuvVtbiaKEcRwvlg/KS83g8CIVCxMbG9uvc+rDCeNDvA+RyOSQSCcRicb9yiOm96EPvQf/p5Du4cC1Ty1ggZMx0xM3SeOWG3oOubKrAu3tWax2Z/PRRymcN4UHPLkjH3rMphLbY2FikpaVpnYeBwdRkZGQgNTUVmZna/8YHw4IJC7FqSt+/x+HjQf/fie9wQHqQ9okpAZOwYdbTYFuyqPfVa27qPVH0GcCD3tJ6G+Ij3yLneh5h9Ptxb2CUk3uvBwzrQQeAIwWnID4ioeyjg8/nIyMjgzHSGRgGQUJCAm2+uZONDd5dvgwhnvfylWnemcbwoANd5dWW79hJGvPawnmIpayLbloPOgB8kX0Wn2cTRd8cHR0hlUoJ7yYHipz6jE1r4MmhTuk0hQf9ixPn8ekfRI0YL44dorw9DeIlj4mJQWxsLPOO7ieMSNwwRywWIyYmBklJSf0yzoEeL/pwQt3WhJSMp3Ua5wBwufQ4SioumGBX+uFk54FxOhTdr1fkae0fDFSl1k6cOEExkoFhaBEKhUhLS0NDQwMkEgni4uLA5XINNn9s+CIK43x4UN1Qg1d/3EZrnFuaW+KZWWvxwvxnwbYc+hzK3lyvkuPv371FMs5DR4+Fl5Nh6htrw8qCfFmhC13lRhkYGOjRRwxu19NP9RjnQ4AnxwELQ8mGeOZF+oirviHxxmZ1JLnSjlKpJF1SCwTkM+SxwhKj7UsfYseTRYjLVE34RVrUb+Ocx+MhISEB2dnZKC0txY4dOxAfH88Y5wOAMdCHKXK5HLGxsdiyZYtehrmHczAcbclqmmeupEHdNnwUFMvrClFRX0TZZ2lJFnhKH2Zl1yJ0qLmr25qNtjZVqTWlUqkz3YGBYSgRCoXYsWMHLl68iOzsbIhEIggEggEb7CwLFsZ6Dp2ojjbOlZzHqz9ug7yGOsTf09EDb658FTNC9CvdaEp+PvcbXvkxGbVN9YR2NwcX/GnuWqOvX9VQC8mpfbT9tlbWmBk8ibJPqVRCIBDQGhkMDAxkpFIphEIhbUUYQUAAPlsTDxe7oRfspfKUn1fcRFFVNak9U3YZT+4yrXPKnm0FIS+Y1J6cnEz4mkrcMneIw9y9HAdejlnjJReLxZDJZDhx4gS2b9/OhLAbACYHfRiiEVzSZZh7Oo/D1HFPIsBrGliWNlA2l+Hjn4n1ZIdbLrqvx0T4uk9ESeV5QrujoyNSUlJIZeOUTeU4mr8TsyasM+U2aRnHFcDJzoM237ysrhjjuNOMtr6Xsz+pnFt2djZBiISB1Y1KVAAAIABJREFUYbjC5/PB5/MJeXlKpRIymQwqlQoymQwsFgt5eXn45ZdfKOdo62jD+/v/hUn+0VgjeAr21gM/XBiK5tYWSE58h6yr9BEtM0IEeGbWWtNtSk8abjfi49934uLNK6Q+D44rXl/6Fzjaai+pN1jOXpci5fD/0Nx6m7Lfx2UUXpgbD1/X0Rg/OgCfHqIOg09ISIBMJiMdihkYGIjoEoN7avJkbBQIYGbCfHNtTOSORqCbK8kg/y43D68tnNf99Vv7DyJTVgCgy1AX8oxTo52KZwSRyJAR36NyuRwZGRkQCoUAutIS+wqqnlPQ538PRzQleIVCIVNNw4gwBvowQqlUIj4+Xmd967GjZ2JySDy4buGEdkc7L/D9hJBeJyq7n7mShujgJ2gU3U3PTP56lBwkGuhKpRIcDgcCgYBUPuxI/lcI93902AjGaROLK68vNvh6t9uakF2Qjtzi3ykvBjQftAwM9yOOjo7dH/KaQwzQ5d3RGFxUnL12BrJSGVZGP4bZ4+eYZK9UyGsU+PLoTlqvuZWFFTbOehqTA6m9v0PJxZtX8cnBnVC1NJD6Atx8sGXRJtizjfu58XXWHmTmH6PtnxUSjbUxy2BrZdP9tY/LKGz96RNKgz4lJQUymQypqalMWCUDAwXaxOBYFhZ4deFCzBqriVIaPjJVqyLDSSXXjhdeQ9Oc6QCATZI9KOxlwH954oxJDXQvjgMiuF4k4TexWNz92cbn88HhcAjl1hrVbSisrEGQu4vJ9tpfeueSMw4h02AuEom2DvUmGLqMrHnz5qGwsJB2jJtjIFbN+ABTxj0Jji2FsWoGeDgF4WyfvPOOzjZYmFvBxz2i73C9II3TKhKney4nO0/cqLwAZXM5oa+0tBRisZikcgkAFXVFCA9Y2O81dY4x6//PwcnOAycu76YcY2nOQvTYxeQOSpE47SibKrHvrBg/nfoIV2/l0KYqNDQ0YNOmTXrMyMBw/+Du7o4NGzaAw+EgJycHrRQ5hR2d7ZAq8pF34wICPYLg0Mubrvf7QY+BdEOyrmQj5eBnqGmsoewf7eyFVxb/HcGjxuq9J33HUY7px7v5x7P78PmR/6K1nfxzjfKdgH8IE2DDsqaeS8sG9d17VUMttv70MXJK6HPH18Ysx5qpi0n17Z1sHTA/dCry5FegbGkkPadQKJCeng6BQAB3d+PnzjMw3C8kJCTQlsR0srHBf1atQmQfA0yfM6CW5n6P6R7XZ7AnxwE/5cnQ1tnZ3dbW2Ym2jg68lXkQ5Q3Ei8am1lZEcEfBk0MWZuu7IUPt3ZNjjwzZVUKbQqGAQCDoNmxzcnJQVERM9XSxtUGENzlNtd/7GuC7eUfWecr2J598EtnZ2Vi5ciWioqKYS08TwhjowwCxWIx169ZBrVZT9ltZ2mHuxJchjH6N2jDXYNal3K5sKkNlPdHQr6wvRETgCliYs3oP1wtDG+gA4Gjrgbzr+wl9CoUCQqEQ3t7eJC+6srkCnk6BcOX0fHAMlYFuzbJDeX0xqlVkj1nj7TrMDVurcyPa1rxekY99Z1OQfupDlNVdQ0endpEODoeDuLg4sNlsreMYGO5HoqKisGLFCigUCtKhRoOqRYljBUehblcj0CMQFuYWRjXQm1tb8M3xb/FT7l60d7ZTPjNn/Cy8+MgL4Ng49OsQqO+4gRroDbcbsT3jU2RdPU0eDGB55KPYODMOFubm9HMN0kDPuS7FP/eJUd1IXbLHzd4Zbyz/M6L96fMYWRaWmM+bhurGOtyoIYeIqlQqpKenIzAwEEFBQXrsioHhwUWpVGLJkiXYv38/ZX+Qmxs+eeIJjHF2JvUNFwPdysIC8tp6Upj7xbIKgtHem4qGBhqld+KGDLV3L44DjheWoLaZXFpT40WvqqrCoUOHSHMv4pO1VYxtoO+VFuIvuw+isZX6nOng4MBEaA4RTJm1IUSpVGLTpk3IyMigHcPzXYg54S/Bzror9EVryYV7ncqmW/j45yWk7hn8Z+/log99mTUA2PX7n0i56DExMUhNTYVAICDVUna088QLwl3dofqmLrPWe70CRTb+e/RVytEvLfoCns4aVUz9y6ydKz6A7IJ0lNXpFybP4/GwadMm5uXJ8NCQkZGBxMRErXXWne2csXbGevDH8Pr0GKbMmq6QdralFTbOXIfogKieebUeAgdTQrJ/ZdaulhfjowNfor6ZnHfKsrDEn+auwyT/8O5nafc1iDJr32TtQWZ+33KUPUzy42PTnDjYsm30+nmZAcjIO4ZdWT/RzikSiQi6BwwMDxNSqRRPPfUUrl+/TtkvCAjA1kWLYGVBlfVKUarRxGXWelNYWY2nv+6fGOTPz6/t40U3fJm13s9myq5ga+YRUq9MJoO3tzekUimlmvs50fM0a/ZjX3qWWTtaeAPvHTyNMhU5AqkvDQ3kFCgG48N40IcIjXpmTk4OZb+9tRtWzXwf0SFrwLK06W7Xept2r5PNsoeqqVynF30oPehd+7TDxRvEW0SFQoG5c+ciJiYGe/bsIfSp25pgac6Cr0e43msaw4MOAK4cLs5f+40y7HyC72w49c2Xp/Gg325rwh+y7/BD9rs4V3wAjbepPUq9iYuLQ3JyMrZt28YoZTI8VAQFBSEuLg5qtRq5ubmUY2633capopO4WXcTgR5BsO4Tpt2b/nrQD0gP4qPfPoGqRUU5ztfVB68s/geCPAMpJxhKD3rGhYP4+PevoG4nR2ppxOBCRgWS+iinH4AHvaqhFtt++o/2kHbBcqyNWd4V0q7nu9kMQJCHD8aPCkBOiQztnR2kMdnZ2d1hpkykEcPDhFQqxdy5c1FdTVY7B4C1U6fib/PmUUbMaBguHnQAGGlni+NFxaij8FDT0dTaihmB5DK1vTdkyL2PdXdBhuwKpVd63rx5cHd3R0pKCiltK9LbC14couipoT3oufJyvJ7xB3adyqf1mmuIi4uDRCJhwtqHCMZAHwJSU1OxYsUKgkhEb3w9orFm7g64cPxIffoY6EBXLvqZK98Rujs62+Di4AMP5yDdc2lb00AGuivHGxeu7Ye6nWjklpaWYtu2bcjKyiJ5ykoqLyBkzHTYWzsPqYEOdF0YXK8k1z13svOEn0eY1oeVTRXYdzYFaX+8jesV+TpL4XE4HKxfvx67du3CmjVrGJEOhocWNpuNefPmQSAQQCaToaqqinJcWX0Zjl/5AyxzFvzdqQ9n+hroLa0tEB/aQVvbHAAenTAfm+Y+C3trClG1ITTQ1W1qfHTgcxyQHaOcJ8KXj/9b/BKc7XQfwgZqoJ+9no+kfSnaQ9qXvYhJ/r1KSfbDQAcAN4eRCOMGo6hCTpmXLpPJcPjwYcyZM4c5cDI8FCQnJ2PdunXo6CBfWrEsLPC6UIgV4eEw0yHVPpwMdABgWZjjeBF1NICdFYsU7l6uasTycB5YVBECRjDQzQA0traRxOKKi4uxbt06sNlsFBYWkgRQvTj2pDx0QxnoZapGbN59EDuyz6NMpf28qTHM16xZw7wrhxCmDroJUSqVSEhIoFXPBMwwnfcc4mZ/CmurwZW1cbTzwgQ/Ian9D+kXg5rX0MyasIHUlpWVhaysLEqxOAD4NecjY29LL6aOW0nZTleCDejKL//8t81I3h2Hc8UHdK7B5XKRnJwMmUyG7du3M4Y5A8M9YmJicOLECYhEInA41O/L2223ITmZijd2v4HS2tIBrSOvUeC1H7fiXMkFyn5bK1v8XbgZcVNXwcJ8eBVGuVGtQOL3b+Mchdd6hNkIrJm2An9bmAC2pZXR9vBN1h78a/8XtCXUJvnx8e7qLfB1HT3otXxdR2Hb8j9hkl/f9IYupFIpYmJidFZKYWC43xGLxfjwww8p+5xsbJASF49ZY8l1u+8HptN4w2NDQ/DfdfGws2IR2htbW5Ehu2yKrXXzRCQf9lbE96pSqew+11KVJ+tr0BuCMlUj3sj4A7GffodcRbnWsXFxcZDJZNixYwdz1hwGMB50EyGVShEfH08ShtBgzeJg1YwPEBawROttpr4edDNQe9HV7Y1wtPWCh3PQkHvQAcDTOZDWi65RJqcSjHOy84Sns/ZwTL32NQgPuqU5C6XVBahtJAoUWVvZISJgAaHt3LUD+O+R13GiYI9WA16DQCCASCTCjh07EBUVxYRlMjDQEBMTgxUrVkAmk9HmpqtalDh2+Rhut93uFpEDdHvQf875BeJDO9DSRh1OOdYzCImL/w5vF65e72ZTetAPXvwD/96fguZW8t45Ng4QLfoTpgRGDmxfenjQ9Q9pX0FSaddMNJCfA8vCEoKgiQCAS7fIeh5qtRoSiQRcLpdJEWJ44FAqlVixYgW++uortLdTC1gGuLrhqSlTAAzwXTPEHnQrC3OUqxpQVNVTPePl2dPxwkwB7NlWqG1uwaUy4jlLXleP1ZFhfacymgfdysICdc0tkJVVEvo0Z1sOh0NyQpWpGvFcTGS/16TyoDeq2/D1qTy8kXEMslvUUWYaBAIBxGIxXnjhBcZjPoxgPOgmIDU1FUKhEFIp9UHFa2Qonon9Hr6e0QZd90HwootEInC5XFL//pz/6AwLNwUTAx4htZXfE3lTtzXhUN432Ja2GD9mb9fLMI+Li0NmZib279/PiL8xMOiJt7c39u/fD4lEQutNv3v3Lg5IDyAxLRGyUura6hqaW1uQ9Mt2/JT7M2W/mZkZlkYuhmjxP+Bk6zTo/RsSdXsrPvrtM+z6Q0LZP9YzAO+ufh1BnjQ5mQbg7PV8bPk+GTdqblL2u9k7491VWxAbNstoe1gVvQB/mhsHWytqDYKEhARs2ED+7GFguF/JyMgAn8/XGSFysewWLmgR2jQ0J4qvY8M3qXjiy12obtQtSqYPGmV2OysWUp5YgdVR4d19VIZ4uaoBmSb2oq+OIl8AyuVypKamwtvbm/Jsawgv+j5pIWJTJNiRdQ6Navo8cx6P133epPLoMwwtjAfdyCQmJmLr1q20JdQig1ZhWUwy2CyHwd/gmZH/U5cXXR+M6UEHtHvR4+PjwePxIJEQD5sdnW1oul2HEK72l4oxPegA4OHki8P535D2Vt9UibTjb+F6Zb5eZdI2b94MsVjM5JczMAyCoKAgrF+/XquInLpdjVNFp6CoUSDIIxDWfQy4y7eu4K30t1GupA4H5Fg74G+xf4Fg7DRCtNNw8KDfqi/H2z//G1fLyZ5jMzMzrIwS4vk5T5FC2g3pQf82aze+yd5DKdYGAFF+fPzf4gS4OYzUudhgPxN9XUchjBuCPMUVyhD7goICfP/991i9ejUTpcRw36JUKrF+/XokJSXRnjX7UtXYgAWhoUb3oNc1N2P9t6moaW6G6rYaF8vKsYhPnYJCmkvL5jw5Diiqqsa7yxchyN2V0GfPtkJhVTXkdfWE9qbWVnLJNSN50DX7KFc1orCXpx/oOtuuX78eUqmUlIduz2Zhql+P4d6ffZ1TlOGZ1AzslRWirYO67BzQkzr54YcfMufNYQxjoBsJuVwOoVBIW0LN0sIaS6f9E5PHPYURZl3qmcYw0Nkse1TUFaK2QU4YWllfhMkhq/VY0fgGOtC1zyulxwltCoUCcXFx4PP5kMvlpBdZfXMFpoeuGdB6vQcMdu+5xb+itb2Z0FZer7tUmuYl+cEHH2DevHlMaBEDgwHQV0SuXFmOowVHwbJgIcCjqyzizzm/4MujX9HWNueNCcWWRX+Dl5MXqW+oDfSTRTn4V+YnUN0ml8Th2Djgbws3YUbIVMoUKkMY6DeqbyJp36daQ9qfFqzA2piV1CHtFIsZ4tDsZOuAWSGTUFQhRxWFSF19fT0++eQTCAQCSo8WA8NwJisrCytXrqStCGQGYJKvL24piaUVy1UqRPn4wN3BnvK5vnNob6BvtmaxcLm8Ajfru9avamyCpbk5JowepXtNHX/c80PGwp5NrZ8x0tYGmReJHvNyVSNmBvlhpG1PZSRjGuhAl8GdIbtK6K+srIRAIICjoyMyMzMJfW2dnVgRPr5fa5arGrF5zwHsyD6vVZld4wxKS0tj0nvuAxgD3QhkZGRg5cqVkMvllP3O9lw8NW8nuG7hhHZjGOgAYGc9EvnXiRcF/fGim8JAp/Oiq1QqCIVCCAQC7Ny5k1CWoqOzTWcuuikM9JKKfFQ36C9AJRAIum8v+Xw+47lhYDAC3t7e3SHMMpmMVNIGADrvdOJi6UWcKT6D7KsncKr4NO18T0xdhaenPwkrGkG1oTTQd/6Riu9O/4TOO2SvCX/MOIgWvwjuSPoD8WAN9P35RyE+/F9alXZX+5HYuuylbpV2vdYzkIEOdOWlzw6ZhFvKKihqyZERd+7cgUQiQV1dHebPn6/P7hgYhpzExET85S9/oa0I5OHggKRly/HUlCn49aIMTX3egZUNDVgwfjzls70ZbA76SFtb/HqpoPvrXLkCs8cGwcnGhuYJ/Qx0bd2eHAdkygrQ1MdgbevsxIzAXhWSjGyge3EccE5xC+V96o2XlpYiISGBlIde23wbcVG87pr02tZsVLfi61N52Lznd53K7CKRCDt37sS8efP0/C4YhhomB93AJCUlIS4uDso+t5UagrlzsWHhd3B2MN1NvY97BLzdJ5Lah18u+npSm0QigVwuh6OjI2JjY0n9BYqhV+P1dA7Qa1xcXByys7Oxf/9+CIVkbQAGBgbDIxKJkJ2dDYFAQDumXFmOkuoSyj43Bze89dhWPDqBrDcx1FQ11ED0w9s4dOk4Zf+aaSshWvwiHG0cjLR+Lbb99CG+ydpNq9IedU+l3ccAKu2DxVKLyv7du3fx2WefITg4mPZynYFhOCCVSiEQCJCSkkI7ZsH4UOxaux4TxowBAKybNo00Jlcuh+zWLVK7oYnw5iLA1YXQlnyAWjDZkGwUkHWdMmSXUa4iRxkZk0U8slq+RidgoHno+2RXIRRL8Fn2Oa3jNMrsIpGIidK8z2AMdAOhVCoRGxuLpKQkyn7zEZZ4JDIRK2LeA8uCWrTGmMzgP0tqUzaXIe9aJsXooSHcfyEcbT1J7ZqfKZVo2uXS41DqIb5mTJzsPGj7rK2tIRKJuktXMGFFDAymRx8ROSpsWNZ4bfn/wdtl+IU+X7ghxSs/vA15DTl6J8jTH/+K24aFYXONtn7O9Xwkfp+EgltFtGOeFqzA3xc+C1srek+ZqThzTYajl8/qHFdWVoaJEyfi/fffN8GuGBj6h1gshkAgoBUd5lhb45/LVuCVhbGw7VXm69FQHjwcyBd1X588abS99ubpKZMJX8tulWGf9KJR14zljSOVXANgcrE4IS8YXhxyKkFSUhKl40mbgX5OUYZnU/fhjYxjWgXgBAIBMjMzmZJp9zGMgW4AsrKywOPxaJUz7a3dsPaRbxE5dpWJd9YDnRe9b+j7UKPNix4TE0N523j+2n5TbI0WbQZ6WFgYRCIR84JkYBgGCIVCyGQyJCQk6DW+pe023sv4N+qaqEO3h5Kckjy0tBG91kGe/tg0dz22Lv8HvJzo30uDobm1Bf/a/xn+tf9zWq+5j8tovLsq0agq7f2hqqEOnxymVrWnor29HVu3bsWMGTNoDSEGBlMil8sRGxuLLVu20I6Z4uePb9dvxLQA6qg+Ki/62Rs3cLWykmK0YZk5NhCeHOIFwedZJ9HaQS0maShWR4aT2r7LzTfqmlQ8GxNFapNIJJg4kXwupzLQG9Wt2JpxDM+k7kOuFgOey+VCIpEwyuwPAEwO+iARi8VYt24dZX4jAPh4RCN+zudwstcd3mesHHQNjnZeJINc2VwOH/cIONqRPdd51zLBZtnDmtXn5s8IOegaunLRf6XNRQdAqiWvbK7A1JDHBrSeIXLQz1zdB3kVddmmmzdvIi4ujgktYmAYJugrIqdB1aJCduFJBHoEYKQ9vfK4qXPQI30nwJ3jCu7I0QgdHYynBauwJOJRcF2InzWGzK3MvZ6PN3/5kLZ8GgAsnDALm+au0arSbuoc9DfSP6EUiFsXsxRWFpa4VU/9O1BRUYGdO3cCAHPYZRgyNLpGhYWFlP1sC0u8PHc+Xpg1G2zLLgFGqr+LQDd3ylz06sZGzBs3juIJUM/Vzxx0oKuKhLWlJbKvXe9uu93eDraFJcLGkPUxBpuDrsGT44Dvc/MIbW2dnfDiOHSpvxs5B71nH/ZIz7tEUlcPCAjA6dNE7ZPeeehmACQ5Uvw1/QBkZfSfVb2rATGRmg8GjIE+QJRKJRYuXIhvv/2WZoQZYnjPIzb6dVhaWINCOJfiiUGO0cNAv1F5DqpmokiOqrkcYf7EnOgDuR/gcN6naG1rQvCYGTo3YciDpzXLDpdLidEIMpkMcXFxCAoKIolqqNua4Os+kdKTbUwDvbyuGLsObcFF+R+0z3C5XAiFQri7u+u5CgMDgynQR0ROQ1tHG04UnoKznTNtuPtQiMRxR47CuFFBCPEKAsfGYcDvZn3GFNwqxEe/7yR57Xvzt4XPITZslk6VdlMa6DuP/4SzJeQL1Gg/HtZPXwbB2HD4uIxCUaWcNiIgOzsbmZmZCAwMZKKhGEyGPuXTQr1G4d+PrUKkt4/OMyAA2LGtkF1MrDJzs74e0wIC4GJnR/mMIQx0APB3c0WG9CJa2npCs69WVmFZOB8sC6I+hKEMdAe2FcpVDSjqU+qsXNWA5eE8kxnoVpYWaOvoIHnHr1y5Aj8/P1RXVxPaeaPcUdt8G3/d8xv26SibFhsbC4lEAqFQyIgOP0AwBvoA+Oabb7Bo0SKUllIrd1uzOHhs+geY4L+0u6TNcDDQNVy9STQolc3lCPMTgn3PU/7LybeQW5QOAKioLyT00U1uyIOnNi/6mjVrIJVKUVREzHs0AyhrohvLQD+c9zXSjr+Jptv0oa8ikQhisZg50DEwDGNiYmKwYsUKyGQyKBQK2nF3797F+RsX0HC7Ebwx4zHCjJghNpQq7toaDXXwdHUYiTDuOBRV3oCqhVpkqajiBsaPDtQpSmcqA/3MNRm+zv6J1O7m4IzXFj/XdZFgBox2dseskElo72xHYQW1QFxlZSUkEglUKhUiIyOZgzCDUdFVPs1ixAhsEEzHPx55FBzre7pGepwBA93c8eO5XLR1Eg2++pYWzAkmi5lRzjVAA32EmRnM7t7F2Rs9f2NtnZ0wHzECEd5jyHMZwEA3Q9elRN+Sa7XNLYjgjoano0O/5tIHunezJ8cOabnEy0K1Wg0ej4eSEqJI6cWyKkhyZKhtpr8Q5fF42LVrFzZv3sxEaT6AMAZ6P5DL5Vi0aBF27dqFzk7q2yyvkaFYM/cruDsTX3TDxUD3cB6LvGsZaO1j/La2NcHHPQJf/bYexeWnCH3qvl50IxvoZvf2U1J5gdCu8aKz2WxS7cj65gpMCloKC3OiIIihDfQur/k/IL1xhHYcj8dDeno6Vq5cyRziGBjuAxwdHREfHw8ej4dDhw5p9aaXVJfgankhwnzCYGXR87550A10AHCy5WBqYARu1VegTEnOW21pu42TRefgaMPRqtpuCgO9qqEO7+z7DO2d5BzXN5e9ADcHZ8IELAtLTPQORugof1y6dY3Wm56Tk4P09HTweDzm8pXB4CiVSmzdulVr+TTvkSPx/mOrMSMoGCPMqA9+2v522jo6kdfHwVRaV4eZY8dSlj4zlIEOAEFurkjPk6KtV+55YWUVVkaEwdLcnDiXgQx0L44DzituoryBWOrMzAyYEeTXr7n0ge7dbM+2QrmqEYVVtYSupqYmtLS0ENp01TPftm0bIwD3gMMY6HqgeWGuX78elVrENCKDnsBSwXawWWTvwXAx0AGAzbIjedEr6gtxrewUKurJOU4kL7oJDHQP5wDkFP2Cjk7iS0qlUuGVV15BSkoKqSa6K8ebVBPdkAb6yYLd+O/RV3V6zXft2sWEtDMw3IcEBQVh/fr1UKvVyM3NpR1X01iLs9fOImRUCDg2XarwD4OBboYuQ3ZaUCSAu5QK7u2dHcgpkaK6oQ5RftS5kKYw0OnyztfHLEW0P49yAjN0edcXhU0HAFy6dY1ybpVKBYlEAplMhjlz5jAXsQwGQalUYv78+fj1118p+80APB4ZhW2LlsLFnqwKru8ZMMDNDXvz8yi96LMpvOiGNNAtzM3R1tGBC6U9Ohbtd+7cy0XvudQzpIGu4XjRdUJfYVUNhLwQ2LOtTGKgA0CQ20iSF72vca6NuLg4pKenM5oYDwGMga4FpVKJDz74ABs2bKBVaAcASwtrLJmahMkhT2GEmTnlmOFkoDvaeSK3MB2dd4jGb5O6luYJgM2yh49GBd4EBrqluRU677TRetErKyshk5HzCvm+c/q3nh6HwPqmCqQefRVnCvfSjuntNWdgYLh/6S0il5eXR8oN1NDSdhvZV09itPMoeDp5PDQGuuY/xo8KhC3LGvkK6pJFN2puouBWEWaGTCb1GdtA15V3TjdB77lCRwcg2i8Ut+qrKQ19ACgsLMSuXbsQGBiIoKAgPXbLwEBGLpcjLS0NIpEIly5dohzjamePfy5biUUTwmExgqYAk55nQCsLC0ovury2ltKLbkgD3QxAgJsr0i/ko73XBUFhZRUejwiHhfmInrkMaKAHubsiU1aAJpJn2gxT/LxNZqDbs61wTlGGchXRm29ra4v29nbaOTXh7C+88AJzIfiQwJRZo0EikSAmJgZJSUlQKpVax9qyRyJ4jPHqzRoaNssek0Oe6Nczp698B3Vbk+6BBmRyyGPE3Pd7JCUlYdOmTaT2y6VZBq+JfqJgNz7etxHXK/Jox4hEIpw4cYJRzmRgeICIiYnB6dOnIRKJaMe0dbThw98+RnrOz7h7964Jdzf0HLt8Grtz6Etc+riMxtOCFSbcURdnrsmQmf8Hqd3NwRl/mtu/zz1f11F4a8UmrI9ZAlsra8oxSqUScXFxiI2NhVwuH9CeGR5OJBIJBAIBeDwetmzZorWk37YlyzBhDLVA5UBYGREBu1510gHgLoBvTp2ifsDkAgsvAAAgAElEQVSAOLDZWB5GPC81trZi9wX6c5YhiOWRleozZZfRpKZPaTIGzwoiSW3Nzc2UYzkcDpKTk3HixAnGa/6QwRjofcjKyoJAIMDzzz+v94etsukmCm8eM+7GDMwEv9h+jVe3NeL0le+MtBtqrFn2mBryOKldIpGAw+FQ1kQvKKWPdOgP6rYm/O/oq8jM+Zj2YoLH4yE7O1vrAZ6BgeH+RiQSQSaTdb93qPg5dx8+/O1TqNuplZYfJJpbWyA+9C3Eh/9Lm6c9M3gy3lj2otY8dGNQ1VCHT2nqnW9ZuIHWyNbFovAZeP+JzQgd5U87JisrCzExMaQqIwwMvZHL5UhMTASXy8Xzzz+v1SjvzcFLFw26D3s2G49FkA3Fw1euQF5LH01pKFZHRZDaJGfPGbUu+urIMFJbY2sr/ugT+m5sIrxHwYtDkaLQh9jYWMhkMkqHFMODDxPifg+pVNpdzkJbnrmZmTk4tp5obSeGpzSra8D3W6LlOd170DfEprGlGtkXv0RpdT583COInXrOxWbZQ9lUhsp6cg6hu1MgArymkPoq6osQGbgcFhYs0jNGCd00u5eLXkidiy4UCkk10WsaFISa6AMJcS+pyIN4fwLK64opHwGAhIQERqGdgeEhwdHREUFBQZg7dy5ycnIoa6eXKytw4UY+JnB5sLXqI7T0gIS4y6tL8e9fP0eeooCy39bKGs/MfAKPRS/UWmrNWCHu9PXOlxHzzmkm0LaerZU1Zo+Lgq+LFy4orlKKz6nVahw6dAjZ2dng8XiMFglDN0qlEn/5y1+QkJCAnJwc2rJpdNyoqcHKiChYmJvT/5724wwI0OeiN6jVmNkrZcPQIe4AYM2yRMNtNQrKe6Ie1e3tcLS2RqiXp1Fy0K0sLChLrhVW1eCJKLLxPpD1aMf1abRnW+FYYQnVSHC5XIjFYrzyyitMOPtDzEPvQZfL5UhISIBAINCaZw4AgaNn4ZmFexA7+U1Sn6LqHMrrqA8thqTpdi2+/HUNThZ8i+OyzyE58ucBz9W39jnQZZyvnSfGTP5GUt9w86KHhZFfqPVN5VoNa11knv0EXxx4idZrzuVykZmZie3btzNlLRgYHjL4fD4yMzMhEAgo+2/W3cJru9/E5bKrJt6Z8fk1/wje/OVD3Ki5Sdnv4zIary99mTLn3BTsPJ6OkppbpPZJfjwIw2ZQPDEwov15+Hzt/yHaL5R2jCYSLykpyWDrMtyfKJVKJCUlgc/nIzU1Va9nfF1cSW3qjnb8elE/b7u+dHnRyZ7sI1euoLS+3qBrUbFmchTM++TTp57JJeSmGxoqL3q5qgHnFeR3x1CgicwUCsnnc4aHi4fWg64RgNu0aRNtnUkNns7jsUzwHiaPWwcbthMc7UahsPQomvuIqrW3tyCYS52LbigPupWlDaQlmWhWd3kJ6ptugmVhjTGuE/p9e+pk54Urpce655rgF4uVMe+AzbK/52Evp/aiBy3vfzmzfowz6/MfdF70O3fugMPhkGoXd3a2dddE19eDXl5XjK8P/R0Fpdm0Q+Pi4iCRSDB27Fg9vgsGBoYHETabjfj4eCiVSkql9/bOdpwoPAVbK1v4u3eV8LmfPejNrS34+Ped2C89Suk1BrpC2l98ZB3cHEYazmPfDw/6mWtS2nrnry5+HiwLS4N5HYEuJfuYoHCEjvLHxVvXaUP9s7OzsXPnToSHhzPRVg8hSUlJ2LBhAw4dOqTTY+7hwMEj43l4Q7gEayZPRYVKheJqYqROuUqFZeERBv1dDnRzxS/5+QQv+l0Aza2tmB4YSD2XATzoAGDLYqGqsQlXK3u+z5b2drjY2WKcp7vBPegAMNLOlrLkWqO6FfPHaRd6NIQHvUndild+OYSvT12gGoW2tjYkJCQwnnOGh9NAF4vFiI+P1/nS5NiOwoJJr2Je5BY42HoS+izMWSi6eZTQVq0qRnjACrAsbUlzGVbF/S6Ky3oMSUV1HsL8l8DK0qbPON1zWZhb4erNPxAdvBrCaBEszHtEQzycAnHmyveEZzo622BhzoKPx8R+770/++r9H5bmVujsbKVUdH/mmWdw9Cjx36G+uQLTQ9fot54ZcKH4N3x3fButwByHw8GuXbuwefNm5qXJwMAAAJg3bx64XC6ys7NJddPv4i6kChlqm+owgRuKESN6KRPrwXAx0G9Ul+Ktnz9CUSV1KKatlTU2znwCj0XHdoe0m9pAr26opa13vm3Zn7rrnRvSqNGMc3NwxuyQKLR3tqOwQkE5trm5GRKJBJmZmYiKimLC3h8CpFIp5s6di4yMDJ2G+bSAIDwbMxOb5y/AJF9/2N87Y3hwONibTzzzqG7fxiQfX7jZk0v5AhjQ73KXonsHSdG9pLYWC8aPhx1VCTIDGegAEODqgt0X8gkim9drarFy4gSMGKF9xsG8a/qWXJPX1XeXXBvMerTjzIBzijKs+zYdhZX0Of5z5syBUChkzpoMD5eBvmvXLixfvhx79+7V+tJksxwwnf9nLJ7yT7g7Ud+ouTsFQ3Z9LykX3XwECz4e0aTxhjTQXTh+OH35f7h7t+vG887dTrR3qBE4WkAYp89cHs5BcLT1hCD0aVI/nRdd2VSOySGr+733/uyr7+AuL/pekhd95MiRuHXrFqkmupOdJzydA7Wup25rwvdZ2/DHxVTSvBoEAgEOHz7MKLQzMDCQ4PP5mDt3Lg4dOgSVSkXql9coICu9iIk+YWBb6ldrFxgeBvqv+Ufw718/R0sbtXfYx2U0/rbwOYR5E5WRTW2gb9Uz79wYBjrQ5U2f6B2M0FH+OHP9Em2UQWVlJXbu3AmJRAIzMzMEBgYyh/AHELFYjLi4OMr3gQY7KzaeiJ6CxAVCLA6bCO5Il+4+ze+Ws60dsosKUddCVveeFhBIPfEAf5cD3NzIXvS7d6Fub8e0AH+jGuh2bCtUqBpQWNVTzrKptRU+zk7wd3OBNgb6rglyd0GG7DKp5Jo92woR3FGDWo9u3OfZOdiWeQRtHdTh+0zeOUNfHugcdKlU2v2y5PF4eOmll1CrRZ3SfIQlJgU/jecX78ekkKdgbk4vcgMAPL/FpLYLxbvR3mFcJV+WhTX4vgsJbeeKdkPZVD6g+ahy0TVQ5aIrm8uRdy1zQGsNlK5c9MdI7bt378bMmTNJ7QUK7XoC5XXF+CRjg9ZxycnJ2L9/P5NrzsDAQAufz+8WBaPietUNvPbjm7hRTe1hHW40t7bg3/t34Jvs3bRjZgZPxuvLXjK5Sntfdpko71wfjlzOpQ11741cLseWLVvA5XK706YY7n+USiViY2OxZcsW2jF2Vmw8PTUGac9swtqpMfDgaD9brIyIIrUduXIZt9upHQoDhS4Xff/Fi6hpMn553fVTJ2NEHy9Was45o64p5IWQ2r7LyTf4Ok3qVsTv/AGfZ9On0sbFxTF55wwkHigDXalUQiKRIC4uDlwuFwKBAFu2bEFGRoaOkmlmGOf9KJ4V7sXsiX8Fm0UTPtSHqLHxpLbbbSpIS/YO8DvQn+hgcj3XLNkXBl/H0c4LYRQl2Y7lf2nwtXRBVxe9ieIDRFtN9JOXf8QnGetRT3OhoRHpYEpbMDAw6IOjoyNOnDiBuLg4yv76ZiXeTE/CmWJyzvpw4kZ1KRK//ydySqgPqrZW1kiY/SQS5j5FVqo3MWevSbXUO6f+dzAW/zn4HY5c1q5lQ0VGRgaef/55cLlcJCQk6BSqZRieSKVS8Pl8rf9+j4zn4Yun1mPt1BjY6ekhFQQEkWqV325vx5Erlwe1Xyoeo6iL3nnnDv57+rTB1+qLB8cB80KCCW2FldWQ3ioz2pp0JdcyZYb72Z5T3MIi8f9wtY9qvAYOhwOJRIIdO3YwjiAGEg9EiHtWVhaSk5OxefNm7N69G4WFhf0qYbF2wXeIGBtHMsx1hbNYmFtB1VSGKiVRsbe2oQSRQU8QwtoNm4MO2LKdUFJxFg0tPUZolbIY4QFLYWVpY7gwQwCeToE43ScXXd3eBEc7T3g4B/VrroGGuAOaXPQ2Ui56SUkJvLy80NhITDdwtPME13V8z57bmvD98W04eflH2rXj4uKwa9cuRtCHgYGh3wiFwu5KD325c/cOzl7LRVtHO8aNDoaZlg+FoQhx7wpp/0xrSPvrS/+C8aODtE5qihD3kuqbeG//VzrzzvVac5Ah7gM1znujVqshk8kgkUggkUigUCgQGBjIHNrvA/bs2YP4+Hg0NDRQ9ge4ueOTJ9biUR5fL8OcmD5hAUVdLUksrr6lBUL+BK0P9/d3mS4Xvbi6GkIeDzYsFvkhLXvXtV5f/F1GIv1CPu72amvr6MCssTTh/INcz8rCAlcrq6GoUxLay1WNWB5OXaGhPz/T7pB2GkV6Jn2SQRf3rQddLpcjKSkJPB4PsbGxSE1NhVKp1P0gBeq2Rt2DaIjhPU9qUzbdRHGZ8W/Co8YSy4/duduJk5e+Mfg6jnZe8HGfSGofTl70kSNHktpO9TLESyryukLaS6n/XZibTAYGBkMQHx+P7OxscDgcyv6MC7/i35kfo7m1xcQ7o6a5tQVv/vwBvsmmv7h8lD8LyategZsD+T1rappbW/DpIQllOPm6mGXwdaXPITXsPm4jKWOXTuPc19ULG2IWw9fVS6955XI5UlJSwOPxIBAIIBaLB3y2YTAccrkcmZmZSEpK6k6bdHBwwLp16yij+ADg6Skx+PzJjTpD2bVBFeZeUF4GuZZ0zYFC5UVv7+xEmo5KR4ZgjLMTZvcxxo8VFqOlzbDh/L15VkDWiyqsqhlUybUmdSuek/ysNaRdJBIx6ZMMOrnvPOia8mianA1tQhxU2LBHor2D+MHOZjnAz4tc11af2zJrlj3klblQNRNDcZrVNeD7LeqZy8AedABwcfDGheKf0Nbr+6lUFmFi4DKwLKwNsp5mnKOdJ/KuE71Cvb3opvCgA/Re9KqqKtJYdVsTxo2ZDtmNw/g+ayttbXMej4fMzExMmjRJj90xMDAwaMfd3R3r16/HoUOHKN9NlaoqnCo6Az83H7jY98Pbq2tMPz3oBbcK8cae91BWT50OZGtljRfnb8DCsNnEuYbQg/7FsR+Qp7hCap/kx8P66cv6v+YAvI4trbfxanoKLt66pnPsG0s2YrJ/KBbwp2D2uEgAgLKlEc2tuqP8KisrcejQIXzwwQeQyWRobW2l1TpgMCxyuRz79+9HSkoKRCIRkpKSsGfPHmRnZ6OwsFCnCFzyitVYENrj5dbnDAiQfwfpxOIsLcwxyceP9uGBnMmsLCxQ19yMgnJi+l9xVTWWhYfBysJC6+SD/dvnOjvjp7yeWu+dd+5ijJMjgtzdjLLeSDtb/O/MeXTcuUPqmxHkR2rTtV5hZQ3id/2IG3XUF2qa6KqVK1fqmImB4T4y0DWGuaampL6McYsCz3cJBKGbEDv5bTjZc3FF8RthTLO6DlHBa0jP6vvHz7H1gqxP3rmquQxBo2fBzrpLhdIYBrqZ2Qi0dbRAXnW+u+3O3U6wLGwoPd4DWU8zztHOCzcqz0PZTHxxV9QVYXLIapMZ6AC9orujoyMptUF64zAu03jNASAhIQFpaWnMTSYDA4NBYbPZWLFiBSorKyGTyUj9t9tuI+vqSdy5ewfBnkGEkHdTGOh7zmZix5Fv0d7ZTtmvCWkP9PAlzzVEBvrRy2fww9nfSEN71zvv95r9NGqaW2/jtfQUlFTrzo99Ino+YoLCuye3s7LGRJ9gLA6PQehofwBAVWM9rfJ7bwoLC5GRkQGxWIzCwkJwOBwmFcvASCQSgkGekZEBmUzWL0dQgJs7Pn9yI0GZHRi4gQ50hbpnFxOr6dyqV+KxiMjuEo59Hx7omYzr7IwfzxEF2jrv3IH5CDNEaH7fjGSgO9va4HJFJUrrewxcMzMzzAsZa5T1AODsDQWpJnphVQ2EvGBSyTVtc6Xl5OPv6b9qDWnPzMxk/mYZ9Oa+MNAzMjIQHx+vV01JK0sHhHgvwMLJ7+CRqNfB81sKrnsUOHZdYW+27JE4c3kn4ZnW9kYEc+fDhk30ZOj7x+9o5wUpRcm1jk41xo6553kwgoEOAC4Ovjh7JQ13e2Xu1KpuIDp4NczMtGcw9PcFTudF9/GYCCc7T/KDA1xT1yGQzotO9btBVz5NU9v8hRde0GNHDAwMDP2HzWZDKBSCw+HQXixfKSuErLQAvDHjYWPVFflkTAO9uqEWb/38AU5pEax7lD8bf1v4HEkIbigN9JLqm/jwwDckY9bWyhqvLn5eZ/i9IQz0/hjnvq5e+NuCXhf/fSZ3d3DGFP9QrIycBTcHJwDArfpq6ILJVzcscrkcycnJWL9+PXbv3t1vg7w3AW7ueP+xNZS55oMx0D0cHCA5SxRrU3e0I8DNHT69LwIMYKDbs9moUKlQXE38XSyqqsbSsAldXnQjGegA4MlxQIbsUvfXDWo14qMjjbZeTXMLcuU3Se1UJdeo5mpStyLpwB/45vR5it4uRCIRduzYwZRPY+gXw8ZAl8vluHjxIhQKBeF/L7/8Mt577z2dL8yAUbMxI+xlxE5+B0Gj53R7rvtiYW6FqvorqGu8QWjn2I7CaFeiqmN//vjZLHsU3jxK6KtRXUd4wAqwLG2MZqCzLG1Qo7qBalVPqF1bx224OvrDzdF/0Ov1HkfnRVc2lSPcn6z0PtA19TkE0nnR9UEgECA9PZ0JaWdgYDAJUVFR3R6U1tZWUn9dcz2OFmQBuAs/Nx9YjDDXOedADPSc63lI3vcxahqp81dtrWwgWvQnzAudrn1NExvoza0teDfzS1RT1Dt/btbjCO9Ti71fa+pp1NAZ5yPMzAjCVhreWLIRTra9hGe1/Nv4uXph+tgwLAoXwMnGHsqWJtS36NbGUalUyMnJgVgsRmZmJhQKBZqbm1FVVQUHBwfGIKBBqVQiPT0diYmJSExMRE5OTr+EhanQZpwDg/egdxnNxHSZlrY2zBvXI4RrCAMd6KqL3teL3t7ZCWtLS4SNGWNUA93dwR65cgUq73m11e0dWBMdAQtz8jvREOvdVKpwvOg6qb1C1YDVUdptgnJVI178YR9OlVCX0ORwOEhPT0d8PLniEwODLixMtZBcLkdpaSlkMhmUSmV3/rhUKtX9MA1Wlg6IHLsGEWPX6F0aDQC47lEoukU0pq+VZSF63NoB74XvtxgHz71H8KLfuduBnKsSzAz784Dn1YeosY/jkvwAoS3nyg8Y7z3P4GvN5G/E1weJ5cduVJ7HjcrzeoXVGwpNXfQj+Tt1D+5FQkICtm/fbqRdMTAwMFATExMDmUzWrZ/Sl9aOVvx45mccuXQcT0xZiSmBZHGogdLc2oIfzuzF77JjtGPGjQrCXx8le82HA19n/YQbFPXOZ4VMwqwQstCToaEzzi3NLSjD01dHz4ffAMTq7KyssTg8BovDY1DZUIe9F7Jx5volVDXU63xWKpVSnqdiYmLA4XDA4/Hg7e0NLpeL0NDQh9bjLpFIkJiYOCDhvSB3T5TW1ZLqkNtZsfHm4pV6l08bCAtCefjtEjFV5mzJddQ0NcLFzs6ga3lyOHh0/Hj8eukSof37c+fwRFQkrFj0qSSG4MnoSci/+XP312Z6Xzf0n5G21O+7MlUjMmWXEUtRLx0A/ii8jm2ZR9BIceEK9GgbPax/ZwyDx2gGulQqxYkTJ5CRkWGU2p6hvkswe2LiPcOc6v6anqBRs3H4/LuEttLq82jraAHLYuCHk0nB8ciS7SC0XSjeAwHvOVhasGieGjxjXCfAw2ksKup7yr0pqvNQpbym04veX3zcJ8LR1pPkRT+a/yXWzU8x6Fq6mBLyGE5e/lEvFX4OhwOxWAyhUGiCnTEwMDCQcXR07BaeSkxMpBxT21SHTw5+jt+kB/GkYDUC3H0px+nL0YITkJzcgyYtqvEro2KxctLwfDcevXwGRy+fIbX7uIzC2hh6UThDQWecezm5oowiJN3NwRmro+cPel13B2c8M2MxnpmxCBdvXsPhgnM4fb2AUr1eG5rzV0ZGBqmPyngfM2bMA5knK5VKIRKJ+nUe9XJ0QoS3HyK9/RDG9cGec2dQWFlOGvf+42sGpdSuD2FjuPBw4KCioSea9C6A3y5dxJroyQZfb920aSQDvVGtxp4LFxAXbdzow6n+vvBzGYnrNbWI9B4DK0vj+RLZFvRzZ8iuUBroaTn5eP8w+ZJVA+MIYjAEBvutVyqVSEtLQ1ZWFrKzs41WFiTUdwmmhb7QnVM+EDh2o8Cx9SIor9+924mSshMYyx241zlqLNlAv92mgqxkHyYGrhjwvPoQHRyHX069QWg7VfA/LJn6Bs0TA2fmhI34+eRbhLYeL3q4wdejQ18vOo/Hg1gsZupNMjAwDAs2bdoEgUCAuLg4KBTU4ZHFlSV4Y08SfFy5iPaPwCT/CHhwqNWMe3OzrgyXy4pw6eYV5Mkvoq2DPg3I1X4kNj/6HHxdxwz4ezEmJdU38XVWOqnd1soaL8yNM7q3v8c4J3rvfV29wLa0ojTQX5y7yuD74I32B++eqNyhglycvnYJZ64XDHpebcY7n88Hh8OBQCCAo6MjeDzefWm8K5VKiMViJCUl6TV+ItcX0wLGYop/ENwdekolNqnVSD9/ljT+kfF8BLh5oL+OooGwIJSHr08SDcMMaZ5RDHQ6L3paTi5WREzsUXQ3EhunTcZHR47j1YWDv+zSRudd+n+3c4pbKFc1wJPTFaHbpG7Fvw9nIUNGriIBdDmCkpOTmZB2BoNg1tDQMKi3ivz/2bvzuKiu83/gH1AERRhEAdfBBXcGNcYlcUiiMU3MmLXNBmnSJP3+GkjS7ds2od/ubSo2XdLGik2zmEXUGJdEB03cYhj3HVBc2AaQXWSHAYTfHzjKcM4MMzB3ZjCf9+vVV+u5d+49sWS4zz3PeR6jEcnJyS7p1blk3uvQjH9YcuTGP4I8EcbyH9ELwK7jy3HswscW45rxD0M3/w9drmX7r6fr7rOtB38jVHQfFjgOP3hAfMiQzcvaMfEcy+Ntba34+8Z70dh84+1qP+8B+Om3UzDQt2s/3nbJ/RyYlxfw5qZHhFX0mRN0eOT2X1m9KtDeTaJSl3l5ice6zquxuRZ/2/S41VX0mJgYJCYmMs2IiDxOVVUVli1bhqSkJLvOVw8djWEBwRg0YBD8fQdhkO9AeF8rBlpeU4G0gjOoaqix61q3jpuBF+9+Bv6+g+z6vQl0/W629TvKsd+bsvvWNzfgd5vekqa2v7Q45npquz2/N23Oy2Lf7o3j1oLzRVPnYNywkXg39TPhUg/MjMYLdzwkn5fN+gC2/z6kxalMjdh99jj2ZB5Hjh1F65ypc/AOdKzEBwYGetxL8LS0NMTGxsJoNNo8Tx08DPdFzsSiKdMxLODGdsnOf+/Ld3yGL89YbiEY7OuH/3z3+xihCkK3P/Ne3T1q23ou6zhWUl2NJ/8rfle89WQsokaPtrIHvef/LhZXV+Pxt98Wxn909yI8NvsW4dri3G18h9gxr7pmk9CXvfNn7XmG7e677aixAC+v2yI9CwCeunUGfrI4GnVNJryYvBkXyiqk56nVaiQnJ3vcvwPUd/X4FZi58uWaNWucMpEBPoPR2tqItnaxRYGvTyCevPt9hA2Z4pR7AR370LsG6NlFX/f6unOnxAoBekVNLrKL9mPCyAW9vr413t79cevkx5Ca/s71sattzTh64VPcoXnB6feTraKfytZjYdQLCLKzorszVNWVWj3229/+Fv/7v//rsrkQETkiKCgIy5cvR3x8POLi4qR70zvLv1yI/MtixWFH+PsOwqNzdLh/xqJeXUdp7tx3bi04XzozGg/MvAM/Xft34TPOSm2312DfgXholhYPzVqAtYd3IfmQ/e1ne8u81928At95ddqcKq/RaKBSqdwWvKelpWHp0qU2F44enjkH90fdgvEhYddGrAeNXYNzAPj2LXMVT23vbLhKBW3ERKHl2vaM9I4A3clGqFTQRkTAkJVlMb7m8JFrAbqy5MG5c1nbQ262Lf0c7pw0Hn/Q70JRtXwhSKfTISkpiQtB5FQOB+hVVVVISEjoUWA+JGAsggPGIThwHIYEjMOQgHAMDRwPf7+h2HPizzh+4SPhM6FDpuCJRasxcECAw/ezRR0qtm1oaKrE5epcDFX1fM9f2JDJUIfeivwyyxY2R8+vVTRAB4B5U57CgTMf4mrbjZTGo+c3QDv9WXh7OzcdaeYEHb46/Y64Fz3t3W5W0Z3nQOYGpBz9p9XjAwcOdMk8iIh6Izw8HCkpKUhNTcWyZcu6DdR7fJ9hY/DiomcwNmQMXJGS21P6U1/hKzftO7cWnL+y+EksmjYHv964UroP/IeLn4C/r3t+5xzKFtPdH5y1AN+efSdKqitQVHUZxVWXUVx9GcVVlbhUVYHGZtuBSU8ZjUYYjUabwbv5P11X4p2lu+B8YugI/PzeBzsCczvqjxmyxJTmwb5+ePQW13eC0UZMEgL0vecz8ePF9yiyV/vx2bOFAL2irg6fnTqNh2b2/dXis0XWF3mAjgD+xeTNVo9zvzkpxaF/m+15I2nm5dUPYUOmQx02H+Fh8zFy2C3w6S9/G3axcJfN4LwnheC64zcgUBpI55Yc7FWADnTsRe963eyiA7hSW4ghAc5/y2k20FeFyLH34nTO1utj9U2XkVmwV5GK7vOnPoEdx960GHPFKnpTcx1Sjv4LJ7NTrJ4TExODmJgYxeZARORs0dHRiI6ORmpqKlauXAm9Xu+0ay+JWoRvz13qkVXaO8stL8Rqg7V957GKzl8WnPv7DsRruucQOXoCtp78GhmXsoXPPTDzDkSOdm5BVnvllBdJU9yXzrgNQwcHYujgAEwfdeOZxhyPVjfWo7iqAsXVlSiuutwpiK9EdWO9InM1B+8y5n3unYP3BQsWOLwqaes5ddAAX/xP9N24P2o2+tnb9wzA6QJxzvdOj1K0ars190VqsGLvLtR1WvJxpOcAACAASURBVPltbGnBnnOZWKLROP1+s9RjMGvMGJwsKLAY/+jQYeiiItHf29vp93SlM8W2A3RruN+clGZ3gL5mzRrExcV1e17k+G8jYtRijA6dA1+fwd3uD6uuv4Tth/9PGPf1CcSSea871D7NUerQOUIgbSw5hFsn9y6wmzxmoVCEDmjHocwPsGSu+M/qTPOnxVoE6ABw7PwGRQJ08yp6U0udxbiSq+jFlVnYvP91FF+5KD3OL00i6uvMgXpVVRX0ej22bdt2vTWpo/x9B+EHi57BnPEzuz/ZzepNDVi27T/SY9+LfhTjQkZDqZX/elMjftMlOB8XMgqvLH4S40JGIbe8EOuPfCl8ztWp7V19fnK/MDZp+BiMDBpm83Oqgf5QDRyEKSPUwrFGUxOKqq8F7RYBfCUq62vRrsD/B1VVVRYV1tVqNTIyMhy6hq3gPDRAhb8+/uy1/eKOOZB1QRibMcZ9xfLum67Bpycsn123Z6QrEqADwPO3345X1q+3GCupqcGOjDNYGqXMPV2hrb0dZ7pZQZdRqVTQ6/Xcb06K6jZAtyelvX+/gYia8DhmT/keAgc5tnJ6IGMFTC1iUZtFt7yK0CHy/oPOog6dA8Cy4EZe6WG0tbX2OiV8zuRY7DrxhsVYes42LJr1Y/j6+Pfq2raEBkUgPGw2jKXHr48Zy04q0nLNb0AA5k99El+lvWMxfq7gazQ118FvgHN7c+aWnETyV7+0WhBOo9EgOTm5z1WZJSKSCQoKQmxs7PUXjkaj8XrV9127dkGv1+PCBTF4MJs2ahJeXPQsQgKHumS+vfX7LStwpV58CaGbeZei+847gvN/C8H5Hx+Nv562/taudd2ktrtny8AhSTX3b02f06trDvL1Q0ToKESEjhSOmVpbrgXtFSiuqkRxdSWKqi6jqKoS5bVVaLNRFdsR8fHxDp1vNBqtBuejgoLxt8e/h6GDA+Do/09ZZSUoqRGvuSBiskPXcab7IsUA/XRhAYqrqjBCgX3Q1lbRVx84hPs1kfB2IBvBk2SXV8DU2iqMT5s2DWfPyrsk8DmTXMVmFFpVVYWlS5deLwjSld8AFW6Z9CxmTozFQN/uq1h2VV1/CWdyxeqJkeMeQeR45fubqsPmwNcnAKaWGwFfS2sjii5nYHRI71YbosY/iNT0JJg6rS63XG3C8Quf4Pbpz/Xq2t2ZN+UpiwAdAI5f3IQlc37u9HvNn/oEDmWus1hFb2quxaHM9bhrhvOK0x3sZr859wER0c0uPDwc4eHhSE1NxaZNm2xWp/72nKX49tyl9myxdbt6UyP+9NkK5JYXCMfGDhuF56IfVfTeXYPzRVPn4JV7nrr+53WHvxD6oAPm1PYIxebWnV1njwkvDXz7++CuKcplS/j298HYYWEYOyxU+NlqudqK0poqixX3omsr8CXVVWhtE4sAy6hUKoe3qMXGxkqD8/HDwvDGY88gcGDPtkbI0tvduXoOABNDwxAREoqs8jKLcX16Gr4ffYci97S2ir7zbCbunT5NkXsqbfuZ88KYVqtFbGysNGNYo9FAr9ezGBy5hNUAvbvgfHToXDykXQG/AV1beNnvQMYKYUzlPwoLZ73a42s6Sh12Ky4W7rUYyys51OsA3W9AAKLGP4ij55Mtxo9f+AS3TXsWXl7K7duZNPoODBk8ClfqbjxwZObvwX23/gxeTn7TaW0V/eC59Zg/9QmnrKJv2v+61f3mTGknom+S1157DStXrrR6PCRgKH6yJM7jC8GZ5VVcwj92vIeiqjLhmL/vQPxC933F7l1vasRvNlsG589HP4QHZt15/c+55Zew/vAXwmfdndoOAHsyjwtjd0yeAT+fAW6YDeDTrz9GDxmG0UOGQdYKq7SmCpeumPe9VyK3ohTHjVnCdWJiYhwKgpYtWyZ9Vp06YjSWPfo0/HtRDXx/liSIc+Pqudl3Zs9B4g7LGhXbM9Lxgjba6c95gO1V9G9Nm6rIPZVU3diIT0+IPzNLly6FTqeDSqWy2FIUExODVatWuXKK9A1nNUqMj4+3GpzPnPg0Hrvr/V4F59ZWz6ePe1jRfedddaS5W8ovPeKUa8+ZLAaNNQ0lOF+wxynXt8bLywtzpzxhMVbXWIHCinRF7jdzgk4Ya2quxans3hU4amquw8qt37ManKvVauj1egbnRHTTS0tLg1artRmc3zpuJv78xK+uBeee76vMw/jtpjelwTkAvHR3LEIVTM9/L3XL9eDcXAyuc3AOdKS2y7izajsAlNZUIr0wRxi/N9L1lcXtFRYYhFvCI6CLmoPv33EvFk6R7+F1JL3daDRaVIo3Gxk0BH/5zjO9Cs6tmXC9LZvzfXr8KD49frTb87QRE4Wxiro6HM3LVWJaADpW0bsquHIFe89b32bjqVYfPAZTq5jRodPpEBQUBJ3uxnMtg3NyB2mA/uqrr2Lbtm3iyV798a25f8ai2b/u9R7trEJ5z87Zk77bq+s6Sh0mtlsrLD+F1qu9b0ESNHgkJo2+Sxg/el7+C9+Zbol4BAO67HXPLen+S78nggaPwMzxYpB+MHO95Gz7FFdexL+3fc9qMTitVguDwcAiHUR000tNTYVWq7X60hwAntE+jp/eH+fxVdrNVqduxL93f4yG5ibpcd3MuzB3gnLf72/tWou9mR0v40MDg/GHR1/CvAmWBa86UtvFXuzuTm0HgM9Piq34RgYNlRZ981Qbj4sF7mJiYhza3ysLzgHgp/c8CD8fnx7Pzex0oetS3D84kIoVe3dhxd5dOFWQb/PcAD8/3DddLNC2w8HCeo4wr6J39f6Bg2h3Uu0BV6hubMTGk+KCVeefPfNLoqSkJAbn5BZCgJ6amoqkpCTZuXhQuwKR477tlBvL2qpFjnvEpavnABA2ZApU/paFUNraW1FQdsIp15etoueXHUd5tfjm25l8+vvhloiHLcaKLp9R7H53zRDTEKvqi3HKRis0azILUvHezldQVVcsPR4XF4eUlBTuAyKib4To6GgkJiZCpbKetbbx6DYcyznlwln1THlNJX6+bjn0p7+yek5Hv3Pl9p13Ds7HhYzC3576GcaFjLI4x1pq+7iQkXjhjocUm5u9DkuKw90fNd8NM+mZjEtG5FaIFbQdyYhLTU1FcnKyMH7npOmYMWZsb6bnFp2D8hV75YtYnclW0VOzLqK2Sf7Syxkem32LMJZbcRmpWWL7QU/1zv4j0tXzzj97UVFRzNAkt7II0KuqqqymFs2f/jLGj1zolJuWXclETb34Vnr2pKedcn1HqUPFVXSjk9Lcw8NuhcpfrGx/JFN8QeFs86Y8afHnUiur0c4wZPAIDA0U39zvPf2O5GzrDmZ+guSvXrNaqT0pKYnF4IjoGyc+Ph56vR4aK62U6k0N+Pv2JHxk+MTFM7Pf0Zw0/GL9MuRVFFo9x993IH5+v3L7zred2nc9OF84dS7+9tTPpKnq1lLbX1n8pHTclQ5ln0FpzRWLsf7e/bBwqhg8eaqUNDGjT6PRIDo62u5ryLZ7DPQZgLi77u3V3MzqJIHuYF/X9D7PKitFSTdtFaMnTsLwQMuXds2trdh5VrnFmDsmTsTwQHEh7YMDBxW7pzMZsnKx4biYiaTVaoWfPUd+FomczSJAX7ZsmbQqrDrsdtw2/RWn3bSgTAx+x4TOVbytmjXqMHEfurHksNOuH615URjLyNthNQh1FpX/cEwZc+OlSoPJ8R66jhg3XHzR4cgq+uYDr2P7MXmldpVKBYPBwLeZRPSNFRUVhf3790srDJttP70bCev/hPLayy6cWfc+SN2IN1LelrYq6yxewX3nezOP4L3Ujto3Ly9+Cq8sfkp6nrXU9ifn3SustLvDrrPHhLG546ZCNVC5Fq7OVNfUiD3nxCDJ0b3ner1Y5+Z7CxZea6fWe1nlJcLYhFDl9p93ZZD0X+/qvkjxhZ3exlYYZ3h+gbgX/XxpGQ7mKLf/3RlyKyrxy8+2S0tnWsscJnKX6wG60WiU/oAGDBqJB25/y6kVGrMu7RbGxkiKtbmKbAW9uDIDTc1if/aeiBr/IHx9LKuZt15twsmsTU65vi3zp95oVRI4KETRewUPFnumAsDJborFNTXX4f0vX7ZaDE6j0XC/ORHRNcuXL4der4daLd9vbKwowC/X/wmZl9xfvKnB1IhfrEuE/vTebs/VzbgLc8cr8z2/N/MI3tq1Fv6+A/G3J3+GRVPlxdRspbY/4eaq7UBHcThZevs908XnGE+1PV2sPq9SqRx6AS9LbR/s64cHZ7jvWbK3uq6Gd7cPHYB0H3pWeRnOl4gvF5zlfk2kdBX9HYNYU8BTVDU04oefbJH2PU9ISGBfc/I41wP0hIQE4WA/7wF4OPo/8B3gnLeRZgVlYmqTOtR9lUdVg0chNEhsm5HnxFX0uVPEXzzHLvS8iJq91KEzMSJ4CgDgrihxJd+ZfPrLU7/ySk8gr/Sk9FhVXQne+/Il5JbK9/zrdDro9Xp+eRIRdRIdHQ2DwWBRbbizelMD/rjl79h+WtmuIbacvXQRL334G5sp7WZjh43GY3OXKDKPIznpeGtXMsYNG4VVz/7a5iq4J6e2A8Dus2JwG+wfgNljJ7lhNo5rb2/H56fFZytH+57LAvSFUzTo369fj+fWVakkxbxrEO1Mw1WOB+gjVCrMlBRu06e7fhX9XEkpThd0/++6q7VevYofb/gMZbV1wjGdTieNf4jczRvoKLQhq9o+e/LzCJEErr0hS28HlF1BNzXXwtRNOrmsmrux1HkBetT4B4WxmnrlW64BwN2zXkbsorcwfew9it7n6tUWq8dke9FLKi9ipf5ZlFjZGx8TE4O1a9eyGBwRkURQUBDWrl2LxMREq+d8aPgEq3Z/gIZuUsudbcORFPxu8z+7TWkHOvadx98dq0gF+rzyS1ixK9nmfnOzd7/e4tGp7YC89/niabfC28tq11yPcjj3PMprxcDXkfT2tLQ06XbMRVOdm31RUlMljA0PVO55pOu160xN3e5DB+Sr6F+cyZCuFjuLtVX0Dw8577nZGZpbW/HzTduQWSK2ctRoNExtJ4/lDQBr1qwRDvj0H4Q5U/7H6Tcsu5IpjI1RcPU8v+wokj6/D0mf34fq+iKr58n6oTtzBT1o8EhEjX9AGD96XvlV9PEj5mHCSOWruzbY2BKQV3oCVXU3Uq4yC77GeztftlkMjq0tiIi6Fx8fD4PBYDXlfd+5g/jDlr+7ZF96g6kRv9/8T2w4Yn8Hj2e1j2JcyGinzyWv/BJ+s3kFnot+BK8str1Cm1GYhW2nvhbGx4WMwhPznFN0rDuHs8/gqVW/xTv7Ppe+2EgvzBaKwwGe3fu8q62nxOcqnU7nUJac7Jl1uGoIpo8UV5L7kjBJl4ascrHSfVfaiIkY3KXfe2NLC/aeP+e0uck8v+A2YexQbh5yyisUva+9Gptb8Mr6LTiQI77MUalUSEpK4gIQeSxvo9EoTRWaNfG7Tk9tB4CyKvELIzRoitPvY3bs/McwtdTA1FKDY+c/tnqebAW9staIukbnfdHIVtGNpUdRVpXltHu4U2M3Rej2pr0LADiZnYK1Viq1q1QqtrYgInJQVFQUDAYDtFqt9LixogAJ61/HWQX3pedVFOLn65bhzCX7O4bE3x2LhVOd/wK53tSI5Snv4vePvIyFVvabdz53xa610mOuSm2vNzXizZ2foN7UiM9PGfDnbR8K58jS2yNHjUdo4BBXTLHXiqsqccIotuNyZPUcAFJSxJc/i528eu4OESGhwlhWWfcBeoCfn7Tl2ra0006ZlzXWVtHfP3hI0fvao95kQtzajThVKF+YS05OZl0j8mjesuC8Y/X8/ylyQ1l7NUVX0Etv7HfPl+x9N/MbECjdh55T7LyiF+FhtyJsiLhP7Og58f+Dvqjosu23taey9dh7+l1sPvAn6XFzcM7WFkREjgsKCkJKSorVKu9K7ktPOb0Xr65bZvcqfUc7tf9RJDg3Xz/p2d/YlZq+/vAOlNVUCuOuTG3/57Xg3Jo6UyN2S9Lb+1JxuC0nD6K9Sw1ttVrt0O98a+ntd0+d0ev5udtgPz+hjZs9+9AB4DuzxZ+DtMJCFFSKP9fOJFtF/+r8BRTbkZqvlOrGRvxgzUack6S1Ax0ZmnzOJE/nLdt/MXvSc4qsngPyAnGhQ5RbQTe13Ei7LrtiO4CcNGaRMObMNHcAmDNZXBlOz03pdvXZ0zW3NqLosrh9oSvzKnpXGo0G6enpfKNJRNRLy5cvR1JSElSSlFnAvC9dXKHtiQZTI/6a8jY+SP3U7s/4+w7Ebx/+oWIV2x3hKanth7Ite1d3XRWXrZ4PGuCH6Inu/zu0R+vVq9iVeUoYd7RAV3p6ujA2KWwkRg0J7vHcrJHtN5ftS3emiFDLVfSsMnmQ2dXE0DDpavY2hVuuRU+MENLr29rbsfqAe1bRi6tr8D8fb0CWlTT7pKQkZmhSn+BdVWX5ZePT3x+zJz/v0kmo/F1XfKXsynmrx2Tt1pwdoM+YILZcu9rWjOMX7X+48UQ5xUeFN+P20mg00Ov13AtEROQksbGxNlux7Tt3EK+tf71XxePyKgrxi3XLcDTH/lRac3CuxJ5zR1lLbff3Hejy1PauFk2dbfHnracMwjmLp82GT//+is3NmQ7lnEO9qcliTKVSWe1CYE1qaqowNks9vldzs0a2J7ykRtnFlK5V4u0tFAfIV9G3n8lwyrysCfDzw+O33iK571mU14lV05WUdqkIz65ORn6l+BJFpVIhOTmZwTn1GULZz4mj71Vs9VxWIC7QhcE5ADS1WK/mrg4TC8XVN1WgolrcM9Ub0pZr59ehrU25iptKyykWMyPmz+8+dTEmJgb79+9ncE5E5GTd70svxGvrX4fRjjZoXe3LPIQ/bH7TocJzY4eNxm8f/pFHBOeAp6S2rxdS2zWjJ0AzesL1P1srDqebIba68lQ7z4itVnU6ncO/+zMyxICzrxeH6ywiNEwYs6dQHADcFylWc69qaMC+C8rVnQCAx2bfIqyiX21rQ/KRY4ret7NtaWcQl7wRNU0m4Zh5++TSpUtdNh+i3hIC9CnhYiEzZzFJgmNXrp4DQHWduAe+M9kqem7xQafOQRag1zddxtn8XU69jyvllIgB+sMPP2yzt2lMTAwrtRMRKci8L93ad3F57WX8Ycs/cMzOVfAGUyOSdn2Ilbs/squFmtnYYaPx20d+iLEeEpxnFGZh22kxtT1yVASWzrzDJXOQpbYDwJPzFlv8WZbePnXkWIwMGqbY3JypqqEeR/PEILEnq5lpkpTtqDFjezKtbnXdDw4ApdVKp7hLAnQ709wD/Pxw3/RIYVyvcJq7tVX0z06loaapSfIJ57na1oY3d+/Dn7bvwtW2NuG4OTjn9knqaywC9EG+Q6EOEws+OEuTpA2Xr4+4Z0ZJtlqtAcDE0eI+9NwS5+6l8RsQIG25duSc2DqkL8gtOY7y6jxhXKfTWd1fxuCciMh1Vq1aZbXnb72pAX/dvqrb4nF5FYX4/ZZ/4Ktzjv1ONAfnSvQ574l6UyNW7LaS2n6PK1PbxTard0+71WL13FpxuPsi5yk6P2fanXkKbe29Kw4HyNPbxwQPw6ABvpKzey8idLgwpnSKe08ruZtpJ4rV3A/n5qBC4XRz2Sq6qbUV64+KP7vO0tDcjB9v2IJ1x8TaBsCN7ZMMzqkvsgjQJ4y+B15eXordrFzWYk3BAnE9IWu3ll/m/DQdWbG4ostnUFih7JtOZ2truwr94TeEcY1Gg/DwcISHhwvplQzOiYhcLzY2FgaDwWrxuA8MG5BkpXjcvnOH8Ict/0Ceg+nwd02Zj788+ZrHBOeA7dT20EDnFxuT+Zcktd3fd6Cwer5Hsno+2HcgtBPFdGZP9UWG+M/Qk9Xz/HyxovmEEDGIVlqdSblVYVkld3tX0AEgeuIkoVhcO4Ctp5VtuRbg54f7I6cL458cP4n65man36+4ugbPf7gOR/MKpMe1Wi2Dc+rTLAL0cSPudNc8PEbYkCnw9bHcg9/S2oiCshNOvc/w4MlQh84Wxo/0sZZrxy5uRkVNnjDeua9p51X0uLg4BudERG5i3peu0cgDvH3nDuJvKassisd9aPgUSbs/dCilHegIzuMXP92r+TqbJ6S2bz2ZKk1tf2rePQjr8oLgc0lxuIVTb8GA/j6Kzc+ZMosLkF9ZLozb2v5mjSxAHxOsbJr/hBAx5TzbgRXtnuhayd3RVXvZXvQdZzLQ3t6zQr72kqW5NzQ3Y8tJ574cMBeDy7ss1mUAOn62UlJSWNuI+rTrAbqXVz+owxa4cy4uUSZZxe9Ktoru7H3oADB3ivgL6lz+HtQ12l90x52ammux59R/hHG1Wm3xdjw6OhpqtRpJSUlYvny5K6dIRERdhIeHQ6/XW62gfTT3NP6w5R/Xisj9GSlWUt+9vYUyNtc9Nvd+jwvObaW2v3zPUy6ZQ1nNFaw9vFMY14yegAdnWWabpRdmo0xSHG6JRpne8Z29Z9iB1z59B3/9YgO2nNyPs0VGNLU4vhK6Q7J6rtVqER4e7vC1ZCnuo4KGOnwdR8j2oSu5gg4AM8eInRfs7YcOyAP04upqnJC84HCmESoVlkhW0ZOPHkPL1atOuccXZ84hPnkjaiXF4ICONmpcBKKbwfX+HKND5sKn/0Cgh62y+gpTs/Uq7mbq0Dm4WLjXYiyn5ADumPGSU+cyecxCqPxHoLq++PpYW3srjpxbg0WzXnHqvZSw9VAimiR/n7J95waDgW8ziYg8RFBQENauXYsXX3wRycli5lZeRSFeXf9nq5/38fFBS0uL9Fj83U/jrqnKB5GOspba/sT11Hbln39kVdsB4IU7xLo0u8+K2+umjgjHmGBxn7IzVTXU4dNjN7IM9nTqXz52WBjGDAnBiKBgjBoyFKOChmFEUDCC/cXuP/WmJnx1Tty258xWV6OHKBugzxgTjtOFRoux7LJSLIiYrNg9Zf3Xs8pKpYG7zAiVCtqIiTBkXbQY356Rjtk9eDHiiBcW3IbtGZbZIVUNjdiWnoFHZs7o8XXb2tvx768MSD4i39NubqPmaF0DIk91PUAfO8I1qV19waTRC7H7xF8sxoovZ6CpuRZ+Tm5BN3dKDHYe/5vF2Mmszbgj6gfo32+AU+/lTF8efwtnjLuFca1WK/3ly+CciMjzrFq1CtHR0YiLi7P7M7aD8+/irqmeV8DMdmq7a7b3bT2ZioxCsW3rU/PuwfiQkRZjdaZG7JEUh7vXBcXhvjhjve5OXkUp8irEFG/f/j4YExyCEapgjAwKxsghQ2G8XAZTq+XPiUql6nGAbjCI6f7DVa5/tiipUbqSu/gCxtE09+iJYoC+78IF/PSeZgwaoNyzpXkVvWuQvubwUTw0Iwr9elDnqqG5Gb/+LAUHcvKkxzUaDZKSkrjfnG4q1/PTxoR63i9UZ+hJGzfV4FFQ+Y8UxvNKDjtjShaixj8IX5/BFmONzdXIyE1x+r2c5cj5T3HgrFhxXqVSWa0STEREnik2Ntbu7+6BAwdKg3N/34FY/kSCR66cd6S2i1kCnpLa/tT8e4TxPZLV88G+A3H3NLF2jbNtTzvi8GdMrS3IKitC6sUMrD/6Nf7x5WZsOr5fOK8ne8+tGdC/PwIHKlt8cMYYccVZ8UruvWi1ZrYkUiOtqr7nXPfbPHvridniXvTi6hrszHT83qU1tXj+w7VWg3MWg6OblTcAeHv7YFiQZ1VTdxZZoG0PaT/0EufvQ/cbEIDJYxYK44c8tOXaGeNubD/yN+mxxMTEHu0rIyIi9+quwntwcEfxssZGMT3b33cgfvPwjz2mx3lXVlPb57quarsstd3fdyB+eM/j0vNlxeEWTRUDHyWsfuEX2PTS7/DPp+Lxq6UxiFv4AJ6YcycWT5uFWeoJCB8aKt2bbY/OBWQdIet/Lkurd6YvMk7j959/KoyfLjBKznaurunsjrRaM5MWi8vI6PGc7DUxLBSzxojfBcmHjzp0nbPFJXh29RoYWQyOvoH6A8Dw4Cj08+4bFUF7K7/Mvi8IddgcpOd+bjGWUyS+DXaGaM0PkJaz1WKsojoHxtJjCJcUrHOXM8bd2Gj4Ddol+/Ti4uKcuq+MiIhcKyoq6nrxuOrqG6uE06ZNw9mzZ6WfCQkYip/d//88NjjPKMyC/vQ+Ydylqe2n5KntP7rn8WtV2y1/p7qzOJyZn88ATAwbhYlhkixELwBoh6mlGZfralBeW42Ka/9dVluFrNIiZJUVCR8zt1/tic4/j2bDBisXoKdeyMRfvvjc6vHSmiqESfaKO0tEaJhFYbg6kwl1piaHXowsiYzEp8ctMzHSLhWiqKoKIxUOap9fcDteWfeJxVhWeQUO5uTitvHjuv387nMX8Hv9F1aLyyUlJfGZk25q3gAwfGjPCzfcrCaOFle1axqKUVnr/CqYQYNHyluunV/n9Hv11P4zH2FD6i/R1i5+WcbExLA6OxHRTcAcpJtX0jUajdXgfOyw0Vj+5GseG5zXmxrxb2up7Yvdm9p+97RbMX9CpPQzsuJwkaPGYbTCxeEc5eczAKOGDMNM9QQsnjYLT827Cz9a/DCmj5QH4T1dPbcmaKC/U6/XWW03ldp7sqLtiAhJezdH09wnhoYhIkT8mUnJSO/xvOx1i3qMdBX9425W0dvb25G0z4BffZ4iDc5VKhX0ej2Dc7rpeQNA6BCxLYIzNTVXI+vSHhRfVv5LwVn8BgQiNEis0plbfECR+8larl0o3Ifq+hJF7ucI/ZG/YOfJFdJjOp2OLS2IiG4iUVFRWLduHRYvXoz0dPnv7ZCAofjNIz+Cv6+ye4B7wzNS29cJqe3jQkbih/c8IT2/tKZSWhzuPhcUh3OG5tZW7Dx7QhhXqVRW2/rZQ1Ygzt+vZ2n29rhfMwvPLbgLI1RB0sJmru6FDgAlkiyC7iyJFF8Cbbfy77SzyfqinywoRGax/Lm2qaUFP9/4oAwCAQAAIABJREFUGT6yEsRrNBro9XpWaqdvBG8AGKaapNgN8ksP491t92JLajxyi8UKqp5M1g9diUJxwI2Wa521t7fh2Pn1itzPHlfbWrHh61/i6IWN0uPmyplERHRzWbFiBXbt2mX1eHntZXyYuhENkpZhnsATUtv3ZB5DxiXL1HZ/34FIWPqs9c+cFYPzQQP8oJ3UN4pg7ck8hYZmyx7V5hZYzt4rHOin7Muhp+dH4+Pvv4If3CkW8csqVzpADxPS2XtSnO4+SYBeXleHI7m5PZ6bve6YGIHhgYHC+IeHxCKE5XV1+P5Ha3EgRz4vFoOjbxpvAAhRsEDcrmO/Q2Ozsi0pbBkTOqfHn500epEwlltyEG1trb2ZklWyVfST2VvQ0mo71UoJpuZ6rNnzY5zNF1upAR0r53q9nsU5iIhuQklJSUhISLBaNA4Avjp3CC9/+GuknN7rwpl1zxNS2+tNjXjn68+E+//p2z+4tu9cbnemmN7+relz0M+7n9PnqITNJ8QsQ51Op8iqZ4DfQKdfU2aCpKp6dpny2Y1dC8XVdZN2LxPg54f7pktW0V1QLA7o6Ive1dcXs2CsvJHZkllcgu+tXoOcisvSa7AYHH0TeQcHTFD0BsNUExW9fk80NdfadV54mBjct7Q2ovjyGcnZvTdD0nKtqbkG6bl6Re5nTXHleSTpY5BbIk8ziomJwdq1a/llSUR0kwoKCkJCQgIMBoPN1OR6UyM+SP0Ur65bhryKQhfO0DpPSG3PKS9CaOCQ639eNPVWvP1cAsaHWG/9eig7Q14cLsrzWtfJZBblI79S3CedkJCgyP0CFExx72zmmLHCWElNNUoV7ocuVnJ3bA+6WfRE8Tk8NesiGpube3Q9R9yvmS6sorcDWHukI1Nkz7kLeDH5E1xpaJB+Pikpidso6RvJe6jCAfSD2n/h9shXMHb4AgT2oCe5Esqqztt9rqxYXG7JIWdO5zprLddcWSzuyPkNeHfHC1b3vicmJvLLkojoGyI8PBxr166FXq+HRiO2bTLLqyjEq+uW4YPUT92a9u4Jqe1AR3/zN5/6KT774V/x2Q/fwI++9QQG+9pe8d0tSW/XjB6PkUHDlJqmU+kl/dO1Wq1T2q+mpqYKYwN9fCVnKmPGaPGfQelCcdoI5zyfR0+cKATJza2t+NJK8Udnk62if56WgX/t3Ydffa6XFoPr168f1q9fz2Jw9I3lPVTB/edmt0e+hO/c9S6WzPuzcKygTPxC9yThkn7oxlLHejk64g7ND4Sxiuoc5FlZzXaW5tZGbPg6AduPvoGrbS3CcZVKhaSkJKdXYSUiIs8XHR2N/fv3IzEx0Wbau/70Xrz04W9wNEfsW60026nt4hYyT1JnasThHDE7794+Uhyu3tSEry+IadNKBlgD+vdX7NpdydPclQ3Qh6uCLFbRZYXj7KWVrKLvOOOaNPf7NdMx2Fd8mbLuqFhMEABGjBiBffv2YcmSJUpPjchjeQ9VRbh7DooKG9K7/fWyQnGF5SfRetUkObv3ggaPRLik5drRC8oViyuvzsV/9E9b3W+uVqvZ1oKIiBAfH4/09HTExFgPeOtNjXgj5W38fvM/US5JNVfK+6mbpantj8+9z2Wp7T21R9JabdAAPyyYaD1rwZNsTz+KlquW9XlUKtVNE6BHhAwXxk4VGhW/78sLF2Owry8G+/rivuk9/1l4bLb4LHumqAhFVa6pEXV/pH3dombNmoXDhw+zGBx943kPCRjr7jkoyndAQK8+HzZkCnx9LK/R1t6KgjL5mz9ncGXLtfTcHXg75RlU1hZIj+t0OhgMBn5ZEhERgI796atWreo27f3MpYv4xfpl2HAkRfE5Hc5Ow95MMSNvuotT23vq81NiG7F7+khxuPb2dnx+Stz6p3TGnU8/1/3dyFbQTxcoH6BHhIbhnWeex7r/iUOEZA72GqFSSXuib01TPtMlJeMMtp7u/j4xMTHYt28f6xsRAfAOGOS6feGyPejV9Zdcdv+emiTZh55Xqky7NcB6y7UTFz912j1arzZj2+FEbNr/G6vZAAkJCSwGR0REUua0d1vV3utNjdhwJAW/WJeIs5cuKjKPelNDn01tB4D0wmwrxeHEvbue6IQxC+W1YgswW1kWzjCgnwtX0EOHw1+Spu2KIH24SoXBTiiIJ+uJ/uXZs2hvb+/1tWVqm5rw6sYteD3lCzS22u5+xGJwRJa8/QaIPQqVopIE6DUKB+ihQZN7fQ1X9kM3k62in7i4Ca1Xe191s7q+BO/teAHHL26SHlepVNDr9YpVXiUiopuHPdXe8yoK8bvN/8QHqRtR7+Qicit2JUuv2RdS2wFgtyS9ffrIcX2mONz2dLFGjk6nc0pxOFt8XJjiDgAzJYXiXBGgO4usJ3pZbS2O5OU5/V7HjEbEvvsBDNk5Ns8LDAzkFkoiCW93T0BpzngBoZYUiiu9cg6NJvGNsbPMGP+AMNbYXI2zxi97dd2sSwewalsMSq7IK9lrtVqkp6cr0rOUiIhuTuZq78nJyVCr1VbP05/ei1+sS8QZJ62mH85Ow5GcdGF87nhNn0htrzM1Yk+mWL39W5Fz3TAbx9U0NuBgdqYw7oqAq5+Xax9hZ4wRA3RX7EN3lgA/P2gjxLpTzuyJbmppwd937saP1n+Ky/X1Ns/VaDRISUnh8yaRhMsD9K77uQHl09xlK/eOCBo8Cir/kRZj7e1tyC8T33o7i9+AAESNXyqMHz63tkfXa2trxa4TbyF5749gaqmTnhMXF4eUlBSmtBMRUY8sXboUBoMBcXFxVs8pq63E7zb/C6t7uZpeVnMZK3b13dR2QF4czt93IBZOFYvFeqIdGcfQ1iVFWq1WY+lS8fmlr5MF6H1pBR0AlkSKNSNSs7LQ4ISe6BdKS/Hs6o+w8eQpq+csXNixZVSr1UKv17O+EZEVLg/QQyVV1WvqixS+p2Wau2xFvDuyzxhLlW0RN3ey+IBRcuUcii6LrVhsqWuswAc7f4ADZz+UHlepVEhOTsby5ct7NE8iIiKzoKAgLF++HAaDwWYROf3pr3q1mv6vLz9GQ7MY4L90dwz8u+k57ik+PyX2917UR4Lz9vZ26E+L2/1cla7cDmX2Tlvjzn3ozhI9caLQ8qy5tRU7e9ET/WpbGz44eAjf/ygZBVfEWgpAx3NmYmIiPvvsMyQnJ3MxiKgbHpHi3tRco+j1J45adP1/y14Q2ENWKE7JfugAMDx4spWWa5/YfY280hNYtS0GBeXyCpoajQYGg+GmfNtNRETuExUV1W3v9J6upm86thPnisX9rXPHazBvQt9oTWatONzSGQvcMBvHncjPQpkbisOZKVTbzKYFEWJdI0OWfMugp9JGyHqiO7bwY1ZSXYMXP16L/6bux9W2Nuk55udMc1V/Pm8Sdc/lAfqYUHFfVVnVOUXvOXH0QoQOmQJfn0DcP++PPbqGrFBcRXW2ovvQASBKshf9TN6XaDDZ7l3Z3t6O1Iz38dGuODSY5G80Y2JisH//fsULuRAR0TdXfHw8DAYDtFqt1XNurKZndXu9s5eyse6QXhgPDQzuM6ntgLw4nGb0BIwIGuqG2Thue5q4SBETE+OyZ4qrbVddcp/OZIXi9vexAP2xW8WFn4we9ETflpaO7763Gpkl1lsAJyQk8DmTqAdcWwLTTfwGBOK5+zb0+hqhQZNRVmX5RZxbchDTwu/r1bVtmTHhAXx5/K8W+8avtjXjVPbnuH3aM9LPNDXX4dOvX0VuiTwF35xqxKqZRETkCuHh4UhJScHKlSuxbNkyVFeLL7fNq+m6GXfhsXlLMFiSpl5vasSfPksS9j0DfSu1vaM4nBig3xs5T/F7/3vPFqSkHcaQQQEYExyC0cEhGD1kGMYEh2L0kBCEBXafelxRV4P9WWJatCufK0zdtO5SwoKIycAXWy3GSmqqUVJTjeGB8iwRTzMxNAzDAwNRUmOZvfrl2bP43u23d/v56sZG/DllB/ZnZ1s9R6PRICkpiXvMiXrI5QF6SJCYYl5QdgRAvKun4jB12K1CgJ5XckTRAB0A5k2Jwdfpb1uMHbvwCW6b+l14eXlZjJdUnsMn+36G6nr5G01+aRIRkbvEx8dDp9MhLi4OBoNBeo7+9Fc4mpuGlxY/jemjblSdrjc14kcfv47mqy3CZ5bOvAuRo8UK1Z5q60lx73ngQH/cMXmmovc1tbZgb+ZJAMCVhlpcaahFWqHlVgHf/j4YExwK9dCQjv8ODsHYoWEWK/vbTh2SXt9WBX9nM7WKPwdKG+znhwkhYcguL7UY3591Ht++pW9U3gc6isW9f2C/xdj2jIxuA/RDubl4PWU7rjQ0WD0nLi4OCQkJ3GNO1AsuD9Blbc9MzbWunkaPhIfeimPn11iMKb0PHehIc+8aoFfXlyCr6AAmjrqxV+3o+U+w8/g/cLVN/ksrJiYGiYmJ/NIkIiK3sWs1vaYSv930L+hm3oXH5y4BALy6/g1UNYjPC+OGjcLjc+9VfN7OJFs9v2f6HMXvu+/cKTS22K7YbWptQVbZJWSVWXbY8e3vg/EhIzB22HDszxJbc6lUKqu1BpTgjgAdAO6dHoWVX+20GPviTFqfCtDvi4wUAvSi6mqcLSrCtJEjhfMbm1uw4quv8Nnp01avaS44zLZpRL3nIXvQxR6anki2D/1KXQHqGisUvW/Q4JHSlmvHL3ak7Te3NuLT1Fex4+hfrAbniYmJWLVqFYNzIiLyCHbtTT/1FX6+bjl+/embKKmW/659aXEM/H0HKTVNpzuUnSEtDndf5HzF751fWQbN6PHQjB6PaSPDEewvtr61xtTagszifGxPP4KaRnEFNSYmRrFnDFng3+yGFHdAXiguq6wUJTXK1iRyphEqFSJCQoXxLzPF5/HM4mI8u3q1zeBcp9MhPT2dwTmRk7hlD7qvTwBMLZZvwcuunOtxhXVXsb4P/RA045StSjlj/ANIy9lmMXbx0n5kFx3EjmNvoLI2X/o5tVqN5ORkprQTEZHHsXc13Zon5i7BuJDRSk7xunpTIzIuZWP++MheXUfW+/yW8EkIUwX36rr2+P4duk5/6tjHb2ptQUFlGUqrr6C4uhLFVZdRVHUZxdWXUS6p0m6NuUq3EqKioqDXWxYGrDc1KXY/W4argqRp7huPH8FLC+9xy5x64lvTpiFrX5nF2Jdnz+KVhQvRz9sbrW1t+OjgQXxw8CCuWimZz5pGRMpwS4AeOmQKCsosU8O7BuyeSrYP3Vh6VPEAfUzILAz0VXWpGt+O5L2vWP2MTqdDUlISV82JiMij2bM3vavpoyLw+Dxla8B09tbOdTick4HQwGDMGx+JRVPnYFyImA5sS2lNJQ7niC2tlkTd5qxpOsy3vw8iQkchInQUAOBGZZt2NLe2oLi6EpeuVKDw2n8OZWeirktLPK1W6/JK3dWSVXxXkaW5788636cC9JMF4sJObVMTjhmNGDNkCH63davNCu1arRZJSUms0E6kALf0QQ8JmiqM5ZfJK457mvBQMc1d6X3oFwtT8bb+CYdauiUkJGDt2rUMzomIqE8wr6bb6ptu5u87EC+5sKVaRmE2Dud07Lsuq6nE1lNf4ydr/4afrP0b3v36M+SWF9l1HVlxuGEBQZgzTnwu8gQD+vsgfGgYbo+Yjsfn3In4hQ+g5aqYWu6OFdSqhnqX39NMluZeUlON/VkX3DAbx+3IyMDBnBzpsVX79uHZ1d23T0tJSWFwTqQQt62gd9V1Rd1TyfahV9cXoaquCEGDHXuT3p2iy2ex8/jfUFB+yu7PsEgHERH1ZebV9JiYGKSnp0vP+V70IwgNdF2/8Ld2rZOO55YXIbe8CFtPfY3QwGBEjpqAeROmW02D35N5XBhbopkPby+3rJc4bE/mSaE4m0qlUjxAl9UpuFJfJznTNYargrBgwiTsz7YMyDeeOIIFEZPcNCv7ZJWV4c/bU6wfLy+3eoydgIhcwz0BuqTVWtmVc26YieOs7UPPLzuGoMEPOuUelTX52Ht6BTLzdzn0Oa1Wi+TkZK6aExFRnxYeHo7Y2Fi89tprwjF/34HwghfqTY3SXunOtv7wFzb3wZuV1VRiT00l9mR2LDhEjpqAsMBghAYOQeTo8bhYWoj6Lqnh/by9cZ9G+eJwztDe3o5Pj4kZADExrstk6OxSVff/nyjp0dnzhAD9VIER2WWlmBAa5qZZ2VZnMuH/tmzu0Wfj4uKwfPlyJ8+IiGTctIIupnKZWmpQXV8Elb9zV6GVIO+HfhhR43sXoDc0XcG+9P/g+IVPHP4svziJiOhmkZaWJg3OgY5ibSt2dbQ8XTh1LuaOj8Lc8RpF5lFWU4l1h7/o0WczLmUj41J2xx8Oy8+5PSIKAX59owL9ceNFlEiqzytZHM5MlhVYeOUyrra1oZ+3e7IPZo4JlxaL+/dXO/H3x592y5xsqTOZ8H+bN6FYUojRFrVajaSkJGZmErmQ23KqxoSK/T4L+vA+9LzSns+9ubURX6f9B299trTb4Fyr1WLWrFnX/2xOaWdwTkRENwt7g769mUewXP8Onnn7Nbyfuhl55Ze6/5AD3topT23XaJzzQuB+NxaHc9S20+JbBp1O57J9yGq12uLPLVdbUVwtvjBwJVnv81MFRpwuMLphNtaVVFfjR+vW4mRBgXDM1s+yTqeDwWBgcE7kYm4L0GWF4vryPvS6xnJU1dlXJMasra0Vxy9swL+3LEVq+n/Q0tpo9Vy1Wg29Xo+UlBT8/Oc/B9DxpWowGLB0qbIV5ImIiFxp27ZtSEpKstkjvbN6UyO2ndqH/133BuI++AO2ndqHcjvS0m05nJOBjEtZwnhCQgL279+P9PR0JCUlQafTST7dvTHBYZg+anyv5ugq5bVVOJp7Xhh3ZXG4rgE6ABgryiRnus69kTMQFigWNPx3lwrv7nSqIB/Pf7AaF8vEvyuVSgW9Xi/83ZoXf1hsmMg9+t0W+cPfdR30kpzY9YRuz+nmWv37+eJM7haLser6Isyb9n3pB3t7P6vn2PiArblfKNiL+qbLFuNhQyYjbIhY2RMAvLpc7Fz+bmzY9xNk5KWg5ar1Xp5qtRqJiYlYtWrV9bfUkyZ1FCB5//33+cVJREQ3HT8/P0RFRSE2NhYxMTEIDw/HhQsXpH3Su6o3NeJU/jlsO70PZ64F2KGBwRjQX7Krz0v6P1FvakSi/n1hz7g53dfPzw9BQUGIiorCd77zHSQkJECj0cDX1xf5+fkwmUzdzvOpefdg0nAx6LQxRdvn2HGiw89I12w49jXOFOVZjKnVarz55pt2XNE58vPzhRZ840LCoBl9YwXf4WfFHjwDdjVcFYS9589ajFXWd1SYnzmmY25dnwF7c0+r50h+ljccP4bfb92K5qtXpR/ZvXs3wsPDYTQacezYMQAdmZqbNm3C3LlidgARuYYbU9znwtcnwGLM1FLTZ4rFyVbRC8pOdPu5gvJTeG97LDam/gxX6gqtnqdSqZCQkACDwSB9Q52QkODYhImIiPqg8PBwxMfHIyMjAwaDAXFxcd22YTM7cykLK3Yl47tvJ+CtXWtxJEdeFb6rbae+lhaGS0pKsvpifOnSpVi1ahUKCgqQn58PvV6PxMRELFiwQDjXt78PFk8Tt/p5orb2NuxIFzMcXd1aTbqCftl6xXFX0UZMxozR4tw+OJjqtlT3UwX5+NG6tXhrzx7pcfMKubkau/n/y8TERLZPI/IAbu3rMSZUfDt3/MJHbpiJ42T70PPLrQfo5dU5+GTfj/Hhl8+huPKs1fMAXG8tk5CQwBVyIiKia6KiorB8+XIUFBQgOTnZoQriezOPIFH/Hr779i/xXuoWq/vVrRWG0+l0du/FDQoKQnR0NOLj41FYKL6Mv3PKLfD1GWD33N3pYHYmapoahPG4uDiXzkMWoJ8uyHPpHKx5aeE90vHlO7aizmQ9S9LZSqqrkbg9BT9ctxYnC/Kl52g0Guj1eovtkVFRUUhPT3dJwT8i6p5bA/SI0XcLYxcLd8PUXOuG2TjG20tMlbtSm48GU5XFWG1DGVIO/wH/1T+Oi4X7bF5Tp9MhPT0dq1atYmBORERkg3nFOj8/v0f71X+67q94cfUfse3UPovVcllhOJVKhcTERIfnmJqaCqNRXEVdOsO+uXoC2eq5Tqdz+XOK7OVIZX0tLpQ4Vv9HCRGhw/HsbeL8Smqq8dNPPlY8SK8zmbB6vwFPvL0K2zOsZ4nodDro9XppH3OumhN5DvcG6KPulqa5X7y0200zsk/plfPYevCX0mPGa9XcTS11+Or0CiRtfQinsjejvV2+/wfo2O+j1+uxdu1afkESERE5ICgoCLGxsUhJSUF6ejoSExOlq60yZTWVeO/rLXhx9R/x640rsf7wF9LCcPHx8T36/bxy5UphbNrIcQgfNtzha7lDZX0tThjFvw9Xp7ebySqOG7Iy3TAT0bO33yFNdc8qK8VP1q9BVlmp5FO9U1JdjRV7d+OJt5Pw/oH9Ns9NSEhg0TeiPsLrJ09cbLccardRpOLaqVaLxLULI17dHN9+OEEoFqfyH4X/96BlBUwvyWdl17VnXpZF4qxf10vy2dIr55G86wU0tchX+W+JeAxDA8fCcOa/aOyymt6VWq1GQkKC237RERER3azS0tKwZs0aJCcn21Vczhq1Wg2DweBwYGM0GqUB5c+WxCJ60sxOzyK2n29sFw7r+Kz1InE2nn+s3LfzvNYc2oM1hywXTdRqNTIyMmzOSikrV67Ea6+9ZjE2ZsgwvPvcywC6e1YELP6+LP7HjWPSQ5Ljlud1HKtrasJT76xAvaRI4GBfP7y8cDHujRRXr4V52bivFwBD1gV8evyY1TT2ztjHnKjvcesKOgDcHvmyMFZdfwkZOVskZ7tXd8E5AJzI2oCdJ96wGZybU+UyMjIYnBMRESmgN/vVO0tMTOzRqqNs9TxoUABuj3BOD3Wltbe3Y3v6EWHcnc8tspZ2BVcqkF9Z4YbZiAb7+eEfjz8Nf19f4VidqQmJO7bhJ+s/xv6sCw5dt87UBEPWBSRu10P31j/wf1s2dRucmwPzjIwMBudEfYzbV9ABYP2eZ4Qe6L4+gfjBgzvhOyDg2nXcu4KeX3oMG7/+sc3gvDsqlQrx8fGIi4tjihEREZGLVVVVQa/XY82aNULLLhmtVouUlJQe3UutVqOqyvJl/VPzvoUn53cUFPP0FfQTxgv41ebVwvH09HS3bsdbsGAB0tMt91k/e/tCxM6/0+0r6GZZZSX4yScfS1fSzYYHqjBzTDhmjlEj7FpXgomhoci61q88q6wUJTXVOFVgvD5mDz5rEvV9Xk8t3tg+fGjndBvXB+jlVzLxwRePCuOR4x7BkvmvX7uOewL0puYa7DrxBtJzPpOe4+Pjg5aWFhtz6xATE4OEhATuMSciIvIARqMRer0eK1euRH6+fDXSYDBIC2p1Z82aNUKV837e3njvhV8haJB54cHMMwP0P+uTYbhomcqu0+mwdu1amzNSmizNPcBvIFY//0ME+vl182nXBOhAR5D+u883oaj6Sjdzcg6VSgWdTtfjjA8i8hzeGTmfuHsOCB0yFdPHPSyMZ+Rudmuq+9FzHyPpsyVWg3ONRoOHHnrI5jW0Wi0MBgNWrVrF4JyIiMhDdNdfPSYmpkfBOdDRL72rBROjrgfnnq6msQEHs8WWsJ6wLU+W5l7b1IiPDn7l+snYEBE63Gr7NWdSq9VITExkFyCim4j32bzNaOqmmJkrLIh8SajoDgDbD//S5UH6hcK9SN71Anad+IvVlHZzH8m77xZbxXU+npKS0uNf8ERERKQ82X71nrRVAzpaq6WlpQnj90ct6O00XWZ7xhFcbWuzGFOr1Ra9s90lPDxcWk/g81NHcelKpeQT7jNogDK97lUqFWJiYqDX65GRkYH4+HgG5kQ3kf5X25qRnvMJ5kz9f26diMp/FBbd8hq2H/4/4dj2w7+EF9oROV5cZXeW6voipOd8hvScz1Fdf8nmuVqtFsnJyQgKChL6rrIyOxERUd+1dOnSXgWia9asEcbGhYzE1JFjezEr12lvb8f2NM8qDtdVYmIi9Hq9RXX+tvY2/Gu3Hsu/8103zszSifw8YSw4OBiVlY6/SFCr1dBqtb3++SQiz+cFoD1g0Ai8sPQreHl5wx170Dvv39lzYhmOX/hIel7kuIdx9y2vXS8cJ7uuI3vQm5prcfHSHqTnfIb8LkXqZFQqFRISEhAfH285r8hIVFdXsygHERHRN5i11mo//tYTWDj1VosxT92DfiLvAn69ZbUw7u7icF3J9qIDQMy8aDy3YJGVTym/Bz27rBT7LmTi89MnUNPUKJxvLjyYmpoKg8GA1NTU68cMBsP1hR+1Wo3w8HBotVpoNBo+WxJ9g3jh2rfK/Omv4LbIH8LdAToArN7xKMqrzknP9fUJxK2Tv4vI8Q9D5T9SuK6teZmaa5FfdhT5ZceQX3YUZVfk95Axp7vJviC3bdsGrVbLL08iIqJvsGXLlmHZsmXC+FtP/y/UQ4dbjHlqgP761o9xoMv+c08oDicTGRkpLfD33dvuxDO33SX5hDIBemV9LfRpJ7HjTBqKq21vG+1NZwAi+ma4HqADXnj0zvcQPnyB2wP0puYarNh0O9rRJj3fbEzoXKhD50DlPxKBg0cK98sv7VgVr6m/hNKq8w4F5GYajQaJiYnsIUlEREQ2yVqrmXnBCyEBQRgeNBQjVEMxImgYRqiGYURQMIarhsLPR7Zf2bUBek1jA57+75+F/edJSUkeleJulpqaKi0aBwBPz78Dz96+sMuo8wL0vMvlOJmfh8M5F3E0L8fuOTNAJ6LudArQO1ann773M6j8R1k53TUBuqmlDv/aONfanF0iJiaG+3yIiIjILrLWao4I9g/ECNXQLgF8MEYEDcVg34FWPuXcAH3D0X1Yvf8LizGVSoWCggL7/iHcwNbf++ghQ/HcgkW4Y9K0ayP1ezXoAAAJKklEQVQ9D9CNl8uRVpiPUwV5SCvMR2V9nUPz1Gg0iI+Ph06nY8YlEdnUv/MfTC012LTvBTyw4F8YpprkrjmhwI794EpQq9WIj49HTEwMvzyJiIjIbrLWao6orK9BZX0NzhTlCscC/AZhZNBQjFANw/CgYIxQDbv252CoBg3u1X0706cdFsZkFdM9iXllXxakF165jD9u24DwoSF4cMYczFKPxZjgYXZdt6jqCoyXy3E0LxsHsi+gvLbG4bmZq63Hx8d71P59IvJsFivonUXP+AXmTPl+l1FlVtBr6i/hnFGPnOJUlFRmoPVqk3BOaGgoysrKpJ/vDY1Gc/2tJtuhERERkaOMRiNiYmKQnp7u8nsP9BmAkUHDMCJoaMd/VB3/PTJoKIL9A+DldeNJzNYzWXphLl779L/C9T2tOJw19mYwDB0cgFljxmJkUDAA4Gp7G2qbGlHT2IDqxgaU1dTgUlXv2rVptVrExsZ65LYAIvJ8XiqVqr1zm4rOggaHQzP+cUwf9ygG+Q2FswL0puYaFF9OQ16JAblFX6OyVnxb3JVWq0VSUhL0ej1WrlwpLQpiD41GA61Wi+joaBZ2IyIiIqcyGo3Iz89Heno6qqurkZqaiurqarcE7wP69cfwa8F6R+AejJHXAviQABX6eXtfP/fNnRux88xxi89rNBrs37/f1dPusd5uM+gNtVqN2NhYxMTE9IkXGkTkubwMBkO7TqeDtSDdbOLoezF93KMYOWwW/HxVdgXotQ0lqKo14kptHi7XZONyTRYqqi6ivqnc4YkmJCQgISHh+p/T0tKu/wLs3KKiM3NhN7VaDbVazTYVRERE5DZdg/e0tDRUV1fDYDC4ZT6jhnTscx8ZNAy7zh5HQ7PJ4rinFoezxWg04rXXXoNer1f8Xmq1GjqdDrGxsczCJCKn8aqpqWk3Go2Ii4uz+xeEv18oggLU8Pbq1+VIR4De0FSJyzVZTpukSqVCYmJin/slQURERGSPqqoqpKenIz8/H/n5+W4P3lUqFdLT0/vswkZqaiqWLVvm1L8/lUp1PQtTp9NxpZyIFOFVU1NzfdnbWv9Od+ichs4WZ0RERPRNZQ7ezanyXVfilRATE4NVq1Ypcm1XSktLg16vR2pqqsN/X1qtFmq1GtHR0dBoNFwlJyKXsAjQgY4vsri4OJfvlTLvDV+6dCkDciIiIiI7dd7n7qzg3WAw3JQBaVpa2vVMha60Wi2AjtR1ro4TkbsIAbpZWloaVq5cCb1er8jbWa1WC41Gw2JtRERERAox1+kxGAxCGr01arUaGRkZrpoiERF1YjVA72zbtm3Ytm0b8vPzHdrLYy7OplKpEBUVBY1GA7VafVO+kSUiIiLqSzrvc+8cvMfHxyM+Pt7d0yMi+kayK0Dvyvwlbg2rpRMRERERERE5pkcBOhERERERERE5l7e7J0BEREREREREDNCJiIiIiIiIPAIDdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiIiIg/AAJ2IiIiIiIjIAzBAJyIiIiIiIvIADNCJiIiIiIiIPAADdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiIiIg/AAJ2IiIiIiIjIAzBAJyIiIiIiIvIADNCJiIiIiIiIPAADdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiIiIg/AAJ2IiIiIiIjIAzBAJyIiIiIiIvIADNCJiIiIiIiIPAADdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiIiIg/AAJ2IiIiIiIjIAzBAJyIiIiIiIvIADNCJiIiIiIiIPAADdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiIiIg/AAJ2IiIiIiIjIAzBAJyIiIiIiIvIADNCJiIiIiIiIPAADdCIiIiIiIiIPwACdiIiIiIiIyAMwQCciIiIiIiLyAAzQiYiIiIiIiDwAA3QiIiIiIiIiD8AAnYiIiIiIiMgDMEAnIiIiIiIi8gAM0ImIiIiIiIg8AAN0IiIiIiKi/99+HQsAAAAADPK3nsaOsggGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGAnLoTRWsUI1aAAAAAElFTkSuQmCC'/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"import coldtype.fx.shapes as shapes\\n\",\n        \"\\n\",\n        \"@renderable((1000, 500), bg=0.95)\\n\",\n        \"def sine1(r):\\n\",\n        \"    sine = P().ch(shapes.sine(r.inset(0, 180), 3))\\n\",\n        \"\\n\",\n        \"    return (StSt(\\\"COLDTYPE COLDTYPE COLDTYPE\\\", co, 100\\n\",\n        \"        , wdth=1\\n\",\n        \"        , tu=-50\\n\",\n        \"        , space=500\\n\",\n        \"        , fit=sine.length()\\n\",\n        \"        )\\n\",\n        \"        .distribute_on_path(sine)\\n\",\n        \"        .understroke(sw=10)\\n\",\n        \"        .f(Gradient.H(sine.bounds(),\\n\",\n        \"            hsl(0.7, l=0.6, s=0.65),\\n\",\n        \"            hsl(0.05, l=0.6, s=0.65)))\\n\",\n        \"        .translate(0, -20))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"gBy1BR-or-Ql\"\n      },\n      \"source\": [\n        \"Interesting! But there’s one thing to correct if we want better legibility. You’ll notice in that first purple COLDTYPE, the C is unrecognizable, because the O that comes after it is on top of it. This is how text layout engines usually work for LTR languages — the topmost glyph is the right-most glyph. But that’s not what we want — we want to reverse the order of the glyphs. Luckily, that’s easy, just pass a r=1 (or reverse=1), to the Style constructor.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": 29,\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 314\n        },\n        \"id\": \"Q1ioT737nZR_\",\n        \"outputId\": \"3610e20a-7913-4a55-fe4d-e905a83858f6\"\n      },\n      \"outputs\": [\n        {\n          \"data\": {\n            \"text/html\": [\n              \"<img width=500.0 src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3Xt8k+X9P/4Xpzb0GEoLaQtNqEBTZksVClVbKaAcbAcV3cTUKZtOaXUefnOj1U2d2z5hbuo+22yY+t2cH1PcQUXXqjgP1ZSJgggpSkGEpkgt5xtKS9qC/P4oKU3uK4e2Odwpr+fj4UavO00uAdO87+t9GHbixImzICIiIiIiIqKQGh7qDRARERERERERA3QiIiIiIiIiRWCATkRERERERKQADNCJiIiIiIiIFIABOhEREREREZECMEAnIiIiIiIiUgAG6EREREREREQKwACdiIiIiIiISAEYoBMREREREREpAAN0IiIiIiIiIgVggE5ERERERESkAAzQiYiIiIiIiBSAAToRERERERGRAjBAJyIiIiIiIlIABuhERERERERECsAAnYiIiIiIiEgBGKATERERERERKQADdCIiIiIiIiIFYIBOREREREREpAAM0ImIiIiIiIgUgAE6ERERERERkQIwQCciIiIiIiJSAAboRERERERERArAAJ2IiIiIiIhIARigExERERERESkAA3QiIiIiIiIiBWCATkRERERERKQADNCJiIiIiIiIFIABOhEREREREZECMEAnIiIiIiIiUgAG6EREREREREQKwACdiIiIiIiISAEYoBMREREREREpAAN0IiIiIiIiIgVggE5ERERERESkAAzQiYiIiIiIiBSAAToRERERERGRAjBAJyIiIiIiIlIABuhERERERERECsAAnYiIiIiIiEgBGKATERERERERKQADdCIiIiIiIiIFYIBOREREREREpAAM0ImIiIiIiIgUgAE6ERERERERkQIwQCciIiIiIiJSAAboRERERERERArAAJ2IiIiIiIhIARigExERERERESkAA3QiIiIiIiIiBWCATkRERERERKQADNCJiIiIiIiIFIABOhEREREREZECMEAnIiIiIiIiUgAG6EREREREREQKwACdiIiIiIiISAEYoBMREREREREpAAN0IiIiIiIiIgVggE5ERERERESkAAzQiYiIiIiIiBSAAToRERERERGRAjBAJyIiIiIiIlIABuhERERERERECsAAnYiIiIiIiEgBGKATERERERERKQADdCIiIiIiIiIFYIBOREREREREpAAM0ImIiIiIiIgUgAE6ERERERERkQIwQCciIiIiIiJSAAboRERERERERArAAJ2IiIiIiIhIARigExERERERESkAA3QiIiIiIiIiBWCATkRERERERKQADNCJiIiIiIiIFIABOhEREREREZECMEAnIiIiIiIiUgAG6EREREREREQKwACdiIiIiIiISAEYoBMREREREREpAAN0IiIiIiIiIgVggE5ERERERESkAAzQiYiIiIiIiBSAAToRERERERGRAjBAJyIiIiIiIlIABuhERERERERECsAAnYiIiIiIiEgBGKATERERERERKQADdCIiIiIiIiIFYIBOREREREREpAAM0ImIiIiIiIgUgAE6ERERERERkQIwQCciIiIiIiJSAAboRERERERERArAAJ2IiIiIiIhIARigExERERERESkAA3QiIiIiIiIiBWCATkRERERERKQADNCJiIiIiIiIFIABOhEREREREZECMEAnIiIiIiIiUgAG6EREREREREQKwACdiIiIiIiISAEYoBMREREREREpAAN0IiIiIiIiIgVggE5ERERERESkAAzQiYiIiIiIiBSAAToRERERERGRAjBAJyIiIiIiIlIABuhERERERERECsAAnYiIiIiIiEgBGKATERERERERKQADdCIiIiIiIiIFYIBOREREREREpAAM0ImIiIiIiIgUgAE6ERERERERkQKMDPUGiIgGw2q1Yvv27bjiiiug1WpDvR0iIiIion6z2WzYt28fA3QiCh+OYNxqtaKhoQEWi6X3Wm1tLQN0IiIiIlIER8ANAM3NzbDZbL2/bm5ulq07MEAnIkXyFIyLZGVlBWlnRERERHShGWjA3V8M0Iko5PobjIuo1eoA7IyIiIiIhqJgBdz9xQCdiILKH8E4EREREZGvVq1ahe3bt4ck4O4vBuhEFDDBCsaZ3k5ERERE7qxduxaSJIV6Gx5NUEdjbHQkA3Qi8o9gBePjE1Jw4GiL01p8fHxAXmsosdlsvX8+9fX1aGho8PqDSq1W9978yM/PBwAUFBRg4sSJbMhHREREYSPYwfnI4cMwNlqFhGgVxkZFYmx0JBKiVUiIisTYaFXP11E9/z82OhJREefD8mEnTpw4G9TdElHYC0YwPmpkBHSai5CePBmTkqdgUvJkTBynw9bdm/DY2oedHpufn4/XX3/d73sIZ5IkYe3a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iIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiIiIhIARjQiYiIiIiIiBSAAZ2IiIiI6P+3X8cCAAAAAIP8raexoywCGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGBB0AAAAGAiZjv1a2dIUcAAAAABJRU5ErkJggg=='/>\"\n            ],\n            \"text/plain\": [\n              \"<IPython.core.display.HTML object>\"\n            ]\n          },\n          \"metadata\": {},\n          \"output_type\": \"display_data\"\n        }\n      ],\n      \"source\": [\n        \"@renderable((1000, 500), bg=0.95)\\n\",\n        \"def sine2(r):\\n\",\n        \"    sine = P().ch(shapes.sine(r.inset(0, 180), 3))\\n\",\n        \"\\n\",\n        \"    return (StSt(\\\"COLDTYPE COLDTYPE COLDTYPE\\\", co, 100\\n\",\n        \"        , wdth=1\\n\",\n        \"        , tu=-50\\n\",\n        \"        , space=500\\n\",\n        \"        , r=1\\n\",\n        \"        , fit=sine.length()\\n\",\n        \"        )\\n\",\n        \"        .distribute_on_path(sine)\\n\",\n        \"        .understroke(sw=10)\\n\",\n        \"        .f(Gradient.H(sine.bounds(),\\n\",\n        \"            hsl(0.7, l=0.7, s=0.65),\\n\",\n        \"            hsl(0.05, l=0.6, s=0.65)))\\n\",\n        \"        .translate(0, -20))\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"L1xL5OA5r_6k\"\n      },\n      \"source\": [\n        \"It’s a subtle change, but one that (to me) makes a huge difference. I also lightened the purple in the gradient, I think it looks a little better that way, right?\\n\",\n        \"\\n\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"colab\": {\n      \"collapsed_sections\": [],\n      \"name\": \"Coldtype Text Tutorial.ipynb\",\n      \"provenance\": []\n    },\n    \"kernelspec\": {\n      \"display_name\": \"Python 3.10.5 ('venv': venv)\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.10.5\"\n    },\n    \"vscode\": {\n      \"interpreter\": {\n        \"hash\": \"10cf79b6252b6bfa5f219a04587890ec267e7f2fde6b173960de4ad2915a3b2e\"\n      }\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0\n}\n"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/_docs.j2",
    "content": "<style>\n  a {\n    color: dodgerblue;\n  }\n\n  h2 {\n    color: darkorchid;\n    text-transform: uppercase;\n    margin-bottom: 20px;\n    margin-top: 50px;\n  }\n\n  h3 {\n    color: darkorchid;\n    margin-bottom: 10px;\n    margin-top: 30px;\n  }\n\n  h4 {\n    margin-top: 20px;\n    margin-bottom: 10px;\n  }\n\n  .doc ul {\n    padding: 0px 30px 10px 10px;\n  }\n\n  .doc li {\n    list-style: disc;\n    padding: 5px;\n  }\n\n  .source-link {\n    color: darkorchid;\n    font-size: 0.9rem;\n    margin-bottom: 10px;\n  }\n\n  .docstring {\n    padding: 10px;\n  }\n\n  .docstring p {\n    margin-bottom: 10px;\n  }\n\n  .docstring code {\n    color: deeppink;\n  }\n\n  .docstring pre {\n    margin-bottom: 20px;\n  }\n\n  .signature pre {\n    border-bottom: 1px solid #ddd;\n  }\n</style>\n</head>\n\n<div id=\"docs\" class=\"post\">\n  {% for k,v in docs.items() %}\n  <h2>{{k}}</h2>\n  <ul>\n    {% for d in v %}\n    <li>\n      <div class=\"doc\">\n        <h3>{{ d.itself }}</h3>\n        <div class=\"source-link\"><em>source:</em> <a\n            href=\"https://github.com/coldtype/coldtype/tree/main/coldtype/{{ d.path }}\"> coldtype/{{ d.path }}</a>\n        </div>\n        <div class=\"signature\">{{ d.signature }}</div>\n        <div class=\"docstring\">{{ d.docstring }}</div>\n        {% if d.methods %}\n        <ul>\n          {% for method in d.methods %}\n          <li>\n            <h4>{{ method.itself.__name__ }}</h4>\n            <div class=\"signature\">{{ method.signature }}</div>\n            <div class=\"docstring\">{{ method.docstring }}</div>\n          </li>\n          {% endfor %}\n        </ul>\n        {% endif %}\n      </div>\n    </li>\n    {% endfor %}\n  </ul>\n  {% endfor %}\n</div>"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/_footer.j2",
    "content": ""
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/_header.j2",
    "content": "{% if url == \"/\" %}<h1>Coldtype Tutorials</h1>{% else %}<h1><a href=\"/\">Coldtype Tutorials</a></h1>{% endif %}\n{{ nav_html|safe }}"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/_page.j2",
    "content": "<div class=\"page\">\n  <aside>\n    {% include \"partials/sidebar.j2\" %}\n  </aside>\n  <div class=\"post\">\n    <div class=\"headline\">\n      <h1>{{ page.title }}</h1>\n      {% if page.data[\"notebook\"] %}\n      <!--<div class=\"colab-callout\">\n        <a class=\"colab-link\" href=\"https://colab.research.google.com/drive/{{page.path.stem}}\" target=\"_blank\">💻 View/run on Colab</a>\n      </div>-->\n      {% endif %}\n    </div>\n    {{ page.content|safe }}\n  </div>\n</div>"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/index.j2",
    "content": "<div class=\"menu-wrapper\" style=\"margin-bottom: 200px;\">\n{% include 'partials/sidebar.j2' %}\n</div>"
  },
  {
    "path": "examples/sites/coldtype.goodhertz.com/templates/partials/sidebar.j2",
    "content": "<div class=\"menu\">\n  <ul>\n    {% for post in mains %}\n    <li class=\"post-link\">\n      <a href=\"/{{ post.slug }}\" {% if url == \"/\" + post.slug %}class=\"current\"{% endif %}>{{ post.title }}</a>\n    </li>\n    {% endfor %}\n  </ul>\n\n  <h3>Tutorials</h3>\n  <ul>\n    {% for post in tutorials %}\n    <li class=\"post-link\">\n      <a href=\"/{{post.slug}}\" {% if url == \"/\" + post.slug %}class=\"current\"{% endif %}>{{ post.title.replace(\" Tutorial\" , \"\") }}</a>\n    </li>\n    {% endfor %}\n  </ul>\n\n  <h3>Cheatsheets</h3>\n  <ul>\n    {% for post in cheatsheets %}\n    <li class=\"post-link\">\n      <a href=\"/{{ post.slug }}\" {% if url == \"/\" + post.slug %}class=\"current\"{% endif %}>{{ post.title.replace(\" Cheatsheet\", \"\") }}</a>\n    </li>\n    {% endfor %}\n  </ul>\n</div>"
  },
  {
    "path": "examples/sites/coldtype.p5js/assets/hbjs.js",
    "content": "function hbjs(instance) {\n  'use strict';\n\n  var exports = instance.exports;\n  var heapu8 = new Uint8Array(exports.memory.buffer);\n  var heapu32 = new Uint32Array(exports.memory.buffer);\n  var heapi32 = new Int32Array(exports.memory.buffer);\n  var heapf32 = new Float32Array(exports.memory.buffer);\n  var utf8Decoder = new TextDecoder(\"utf8\");\n\n  var HB_MEMORY_MODE_WRITABLE = 2;\n\n  function hb_tag(s) {\n    return (\n      (s.charCodeAt(0) & 0xFF) << 24 |\n      (s.charCodeAt(1) & 0xFF) << 16 |\n      (s.charCodeAt(2) & 0xFF) <<  8 |\n      (s.charCodeAt(3) & 0xFF) <<  0\n    );\n  }\n\n  function _hb_untag(tag) {\n    return [\n      String.fromCharCode((tag >> 24) & 0xFF),\n      String.fromCharCode((tag >> 16) & 0xFF),\n      String.fromCharCode((tag >>  8) & 0xFF),\n      String.fromCharCode((tag >>  0) & 0xFF)\n    ].join('');\n  }\n\n  function _buffer_flag(s) {\n    if (s == \"BOT\") { return 0x1; }\n    if (s == \"EOT\") { return 0x2; }\n    if (s == \"PRESERVE_DEFAULT_IGNORABLES\") { return 0x4; }\n    if (s == \"REMOVE_DEFAULT_IGNORABLES\") { return 0x8; }\n    if (s == \"DO_NOT_INSERT_DOTTED_CIRCLE\") { return 0x10; }\n    return 0x0;\n  }\n\n  /**\n  * Create an object representing a Harfbuzz blob.\n  * @param {string} blob A blob of binary data (usually the contents of a font file).\n  **/\n  function createBlob(blob) {\n    var blobPtr = exports.malloc(blob.byteLength);\n    heapu8.set(new Uint8Array(blob), blobPtr);\n    var ptr = exports.hb_blob_create(blobPtr, blob.byteLength, HB_MEMORY_MODE_WRITABLE, blobPtr, exports.free_ptr());\n    return {\n      ptr: ptr,\n      /**\n      * Free the object.\n      */\n      destroy: function () { exports.hb_blob_destroy(ptr); }\n    };\n  }\n\n  /**\n  * Create an object representing a Harfbuzz face.\n  * @param {object} blob An object returned from `createBlob`.\n  * @param {number} index The index of the font in the blob. (0 for most files,\n  *  or a 0-indexed font number if the `blob` came form a TTC/OTC file.)\n  **/\n  function createFace(blob, index) {\n    var ptr = exports.hb_face_create(blob.ptr, index);\n    const upem = exports.hb_face_get_upem(ptr);\n    return {\n      ptr: ptr,\n      upem,\n      /**\n       * Return the binary contents of an OpenType table.\n       * @param {string} table Table name\n       */\n      reference_table: function(table) {\n        var blob = exports.hb_face_reference_table(ptr, hb_tag(table));\n        var length = exports.hb_blob_get_length(blob);\n        if (!length) { return; }\n        var blobptr = exports.hb_blob_get_data(blob, null);\n        var table_string = heapu8.subarray(blobptr, blobptr+length);\n        return table_string;\n      },\n      /**\n       * Return variation axis infos\n       */\n      getAxisInfos: function() {\n        var axis = exports.malloc(64 * 32);\n        var c = exports.malloc(4);\n        heapu32[c / 4] = 64;\n        exports.hb_ot_var_get_axis_infos(ptr, 0, c, axis);\n        var result = {};\n        Array.from({ length: heapu32[c / 4] }).forEach(function (_, i) {\n          result[_hb_untag(heapu32[axis / 4 + i * 8 + 1])] = {\n            min: heapf32[axis / 4 + i * 8 + 4],\n            default: heapf32[axis / 4 + i * 8 + 5],\n            max: heapf32[axis / 4 + i * 8 + 6]\n          };\n        });\n        exports.free(c);\n        exports.free(axis);\n        return result;\n      },\n      /**\n       * Free the object.\n       */\n      destroy: function () {\n        exports.hb_face_destroy(ptr);\n      },\n    };\n  }\n\n  var pathBufferSize = 65536; // should be enough for most glyphs\n  var pathBuffer = exports.malloc(pathBufferSize); // permanently allocated\n\n  /**\n  * Create an object representing a Harfbuzz font.\n  * @param {object} blob An object returned from `createFace`.\n  **/\n  function createFont(face) {\n    var ptr = exports.hb_font_create(face.ptr);\n\n    /**\n    * Return a glyph as an SVG path string.\n    * @param {number} glyphId ID of the requested glyph in the font.\n    **/\n    function glyphToPath(glyphId) {\n      var svgLength = exports.hbjs_glyph_svg(ptr, glyphId, pathBuffer, pathBufferSize);\n      return svgLength > 0 ? utf8Decoder.decode(heapu8.subarray(pathBuffer, pathBuffer + svgLength)) : \"\";\n    }\n\n    return {\n      ptr: ptr,\n      glyphToPath: glyphToPath,\n      /**\n      * Return a glyph as a JSON path string\n      * based on format described on https://svgwg.org/specs/paths/#InterfaceSVGPathSegment\n      * @param {number} glyphId ID of the requested glyph in the font.\n      **/\n      glyphToJson: function (glyphId) {\n        var path = glyphToPath(glyphId);\n        return path.replace(/([MLQCZ])/g, '|$1 ').split('|').filter(function (x) { return x.length; }).map(function (x) {\n          var row = x.split(/[ ,]/g);\n          return { type: row[0], values: row.slice(1).filter(function (x) { return x.length; }).map(function (x) { return +x; }) };\n        });\n      },\n      /**\n      * Set the font's scale factor, affecting the position values returned from\n      * shaping.\n      * @param {number} xScale Units to scale in the X dimension.\n      * @param {number} yScale Units to scale in the Y dimension.\n      **/\n      setScale: function (xScale, yScale) {\n        exports.hb_font_set_scale(ptr, xScale, yScale);\n      },\n      /**\n       * Set the font's variations.\n       * @param {object} variations Dictionary of variations to set\n       **/\n      setVariations: function (variations) {\n        var entries = Object.entries(variations);\n        var vars = exports.malloc(8 * entries.length);\n        entries.forEach(function (entry, i) {\n          heapu32[vars / 4 + i * 2 + 0] = hb_tag(entry[0]);\n          heapf32[vars / 4 + i * 2 + 1] = entry[1];\n        });\n        exports.hb_font_set_variations(ptr, vars, entries.length);\n        exports.free(vars);\n      },\n      /**\n      * Free the object.\n      */\n      destroy: function () { exports.hb_font_destroy(ptr); }\n    };\n  }\n\n  var utf8Encoder = new TextEncoder(\"utf8\");\n  function createCString(text) {\n    var bytes = utf8Encoder.encode(text);\n    var ptr = exports.malloc(bytes.byteLength);\n    heapu8.set(bytes, ptr);\n    return {\n      ptr: ptr,\n      length: bytes.byteLength,\n      free: function () { exports.free(ptr); }\n    };\n  }\n\n  function createJsString(text) {\n    const ptr = exports.malloc(text.length * 2);\n    const words = new Uint16Array(exports.memory.buffer, ptr, text.length);\n    for (let i = 0; i < words.length; ++i) words[i] = text.charCodeAt(i);\n    return {\n      ptr: ptr,\n      length: words.length,\n      free: function () { exports.free(ptr); }\n    };\n  }\n\n  /**\n  * Create an object representing a Harfbuzz buffer.\n  **/\n  function createBuffer() {\n    var ptr = exports.hb_buffer_create();\n    return {\n      ptr: ptr,\n      /**\n      * Add text to the buffer.\n      * @param {string} text Text to be added to the buffer.\n      **/\n      addText: function (text) {\n        const str = createJsString(text);\n        exports.hb_buffer_add_utf16(ptr, str.ptr, str.length, 0, str.length);\n        str.free();\n      },\n      /**\n      * Set buffer script, language and direction.\n      *\n      * This needs to be done before shaping.\n      **/\n      guessSegmentProperties: function () {\n        return exports.hb_buffer_guess_segment_properties(ptr);\n      },\n      /**\n      * Set buffer direction explicitly.\n      * @param {string} direction: One of \"ltr\", \"rtl\", \"ttb\" or \"btt\"\n      */\n      setDirection: function (dir) {\n        exports.hb_buffer_set_direction(ptr, {\n          ltr: 4,\n          rtl: 5,\n          ttb: 6,\n          btt: 7\n        }[dir] || 0);\n      },\n      /**\n      * Set buffer flags explicitly.\n      * @param {string[]} flags: A list of strings which may be either:\n      * \"BOT\"\n      * \"EOT\"\n      * \"PRESERVE_DEFAULT_IGNORABLES\"\n      * \"REMOVE_DEFAULT_IGNORABLES\"\n      * \"DO_NOT_INSERT_DOTTED_CIRCLE\"\n      */\n      setFlags: function (flags) {\n        var flagValue = 0\n        flags.forEach(function (s) {\n          flagValue |= _buffer_flag(s);\n        })\n\n        exports.hb_buffer_set_flags(ptr,flagValue);\n      },\n      /**\n      * Set buffer language explicitly.\n      * @param {string} language: The buffer language\n      */\n      setLanguage: function (language) {\n        var str = createCString(language);\n        exports.hb_buffer_set_language(ptr, exports.hb_language_from_string(str.ptr,-1));\n        str.free();\n      },\n      /**\n      * Set buffer script explicitly.\n      * @param {string} script: The buffer script\n      */\n      setScript: function (script) {\n        var str = createCString(script);\n        exports.hb_buffer_set_script(ptr, exports.hb_script_from_string(str.ptr,-1));\n        str.free();\n      },\n\n      /**\n      * Set the Harfbuzz clustering level.\n      *\n      * Affects the cluster values returned from shaping.\n      * @param {number} level: Clustering level. See the Harfbuzz manual chapter\n      * on Clusters.\n      **/\n      setClusterLevel: function (level) {\n        exports.hb_buffer_set_cluster_level(ptr, level)\n      },\n      /**\n      * Return the buffer contents as a JSON object.\n      *\n      * After shaping, this function will return an array of glyph information\n      * objects. Each object will have the following attributes:\n      *\n      *   - g: The glyph ID\n      *   - cl: The cluster ID\n      *   - ax: Advance width (width to advance after this glyph is painted)\n      *   - ay: Advance height (height to advance after this glyph is painted)\n      *   - dx: X displacement (adjustment in X dimension when painting this glyph)\n      *   - dy: Y displacement (adjustment in Y dimension when painting this glyph)\n      *   - flags: Glyph flags like `HB_GLYPH_FLAG_UNSAFE_TO_BREAK` (0x1)\n      **/\n      json: function () {\n        var length = exports.hb_buffer_get_length(ptr);\n        var result = [];\n        var infosPtr = exports.hb_buffer_get_glyph_infos(ptr, 0);\n        var infosPtr32 = infosPtr / 4;\n        var positionsPtr32 = exports.hb_buffer_get_glyph_positions(ptr, 0) / 4;\n        var infos = heapu32.subarray(infosPtr32, infosPtr32 + 5 * length);\n        var positions = heapi32.subarray(positionsPtr32, positionsPtr32 + 5 * length);\n        for (var i = 0; i < length; ++i) {\n          result.push({\n            g: infos[i * 5 + 0],\n            cl: infos[i * 5 + 2],\n            ax: positions[i * 5 + 0],\n            ay: positions[i * 5 + 1],\n            dx: positions[i * 5 + 2],\n            dy: positions[i * 5 + 3],\n            flags: exports.hb_glyph_info_get_glyph_flags(infosPtr + i * 20)\n          });\n        }\n        return result;\n      },\n      /**\n      * Free the object.\n      */\n      destroy: function () { exports.hb_buffer_destroy(ptr); }\n    };\n  }\n\n  /**\n  * Shape a buffer with a given font.\n  *\n  * This returns nothing, but modifies the buffer.\n  *\n  * @param {object} font: A font returned from `createFont`\n  * @param {object} buffer: A buffer returned from `createBuffer` and suitably\n  *   prepared.\n  * @param {object} features: (Currently unused).\n  */\n  function shape(font, buffer, features) {\n    exports.hb_shape(font.ptr, buffer.ptr, 0, 0);\n  }\n\n  /**\n  * Shape a buffer with a given font, returning a JSON trace of the shaping process.\n  *\n  * This function supports \"partial shaping\", where the shaping process is\n  * terminated after a given lookup ID is reached. If the user requests the function\n  * to terminate shaping after an ID in the GSUB phase, GPOS table lookups will be\n  * processed as normal.\n  *\n  * @param {object} font: A font returned from `createFont`\n  * @param {object} buffer: A buffer returned from `createBuffer` and suitably\n  *   prepared.\n  * @param {object} features: A dictionary of OpenType features to apply.\n  * @param {number} stop_at: A lookup ID at which to terminate shaping.\n  * @param {number} stop_phase: Either 0 (don't terminate shaping), 1 (`stop_at`\n      refers to a lookup ID in the GSUB table), 2 (`stop_at` refers to a lookup\n      ID in the GPOS table).\n  */\n\n  function shapeWithTrace(font, buffer, features, stop_at, stop_phase) {\n    var bufLen = 1024 * 1024;\n    var traceBuffer = exports.malloc(bufLen);\n    var featurestr = createCString(features);\n    var traceLen = exports.hbjs_shape_with_trace(font.ptr, buffer.ptr, featurestr.ptr, stop_at, stop_phase, traceBuffer, bufLen);\n    featurestr.free();\n    var trace = utf8Decoder.decode(heapu8.subarray(traceBuffer, traceBuffer + traceLen - 1));\n    exports.free(traceBuffer);\n    return JSON.parse(trace);\n  }\n\n  return {\n    createBlob: createBlob,\n    createFace: createFace,\n    createFont: createFont,\n    createBuffer: createBuffer,\n    shape: shape,\n    shapeWithTrace: shapeWithTrace\n  };\n};\n\n// Should be replaced with something more reliable\ntry { module.exports = hbjs; } catch(e) {}"
  },
  {
    "path": "examples/sites/coldtype.p5js/assets/script.js",
    "content": "print = console.log\n\n//'use strict';\nvar hb, fontBlob;\n\nfunction pathToRelative(pathArray) {\n  return pathArray;\n  if (!pathArray.length) return [];\n  var x = pathArray[0][1], y = pathArray[0][2];\n  var prevCmd = '';\n  return [[\"M\", x, y]].concat(pathArray.slice(1).map(function (pa) {\n    var r = [prevCmd === pa[0] ? ' ' : pa[0].toLowerCase()].concat(pa.slice(1).map(function (z, i) {\n      return z - ((i % 2) ? y : x);\n    }));\n    var lastPoint = r.slice(-2);\n    x += lastPoint[0];\n    y += lastPoint[1];\n    prevCmd = pa[0];\n    return r;\n  }));\n}\n\nclass HBGlyph {\n  constructor(x, y, path) {\n    this.x = x;\n    this.y = y;\n    this.commands = path;\n  }\n}\n\nclass HBFont {\n  constructor(fontURL, fontBlob) {\n    this.fontURL = fontURL;\n    this.fontBlob = fontBlob;\n  }\n\n  static async loadFont(_fontURL) {\n    if (window.hb === undefined) {\n      const wasmResponse = await fetch(\"assets/hb.wasm\");\n      const wasmArrayBuffer = await wasmResponse.arrayBuffer();\n      const wasmResult = await WebAssembly.instantiate(wasmArrayBuffer);\n      window.hb = hbjs(wasmResult.instance);\n    }\n    \n    const fontResponse = await fetch(_fontURL);\n    const fontArrayBuffer = await fontResponse.arrayBuffer();\n    \n    return new HBFont(_fontURL, new Uint8Array(fontArrayBuffer));\n  }\n\n  getGlyphs(text, size, variations={}) {\n    var blob = hb.createBlob(this.fontBlob);\n    var face = hb.createFace(blob, 0);\n    var os2 = face.reference_table(\"OS/2\");\n    console.log(os2);\n    var string = new TextDecoder().decode(os2);\n    console.log(string);\n    var font = hb.createFont(face);\n    font.setScale(size, size); // Optional, if not given will be in font upem\n    font.setVariations(variations);\n\n    var buffer = hb.createBuffer();\n    buffer.addText(text);\n    buffer.guessSegmentProperties();\n    // buffer.setDirection('ltr'); // optional as can be by guessSegmentProperties also\n    hb.shape(font, buffer); // features are not supported yet\n    \n    var result = buffer.json(font);\n    \n    // returns glyphs paths, totally optional\n    var glyphs = {};\n    result.forEach(function (x) {\n      if (glyphs[x.g]) return;\n      glyphs[x.g] = font.glyphToJson(x.g);\n    });\n\n    buffer.destroy();\n    font.destroy();\n    face.destroy();\n    blob.destroy();\n\n    var hb_glyphs = [];\n    var ax = 0;\n    var ay = 0;\n\n    result.map((x) => {\n      let fcs = [];\n      glyphs[x.g].map((v) => {\n        let fc = {type:g.type};\n        if (g.values) {\n          g.values.forEach((v, idx) => {\n            let i = Math.floor(idx/2);\n            if (idx%2 == 0) {\n              fc[`x${i==0?'':i}`] = v;\n            } else {\n              fc[`y${i==0?'':i}`] = v;\n            }\n          });\n        }\n        fcs.push(fc);\n      });\n      hb_glyphs.push(new HBGlyph(ax+x.dx, ay+x.dy, fcs));\n      ax += x.ax;\n      ay += x.ay;\n    });\n\n    var xmin = 10000;\n    var xmax = -10000;\n    var ymin = 10000;\n    var ymax = -10000;\n    ax = 0;\n    ay = 0;\n    var path = pathToRelative(result.map(function (x) {\n      var result = glyphs[x.g].filter(function (command) {\n        return command.type !== 'Z';\n      }).map(function (command) {\n        var result = command.values.map(function (p, i) {\n          return i % 2 ? -(p + ay + x.dy) : p + ax + x.dx;\n        }).map(function (x, i) {\n          // bbox calc\n          if (i % 2) {\n            if (x < ymin) ymin = x;\n            if (x > ymax) ymax = x;\n          } else {\n            if (x < xmin) xmin = x;\n            if (x > xmax) xmax = x;\n          }\n          return x;\n        });\n        return [command.type].concat(result);\n      });\n      ax += x.ax; ay += x.ay;\n      return result;\n    }).reduce((acc, val) => acc.concat(val), [])).map(x => x[0] + x.slice(1).join(' ')).join('').replace(/ -/g, ' -');\n    var width = xmax - xmin;\n    var height = ymax - ymin;\n\n    var bbox = xmin + ' ' + ymin + ' ' + width + ' ' + height;\n\n    svgResult.innerHTML = '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"128\" viewBox=\"' + bbox + '\">' +\n      '<path fill=\"#fff\" d=\"' + path + '\" /></svg>';\n\n    // var hb_glyphs = [];\n    // var ax = 0;\n    // var ay = 0;\n\n    // result.map((x) => {\n    //   let commands = [];\n    //   glyphs[x.g].map((g) => {\n    //     commands.push(g);\n    //   });\n      \n    //   hb_glyphs.push(new HBGlyph(ax+x.dx, ay+x.dy, commands));\n    //   ax += x.ax;\n    //   ay += x.ay;\n    // });\n\n    // return hb_glyphs;\n  }\n}\n\nlet font;\nlet hbFont;\nlet textInput;\nlet sampleFactorSlider;\nlet zSlider;\nlet animateCheckbox;\nlet bounds;\nlet zPos = 0;\n\nfunction updateResult() {\n  let paths = hbFont.getGlyphs(\"abc\", 1000, {wght:900,opsz:72});\n  console.log(paths);\n}\n\nasync function preload() {\n  // console.log(\"preload\");\n  let fontName = \"assets/fonts/PolymathVar.woff2\";\n  // font = loadFont(fontName);\n  hbFont = await HBFont.loadFont(fontName);\n  //console.log(\">\", hbFont);\n  updateResult();\n\n  opentype.load(fontName, function(err, f) {\n    if (err) {\n      console.log(err);\n    } else {\n      font = f;\n    }\n    \n    fontPath = font.getPath(\"a\", 0, 0, 100);\n    console.log(fontPath);\n  });\n}\n\nfunction setup() {\n  //createCanvas(windowWidth, windowHeight, WEBGL);\n  return;\n\n  textInput = createInput(\"abc\");\n  createElement(\"br\");\n  sampleFactorSlider = createSlider(0.01, 10, 2, 0.01);\n  createElement(\"br\");\n  zSlider = createSlider(0, 1200, 0);\n  animateCheckbox = createCheckbox(\"animate\", true);\n  // animateCheckbox.changed(autoAnimate);\n\n  textInput.position(8, 8);\n  sampleFactorSlider.position(8, 32);\n  zSlider.position(8, 52);\n  animateCheckbox.position(8, 72);\n}\n\nfunction draw() {\n  return;\n  if (hbFont == undefined) {\n    return;\n  }\n\n  background(0);\n\n  // animate automatically\n  //autoAnimate();\n\n  orbitControl();\n\n  word = \" \" + textInput.value() + \" \";\n\n  //console.log(font);\n\n  let pts = font.textToPoints(word, 0, 0, 10, {\n    sampleFactor: sampleFactorSlider.value()*0.5,\n    simplifyThreshold: 0,\n  });\n\n  let bounds = font.textBounds(word, 0, 0, 10);\n\n  let multiplier = width / bounds.w;\n  translate(-width / 4 - (bounds.w * multiplier) / 4, 0);\n  translate(0, (bounds.h * multiplier) / 2);\n  randomSeed(0);\n\n  for (let i = 0; i < pts.length; i++) {\n    stroke(255);\n\n    point(\n      pts[i].x * multiplier,\n      pts[i].y * multiplier,\n      zPos - zSlider.value() * random(0, 2.5)\n    );\n  }\n\n  // let glyphs = hbFont.getGlyphs(\"ASDF\", 1000, {wght:100});\n\n  // background(250);\n\n  // glyphs.forEach((glyph) => {\n  //   let points = [];\n  //   let path = new g.Path(glyph.commands);\n  //   path = g.resampleByLength(path, 5);\n    \n  //   for (let i=0; i<path.commands.length; i++) {\n  //     if (path.commands[i].type == \"M\") { points.push([]); }\n      \n  //     if (path.commands[i].type != \"Z\") {\n  //       points[points.length-1].push(createVector(path.commands[i].x, path.commands[i].y));\n  //     }\n  //   }\n  \n  //   translate(glyph.x, glyph.y);\n  //   for (let i=0; i<points.length; i++) {\n  //     fill(\"deeppink\");\n  //     for (let j=0; j<points[i].length; j++) {\n  //       ellipse(points[i][j].x, points[i][j].y, 2, 2);\n  //     }\n  //   }\n  // });\n}\n\nfunction autoAnimate() {\n  if (animateCheckbox.checked()) {\n    sampleFactorSlider.value(map(sin(frameCount * 0.02), -1, 1, 0.01, 10));\n    zSlider.value(map(sin(frameCount * 0.02), -1, 1, 1200, 0));\n  }\n}\n\nfunction windowResized() {\n  resizeCanvas(windowWidth, windowHeight, WEBGL);\n}"
  },
  {
    "path": "examples/sites/coldtype.p5js/coldtype.p5js.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\n\nfont = \"PolymathVar\"\n\nheader: jinja_html = \"\"\"\n\"\"\"\nindex: jinja_html = \"\"\"\n<!--<p id=\"fontName\">{{ fonts[0].fonts[0].woff2_relative }}</p>-->\n<p><span id=\"svgResult\"></span></p>\n\"\"\"\nfooter: jinja_html = \"\"\"\n\"\"\"\n\nstyle: css = \"\"\"\n* { box-sizing: border-box; }\nbody { text-align: center; background: black; }\nh1 { font-variation-settings: \"wght\" 900; }\nh2 { font-variation-settings: \"wght\" 700; }\nheader a { color: royalblue; }\nheader a.current { color: hotpink; }\nmain { margin: 20px; }\n\"\"\"\n\ninfo = dict(\n    title=\"Coldtype/p5js Experiment\",\n    description=\"An experiment\",\n    style=style,\n    #script=script,\n    font_name=font,\n    scripts=[\n        \"https://unpkg.com/canvaskit-wasm@0.19.0/bin/canvaskit.js\",\n        #\"https://cdn.rawgit.com/nodebox/g.js/master/dist/g.min.js\",\n        \"https://cdn.jsdelivr.net/gh/generative-design/Code-Package-p5.js@master/libraries/gg-dep-bundle/gg-dep-bundle.js\",\n        \"https://cdnjs.cloudflare.com/ajax/libs/opentype.js/0.7.3/opentype.min.js\",\n        \"assets/hbjs.js\",\n        \"assets/p5.min.js\",\n        \"assets/script.js\",\n    ],\n    templates=dict(_header=header, _footer=footer, index=index),\n)\n\n@site(ººsiblingºº(\".\")\n      , port=8008\n      , info=info\n      , fonts={\n        \"text-font\": dict(regular=font, _features=dict(ss01=True,ss02=True))\n      })\ndef website(_):\n    website.build()\n\ndef release(_):\n    website.upload(\"example.com\", \"us-west-1\", \"personal\")"
  },
  {
    "path": "examples/sites/coldtype.xyz/coldtype.xyz.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\n\nheader: jinja_html = \"\"\"\n<div class=\"wrapper\">\n    <h1 style=\"max-width:400px\"><img alt=\"Coldtype\" style=\"width:100%\" src=\"/media/coldtype_wavey.jpg\"/></h1>\n    <ul class=\"link-list\">{% for k,v in info[\"externals\"].items() %}\n        <li><a href=\"{{v}}\">{{k}}</a></li>\n    {% endfor %}</ul>\n</div>\n\"\"\"\nindex: jinja_html = \"\"\"\n<p><em>Coldtype makes tools for advanced typography (and some other related stuff).</em></p>\n<hr/>\n<p>Currently those tools include:</p>\n<ul>\n    <li><a href=\"https://github.com/coldtype/coldtype\">coldtype</a>: an open-source <strong>Python library</strong> for programming animated display typography</li>\n    <li><a href=\"https://coldtype.xyz/st2\">ST2</a>: an open-source <strong>Blender add-on</strong> for doing good typography in 3D</li>\n    <li><a href=\"https://github.com/coldtype/b3denv\">b3denv</a>: an open-source command-line utility for working with Blender and its embedded Python</li>\n    <li><a href=\"https://github.com/stenson/nudge\">Nudge</a>: a VS Code extension that allows keyboard shortcuts to increment/decrement numeric values (and letters) and then immediately save the file</li>\n</ul>\n<!--<hr/>-->\n<!--<p>\nIf you’re looking to take a class on Coldtype, <a href=\"https://coopertype.org/events/type-sound-code-an-introduction-to-coldtype\">here’s one</a> that’s about to start in February.\n</p>-->\n<hr/>\n<p>Here are some talks about Coldtype & ST2:</p>\n<ul>\n    <li><a href=\"https://vimeo.com/864468653\">“A Font is a Percussion Instrument”</a> (Typographics 2023)</li>\n    <li><a href=\"https://youtu.be/gV2laWd727U\">The How & Why of ST2</a> (inScript 2022)</li>\n</ul>\n\"\"\"\nfooter: jinja_html = \"\"\"\n<p>Coldtype is a project of <a href=\"https://goodhertz.com\">Goodhertz</a>;<br/>development is led by <a href=\"https://robstenson.com\">Rob Stenson</a>.</p>\n\"\"\"\n\nstyle: css = \"\"\"\n* { box-sizing: border-box; }\n:root { --border-color: #ddd; }\nhtml, body { height: 100%; }\nbody {\n    background: white;\n    color: #222;\n    font-family: var(--text-font);\n    display: flex;\n    flex-direction: column;\n}\nem { font-style: normal; --text-font: fvs(ital=1); }\na { color: royalblue; text-decoration: none; }\nh1 { --text-font: fvs(wght=1); }\n\nheader, footer { background: white; }\nheader { border-bottom: 1px solid var(--border-color); }\nfooter { border-top: 1px solid var(--border-color); }\n\nheader, footer, main {\n    flex: 1;\n    padding: 30px 20px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\nheader, footer {\n    text-align: center;\n    max-height: 200px;\n    min-height: 200px;\n}\nmain {\n    padding: 50px 20px;\n}\n.wrapper { max-width: 500px; }\n\n.link-list {\n    list-style: none;\n    display: flex;\n    flex-wrap: wrap;\n    margin-top: 6px;\n    justify-content: center;\n    row-gap: 12px;\n}\n.link-list li:not(:last-child)::after { content: \"///\"; color: #ccc; }\n.link-list li a { padding: 4px 7px; background: whitesmoke; }\n.link-list li a:hover { background: lightpink; }\n\nmain p { margin-bottom: 16px; }\nmain strong { --text-font: fvs(wght=0.7); }\nmain hr {\n    border: none;\n    border-top: 2px solid #eee;\n    margin-bottom: 20px;\n    margin: 26px 60px 30px;\n}\nmain ul { margin-left: 20px; }\nmain li { margin-bottom: 10px; }\nmain li a { --text-font: fvs(wght=0.75); }\n\"\"\"\n\ninfo = dict(\n    title=\"Coldtype\",\n    description=\"Coldtype is a programming library for advanced typography (and other stuff)\",\n    style=style,\n    templates=dict(_header=header, _footer=footer, index=index),\n    externals={\n        \"github\": \"https://github.com/coldtype\",\n        \"youtube\": \"https://www.youtube.com/channel/UCIRaiGAVFaM-pSErJG1UZFA\",\n        \"tutorials\": \"https://coldtype.goodhertz.com/\",\n        # \"q&a forum\": \"https://github.com/goodhertz/coldtype/discussions\",\n    },\n)\n\n@renderable(preview_scale=0.25)\ndef favicon(r):\n    return StSt(\"C\", Font.ColdObvi(), 1300, wdth=1).align(r).f(0)\n\n@site(ººsiblingºº(\".\")\n      , port=8008\n      , livereload=True\n      , info=info\n      , favicon=favicon\n      , fonts={\"text-font\": dict(regular=\"MDIO-VF\")})\ndef website(_):\n    website.build()\n\n@renderable((1080, 200), fmt=\"png\")\ndef logo(r):\n    return (Glyphwise(\"COLDTYPE\", lambda g: Style(Font.ColdObvi(), 200, wdth=ez(g.e, \"l\", 1, rng=(1, 0))))\n        .f(0)\n        .align(r))\n\ndef release(_):\n    website.upload(\"coldtype.xyz\", \"us-west-1\", \"personal\")"
  },
  {
    "path": "examples/sites/portfolio/assets/style.css",
    "content": "body {\n  background: lightgreen;\n  font-family: var(--text-font), monospace;\n}\n\na {\n  color: royalblue;\n}"
  },
  {
    "path": "examples/sites/portfolio/build.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\n\ndef public_posts(site):\n    return [p for p in site.pages if p.template == \"_post\"]\n\ninfo = dict(\n    title=\"Coldtype Portfolio\",\n    description=\"This is the Coldtype portfolio\",\n    navigation={\"Home\": \"/\", \"About\": \"/about\"})\n\ndef pagemod(p):\n    print(p.title)\n    return p\n\n@site(ººsiblingºº(\".\")\n    , port=8008\n    , sources=dict(public_posts=public_posts)\n    , info=info\n    , pagemod=pagemod\n    , fonts={\n        \"text-font\": dict(regular=\"Casserole-Sans\"),\n        \"display-font\": dict(regular=\"CheeeVariable.ttf\")})\ndef portfolio(_):\n    portfolio.build()\n\n@renderable((1080, 540), bg=1)\ndef test(r):\n   return (StSt(\"TESTA\", Font.MuSan(), 400).align(r))\n\n@renderable((1080, 540), bg=1)\ndef testb(r):\n   return (StSt(\"TESTB\", Font.MuSan(), 400).align(r))"
  },
  {
    "path": "examples/sites/portfolio/pages/about.md",
    "content": "---\ntitle: About\nrandom: value\n---\nThis is the __about__ page, right? Here is a link to an [example post](/example)."
  },
  {
    "path": "examples/sites/portfolio/pages/posts/example.md",
    "content": "---\ntitle: Example Post\nslug: example\ndate: 2024-06-28\n---\n\n![An example](/renders/build_test.png)\n\nThis is an example post.\n\n+++\n\n![Another example](/renders/build_testb.png)"
  },
  {
    "path": "examples/sites/portfolio/templates/_footer.j2",
    "content": "<style type=\"text/css\">\nfooter {\n  margin-top: 100px;\n  padding-top: 30px;\n  border-top: 1px solid white;\n}\n</style>\n<div>\nThis is the footer\n</div>"
  },
  {
    "path": "examples/sites/portfolio/templates/_header.j2",
    "content": "<style type=\"text/css\">\n  header {\n    margin-bottom: 100px;\n    padding-bottom: 30px;\n    border-bottom: 1px solid white;\n  }\n  #mobile-nav {\n    display: none;\n  }\n</style>\n<h1>\n  <a href=\"/\">Coldtype</a>\n</h1>\n<div id=\"pages\">\n  <div id=\"mobile-nav\">\n    <a id=\"nav-open\" href=\"#navigation\">☰</a>\n    <a id=\"nav-close\" href=\"#navigation-close\">✖</a>\n  </div>\n  <ul>\n    {% for page in nav_links %}\n    <li><a href=\"{{ page.href }}\" {% if page.classes %}class=\"{{ page.classes }}\" {% endif %}>{{ page.title }}</a></li>\n    {% endfor %}\n  </ul>\n</div>"
  },
  {
    "path": "examples/sites/portfolio/templates/_page.j2",
    "content": "<div id=\"content\">\n  <h1>{{ page.title }}</h1>\n  {{ page.content|safe }}\n</div>"
  },
  {
    "path": "examples/sites/portfolio/templates/_post.j2",
    "content": "<div id=\"content\">\n  <h1>Post: {{ page.title }}</h1>\n  {{ page.content|safe }}\n</div>"
  },
  {
    "path": "examples/sites/portfolio/templates/index.j2",
    "content": "<style>\nh1 {\n  --display-font: fvs(GRVT=1, YEST=1)\n}\n</style>\n\n<h1>Index</h1>\n<p>This is the index page of the Coldtype portfolio site</p>\n\n<div style=\"margin-top:100px\">\n  <ul>{% for p in public_posts %}\n  <li><a href=\"/{{ p.slug }}\">{{ p.title }}</a></li>\n  {% endfor %}</ul>\n</div>"
  },
  {
    "path": "examples/sites/skeleton/skeleton.py",
    "content": "from coldtype import *\nfrom coldtype.web.site import *\n\nheader: jinja_html = \"\"\"\n<h1>header</h1>\n{{ nav_html|safe }}\n\"\"\"\nindex: jinja_html = \"\"\"\n<p>index page</p>\n\"\"\"\nabout: jinja_html = \"\"\"\n<p>about page</p>\n\"\"\"\nfooter: jinja_html = \"\"\"\n<h2>footer</h2>\n\"\"\"\n\nstyle: css = \"\"\"\n* { box-sizing: border-box; }\nbody { text-align: center; }\nh1 { font-variation-settings: \"wght\" 900; }\nh2 { font-variation-settings: \"wght\" 700; }\nheader a { color: royalblue; }\nheader a.current { color: hotpink; }\nmain { border: 1px solid black; margin: 20px; }\n\"\"\"\n\nscript: js = \"\"\"\nconsole.log(\"hello world\")\n\"\"\"\n\ninfo = dict(\n    title=\"Skeleton\",\n    description=\"This is empty code to copy\",\n    style=style,\n    script=script,\n    templates=dict(_header=header, _footer=footer, index=index, about=about),\n    navigation={\"Home\": \"/\", \"About\": \"/about\"},\n)\n\n@site(ººsiblingºº(\".\")\n      , port=8008\n      , info=info\n      , fonts={\n        \"text-font\": dict(regular=\"Cheee_Caption\", _embed=True)\n      })\ndef website(_):\n    website.build()\n\ndef release(_):\n    website.upload(\"example.com\", \"us-west-1\", \"personal\")"
  },
  {
    "path": "examples/skia_direct.py",
    "content": "from coldtype import *\n\n@skia_direct((500, 300))\ndef direct_to_canvas(r, canvas):\n    canvas.drawString(\n        \"hello\",\n        10,\n        r.h-10,\n        skia.Font(skia.Typeface(\"Times New Roman\"), 150),\n        skia.Paint(AntiAlias=True, Color=hsl(0.9, s=1).skia()))"
  },
  {
    "path": "examples/skia_paragraph.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import draw_canvas\n\nfrom skia import textlayout, ColorBLACK, Paint, Unicodes, FontMgr, FontStyle, ColorBLUE\n\n# adaptation of https://github.com/HinTak/skia-python-examples/blob/main/skparagraph-example.py\n\n@animation((1080, 540), bg=1, tl=Timeline(30, 30))\ndef paragraph(f):\n    def draw(r, canvas):\n        font_collection = textlayout.FontCollection()\n        font_collection.setDefaultFontManager(FontMgr())\n\n        strut_style = textlayout.StrutStyle()\n        strut_style.setStrutEnabled(True)\n        #strut_style.setLeading(f.e(\"eeio\", rng=(3.05, 0.75)))\n\n        strut_style.setLeading(0)\n\n        para_style = textlayout.ParagraphStyle()\n        para_style.setStrutStyle(strut_style)\n\n        builder = textlayout.ParagraphBuilder.make(para_style, font_collection, Unicodes.ICU.Make())\n\n        paint = Paint()\n        paint.setAntiAlias(True)\n        paint.setColor(ColorBLACK)\n\n        style = textlayout.TextStyle()\n        style.setFontSize(30.0)\n        style.setForegroundPaint(paint)\n        style.setFontFamilies([\"hex franklin v0.3 narrow\", \"times\", \"georgia\", \"serif\"])\n        builder.pushStyle(style)\n\n        style_bold = style.cloneForPlaceholder()\n        style_bold.setFontStyle(FontStyle.Bold())\n        builder.pushStyle(style_bold)\n        builder.addText(\"Typography\")\n        builder.pop()\n\n        builder.addText(\" is the \")\n\n        style_italic = style.cloneForPlaceholder()\n        style_italic.setFontStyle(FontStyle.Italic())\n        #style_italic.setLetterSpacing(-2.0)\n        style_italic.setWordSpacing(-10)\n        paint.setColor(ColorBLUE)\n        style_italic.setForegroundPaint(paint)\n        builder.pushStyle(style_italic)\n        builder.addText(\"art and technique\")\n        builder.pop()\n\n        builder.addText(\" of arranging type to make written language \")\n\n        style_underline = style.cloneForPlaceholder()\n        style_underline.setDecoration(textlayout.TextDecoration.kUnderline)\n        style_underline.setDecorationMode(textlayout.TextDecorationMode.kGaps)\n        style_underline.setDecorationColor(ColorBLACK)\n        style_underline.setDecorationThicknessMultiplier(1.5)\n        builder.pushStyle(style_underline)\n        builder.addText(\"legible, readable, and appealing\")\n        builder.pop()\n\n        builder.addText(\" when displayed. The arrangement of type involves selecting typefaces, point sizes, line lengths, line-spacing (leading), and letter-spacing (tracking), and adjusting the space between pairs of letters (kerning). The term typography is also applied to the style, arrangement, and appearance of the letters, numbers, and symbols created by the process.\")\n\n        builder.addText(\" Furthermore, العربية نص جميل. द क्विक ब्राउन फ़ॉक्स jumps over the lazy 🐕.\")\n\n        ri = r.inset(f.e(\"eeio\", rng=(10, 300)))\n\n        paragraph = builder.Build()\n        paragraph.layout(ri.w)\n\n        width = paragraph.LongestLine\n        height = paragraph.Height\n\n        paragraph.paint(canvas, r.w/2 - width/2, r.h/2 - height/2)\n    \n    return draw_canvas(f.a.r, draw)"
  },
  {
    "path": "examples/skia_shader.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import rasterized, image_shader\n\nr = Rect(540)\nimage = StSt(\"TYPE\", Font.ColdObvi(), 500, wdth=0).align(r).ch(rasterized(r))\n\n@animation(r, tl=Timeline(60, 30), bg=1)\ndef warper2(f):\n    sksl = f\"\"\"\n    uniform shader image;\n    half4 main(float2 coord) {{\n      coord.x += sin(coord.y / {f.e(\"eeio\", rng=(40, 10))}) * {f.e(\"eeio\", rng=(60, 0))};\n      return image.eval(coord);\n    }}\"\"\"\n\n    return P().ch(image_shader(f.a.r, image, sksl))"
  },
  {
    "path": "examples/skia_shader.sksl",
    "content": "// kind=shader\n\nfloat rand(float n){return fract(sin(n) * 43758.5453123);}\n\nfloat noise(float p){\n\tfloat fl = floor(p);\n    float fc = fract(p);\n    return mix(rand(fl), rand(fl + 1.0), fc);\n}\n\t\nfloat noise(vec2 n) {\n\tconst vec2 d = vec2(0.0, 1.0);\n    vec2 b = floor(n), f = smoothstep(vec2(0.0), vec2(1.0), fract(n));\n\treturn mix(mix(rand(b), rand(b + d.yx), f.x), mix(rand(b + d.xy), rand(b + d.yy), f.x), f.y);\n}"
  },
  {
    "path": "examples/skia_shader2.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import rasterized, image_shader\n\nr = Rect(540)\nimage = StSt(\"TYPE\", Font.ColdObvi(), 500, wdth=0).align(r).ch(rasterized(r))\n\n@animation(r, tl=Timeline(60, 30), bg=1)\ndef warper2(f):\n    sksl = f\"\"\"\nfloat hash(float2 p) {{\n    return fract(sin(dot(p, float2(127.1, 311.7))) * 43758.5453123);\n}}\n\nfloat noise(float2 p) {{\n    float2 i = floor(p);\n    float2 f = fract(p);\n\n    float a = hash(i);\n    float b = hash(i + float2(1.0, 0.0));\n    float c = hash(i + float2(0.0, 1.0));\n    float d = hash(i + float2(1.0, 1.0));\n\n    float2 u = f * f * (3.0 - 2.0 * f);\n\n    return mix(a, b, u.x) + (c - a) * u.y * (1.0 - u.x) + (d - b) * u.x * u.y;\n}}\n\nfloat perlinNoise(float2 p, float persistence) {{\n    float total = 0.0;\n    float amplitude = 1.0;\n    float frequency = 1.0;\n    float maxValue = 0.0;\n\n    for (int i = 0; i < 4; ++i) {{\n        total += noise(p * frequency) * amplitude;\n        maxValue += amplitude;\n        amplitude *= persistence;\n        frequency *= 2.0;\n    }}\n\n    return total / maxValue;\n}}\n\n// Main shader program\nuniform shader image;\nuniform float time;        // Time for animation\n//uniform float2 resolution;   // Resolution of the texture\n//uniform float strength;    // Strength of displacement\n\nfloat2 resolution = float2(1080, 1080);\nfloat strength = 1.0;\n\nhalf4 main(float2 coord) {{\n    float2 uv = coord / resolution;\n\n    // Generate Perlin noise\n    float noiseValueX = perlinNoise(uv + float2(time, 0.0), 0.5);\n    float noiseValueY = perlinNoise(uv + float2(0.0, time), 0.5);\n\n    // Displace UVs\n    float2 displacement = float2(noiseValueX, noiseValueY) * strength;\n    float2 displacedUV = uv + displacement;\n\n    // Sample the texture\n    return image.eval(displacedUV * resolution);\n}}\"\"\"\n\n    return P().ch(image_shader(f.a.r, image, sksl))"
  },
  {
    "path": "examples/skia_shader_clouds.sksl",
    "content": "// kind=shader\n\nuniform float3 iResolution;      // Viewport resolution (pixels)\nuniform float  iTime;            // Shader playback time (s)\nuniform float4 iMouse;           // Mouse drag pos=.xy Click pos=.zw (pixels)\nuniform float3 iImageResolution; // iImage1 resolution (pixels)\nuniform shader iImage1;          // An input image.\n\nconst float cloudscale = 1.1;\nconst float speed = 0.03;\nconst float clouddark = 0.5;\nconst float cloudlight = 0.3;\nconst float cloudcover = 0.2;\nconst float cloudalpha = 8.0;\nconst float skytint = 0.5;\nconst vec3 skycolour1 = vec3(0.2, 0.4, 0.6);\nconst vec3 skycolour2 = vec3(0.4, 0.7, 1.0);\n\nconst mat2 m = mat2( 1.6,  1.2, -1.2,  1.6 );\n\nvec2 hash( vec2 p ) {\n\tp = vec2(dot(p,vec2(127.1,311.7)), dot(p,vec2(269.5,183.3)));\n\treturn -1.0 + 2.0*fract(sin(p)*43758.5453123);\n}\n\nfloat noise( in vec2 p ) {\n    const float K1 = 0.366025404; // (sqrt(3)-1)/2;\n    const float K2 = 0.211324865; // (3-sqrt(3))/6;\n\tvec2 i = floor(p + (p.x+p.y)*K1);\t\n    vec2 a = p - i + (i.x+i.y)*K2;\n    vec2 o = (a.x>a.y) ? vec2(1.0,0.0) : vec2(0.0,1.0); //vec2 of = 0.5 + 0.5*vec2(sign(a.x-a.y), sign(a.y-a.x));\n    vec2 b = a - o + K2;\n\tvec2 c = a - 1.0 + 2.0*K2;\n    vec3 h = max(0.5-vec3(dot(a,a), dot(b,b), dot(c,c) ), 0.0 );\n\tvec3 n = h*h*h*h*vec3( dot(a,hash(i+0.0)), dot(b,hash(i+o)), dot(c,hash(i+1.0)));\n    return dot(n, vec3(70.0));\t\n}\n\nfloat fbm(vec2 n) {\n\tfloat total = 0.0, amplitude = 0.1;\n\tfor (int i = 0; i < 7; i++) {\n\t\ttotal += noise(n) * amplitude;\n\t\tn = m * n;\n\t\tamplitude *= 0.4;\n\t}\n\treturn total;\n}\n\n// -----------------------------------------------\n\nhalf4 main(in vec2 fragCoord ) {\n    vec2 p = fragCoord.xy / iResolution.xy;\n\tvec2 uv = p*vec2(iResolution.x/iResolution.y,1.0);    \n    float time = iTime * speed;\n    float q = fbm(uv * cloudscale * 0.5);\n    \n    //ridged noise shape\n\tfloat r = 0.0;\n\tuv *= cloudscale;\n    uv -= q - time;\n    float weight = 0.8;\n    for (int i=0; i<8; i++){\n\t\tr += abs(weight*noise( uv ));\n        uv = m*uv + time;\n\t\tweight *= 0.7;\n    }\n    \n    //noise shape\n\tfloat f = 0.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\tuv *= cloudscale;\n    uv -= q - time;\n    weight = 0.7;\n    for (int i=0; i<8; i++){\n\t\tf += weight*noise( uv );\n        uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n    \n    f *= r + f;\n    \n    //noise colour\n    float c = 0.0;\n    time = iTime * speed * 2.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\tuv *= cloudscale*2.0;\n    uv -= q - time;\n    weight = 0.4;\n    for (int i=0; i<7; i++){\n\t\tc += weight*noise( uv );\n        uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n    \n    //noise ridge colour\n    float c1 = 0.0;\n    time = iTime * speed * 3.0;\n    uv = p*vec2(iResolution.x/iResolution.y,1.0);\n\tuv *= cloudscale*3.0;\n    uv -= q - time;\n    weight = 0.4;\n    for (int i=0; i<7; i++){\n\t\tc1 += abs(weight*noise( uv ));\n        uv = m*uv + time;\n\t\tweight *= 0.6;\n    }\n\t\n    c += c1;\n    \n    vec3 skycolour = mix(skycolour2, skycolour1, p.y);\n    vec3 cloudcolour = vec3(1.1, 1.1, 0.9) * clamp((clouddark + cloudlight*c), 0.0, 1.0);\n    \n    f = cloudcover + cloudalpha*f*r;\n    \n    vec3 result = mix(skycolour, clamp(skytint * skycolour + cloudcolour, 0.0, 1.0), clamp(f + c, 0.0, 1.0));\n    \n\treturn vec4( result, 1.0 );\n}"
  },
  {
    "path": "examples/snakes.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import phototype, temptone, shake\n\n# a variation on https://github.com/djrrb/Python-for-Visual-Designers-Fall-2023/blob/main/session-4/challenges/snakes.py\n\nr = Rect(1000, 1000)\ns = Scaffold(r).numeric_grid(1, 8)\n\nrxs = random_series(-(d:=r.w/2-100), d, 0, mod=int, spread=200)\n\ndef build_snake(seed):\n    snake = P()\n    snake.moveTo((0, 0))\n    prevX = 0\n    prevY = 0\n    for idx, x in enumerate(s):\n        y = prevY + s[0].r.h\n        if idx < len(s)-1:\n            x = rxs[(idx+2)+seed*10]\n        else:\n            x = 0\n        snake.curveTo(\n            (prevX, prevY+s[0].r.h),\n            (x, y-s[0].r.h),\n            (x, y))\n        prevX = x\n        prevY = y\n    return snake.endPath()\n\n@animation(r, bg=0, tl=Timeline(60, 10))\ndef snakes(f):\n    return (P().enumerate(range(0, 7), lambda x:\n        build_snake(x.el)\n            .t(x.el*20, 0)\n            .fssw(-1, 1, 5)\n            .ch(shake(4, 2, seed=f.i)))\n        .align(f.a.r)\n        .ch(phototype(f.a.r.inset(-10), 4, 123, 17))\n        .postprocess(lambda res: res.ch(temptone(0.70, 0.10))))"
  },
  {
    "path": "examples/spacing_clusters.py",
    "content": "from coldtype import *\n\n# https://brill.com/page/resources_fontsdownloads\n\nfont = Font.Find(\"Brill-Bold\")\n\n@renderable((540, 540), bg=0)\ndef spaced_clusters(r:Rect):\n    txt = (StSt(\"Ae̞ø̞\", font, 200, cluster=True, postTracking=200)\n        .f(1)\n        .align(r, tx=1))\n    \n    assert txt[-1].data(\"glyphName\") == \"oslash+uni031E\"\n    \n    return (P(P(txt.copy().ambit()).f(hsl(0.9)), txt))\n"
  },
  {
    "path": "examples/src_macro.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\nassert 4j == 0.1016 # see .coldtype.py for magic\n\n@renderable((500, 500), bg=1)\ndef magic_trick(r):\n    return (P(\n            StSt(\"4j\", Font.RecMono(), 100),\n            StSt(str(4j), Font.RecMono(), 100))\n        .stack(20)\n        .align(r)\n        .f(0))\n\n@b3d_runnable()\ndef setup(bpw:BpyWorld):\n    bpw.delete_previous()\n    BpyObj.Monkey()"
  },
  {
    "path": "examples/stacking.py",
    "content": "from coldtype import *\nfrom coldtype.text.richtext import RichText\n\ntxt = \"\"\"\na few lines\n\nOf Text [b]\n\nright here\n\netaoin [h]\nshrdlu [b]\n\"\"\"\n\ngrafs = txt.strip().split(\"\\n\\n\")\n\n@renderable()\ndef stacking(r):\n    def graf(txt):\n        return (RichText(r, txt, lambda t, s:\n            (t, Style(\"Trebuchet\" if \"h\" in s else r\"Georgia\\.\", 150 if \"b\" in s else 50)))\n            .f(hsl(0.7)))\n        \n    return (P(\n            graf(grafs[0]),\n            P().oval(Rect(50, 50)).ups().f(hsl(0.07, 0.9)),\n            graf(grafs[1]),\n            graf(grafs[2]),\n            P().oval(Rect(50, 50)).outline(10).ups().f(hsl(0.07, 0.9)),\n            graf(grafs[3])\n        )\n        .stack(20, zero=1)\n        .align(r)\n        .map(lambda p: p\n            .xalign(r)\n            .extend((lambda p:\n                (P(p.ambit(tx=0))\n                    .fssw(-1, hsl(0.3, a=0.6), 2)),\n                (P(p.ambit(tx=1, ty=1))\n                    .fssw(-1, hsl(0.9, a=0.3), 2))))))\n"
  },
  {
    "path": "examples/svg_viewer.py",
    "content": "from coldtype import *\nfrom coldtype.raster import *\nfrom coldtype.img.skiasvg import SkiaSVG\n\nimport skia\n\ndoc = \"\"\"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t viewBox=\"0 0 512 512\" style=\"enable-background:new 0 0 512 512;\" xml:space=\"preserve\">\n<g>\n\t<polygon style=\"fill:#F4B2B0;\" points=\"280.608,247.082 410.28,247.082 410.28,123.527 337.197,123.527 337.197,156.085 \n\t\t87.722,156.085 87.722,123.527 14.639,123.527 14.639,430.728 280.608,430.728 \t\"/>\n\t<polygon style=\"fill:#F4B2B0;\" points=\"414.534,247.082 412.448,247.082 412.448,324.299 495.959,324.299 \t\"/>\n</g>\n<path style=\"fill:#B3404A;\" d=\"M497.361,363c-8.084,0-14.639,6.554-14.639,14.639v99.451H295.248v-46.36V261.724h102.563v62.577\n\tc0,8.085,6.555,14.639,14.639,14.639h83.51c5.992,0,11.377-3.651,13.598-9.217c2.219-5.566,0.823-11.922-3.525-16.044l-81.111-76.92\n\tV123.527c0-8.085-6.555-14.639-14.639-14.639h-58.446V92.343c0-8.085-6.555-14.639-14.639-14.639h-52.668\n\tc-8.084,0-14.639,6.554-14.639,14.639c0,8.085,6.555,14.639,14.639,14.639h38.029v16.545v17.919H102.362v-17.919v-16.545h38.027\n\tc8.084,0,14.639-6.554,14.639-14.639c0-31.668,25.764-57.431,57.431-57.431c15.804,0,30.531,6.286,41.47,17.7\n\tc5.594,5.838,14.861,6.034,20.698,0.439c5.837-5.594,6.034-14.86,0.441-20.698c-16.513-17.23-38.748-26.719-62.609-26.719\n\tc-42.825,0-78.498,31.204-85.473,72.07H87.723c-8.084,0-14.639,6.554-14.639,14.639v16.545H14.639\n\tC6.555,108.888,0,115.442,0,123.527v307.201c0,8.085,6.555,14.639,14.639,14.639h251.332v46.36c0,8.085,6.555,14.639,14.639,14.639\n\th216.752c8.084,0,14.639-6.554,14.639-14.639V377.639C512,369.554,505.445,363,497.361,363z M427.087,309.66v-30.499l32.162,30.499\n\tH427.087z M29.278,416.089V138.166h43.807v17.919c0,8.085,6.555,14.639,14.639,14.639h249.474c8.084,0,14.639-6.554,14.639-14.639\n\tv-17.919h43.807v94.277H280.609c-8.084,0-14.639,6.554-14.639,14.639l0,0v169.006H29.278V416.089z\"/>\n</svg>\"\"\"\n\n# doc = \"\"\"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n# <svg id=\"glyph49\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"800\" height=\"800\"><g transform=\"matrix(1,0,-0.1405,1,-11,61)\" ><image href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAADMElEQVR4nOzVwQnAIBQFQYXff81RUkQCOyDj1YOPnbXWPmeTRef+/3O/OyBjzh3CD95BfqICMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMK0CMO0TAAD//2Anhf4QtqobAAAAAElFTkSuQmCC\"/></g></svg>\n# \"\"\"\n\ndom = skia.SVGDOM.MakeFromStream(skia.MemoryStream(doc.encode('utf-8')))\ndom.setContainerSize(skia.Size(1080, 1080))\n\n@renderable()\ndef scratch(r):\n    return (SkiaSVG(dom))\n"
  },
  {
    "path": "examples/transparency.py",
    "content": "from coldtype import *\n\nf = bw(0.9)\n\n@renderable(30, bg=1, render_bg=1)\ndef blocks(r):\n    s = Scaffold(r).numeric_grid(2, 2)\n    return [P(s[\"0|1\"]).f(f), P(s[\"1|0\"]).f(f)]\n\n@renderable(1024, bg=-1)\ndef appicon(r):\n    return (StSt(\"C\", Font.ColdObvi(), 1280)\n        .align(r))\n\ndef release(_):\n    from shutil import copy2\n    blocks_path = blocks.render_to_disk(render_bg=1)[0]\n    copy2(blocks_path, Path(\"packages/coldtype-core/src/coldtype/demo\") / blocks_path.name)\n\n    icon_path = appicon.render_to_disk(render_bg=0)[0]\n    copy2(icon_path, Path(\"packages/coldtype-core/src/coldtype/demo\") / icon_path.name)"
  },
  {
    "path": "examples/transparent_understroke.py",
    "content": "from coldtype import *\nfrom functools import partial\n\n@renderable((1080, 680))\ndef understroke_cut(r):\n    def cut(line, i, p):\n        if i > 0:\n            return p.difference(line[i-1].copy().outline(10, drawOuter=False))\n\n    return (StSt(\"COLD\\nTYPE\", Font.ColdObvi(), 300, tu=-100, ro=1)\n        .f(hsl(0.9))\n        .map(lambda p: p.map(partial(cut, p)))\n        .map(lambda p: p.track(50))\n        .align(r))"
  },
  {
    "path": "examples/ufo.py",
    "content": "from coldtype import *\n\nfs = Font.Find(r\"Cold.*_CompressedBlackItalic\\.ufo\", \"assets\")\n\n@renderable((1080, 540))\ndef scratch(r):\n    return StSt(\"CDELOPTY\", fs, 300).align(r)\n"
  },
  {
    "path": "examples/vector_pixels.py",
    "content": "from coldtype import *\nfrom coldtype.fx.skia import vector_pixels\n\n@renderable((1080, 540))\ndef scratch(r:Rect):\n    return (StSt(\"ABC\", Font.MuSan(), 500, wght=0.25)\n        .align(r)\n        .ch(vector_pixels(r, scale=0.05, combine=True, lut={\n            (0, 50, 100, 100): (c:=hsl(0.65)),\n            (0, 37, 74, 74): c.lighter(0.1),\n            (0, 25, 50, 50): c.lighter(0.2),\n            (0, 12, 25, 25): c.lighter(0.3),\n        }))\n        .align(r)\n        .print())\n"
  },
  {
    "path": "examples/wip/capture.py",
    "content": "# a good invocation: coldtype examples/capture.py -wpass -wt -wo 0.85 -wp NW -ps 2\n\nfrom coldtype import *\nfrom coldtype.capture import read_frame\nfrom coldtype.midi.controllers import LaunchControlXL\n\nStyle.RegisterShorthandPrefix(\"≈\", \"~/Type/fonts/fonts\")\nfnt = Font.Cacheable(\"≈/CheeeVariable.ttf\")\n\n@animation((1080, 1080), cv2caps=[0], rstate=1)\ndef capture_with_midi(f:Frame, rs): \n    nxl = LaunchControlXL(rs.midi)\n    img = (read_frame(rs.cv2caps[0]).align(f.a.r))\n    \n    return P(\n        img.a(0.25),\n        (StSt(\"CTRL\", fnt, 200+nxl(10, 0)*500,\n            r=1, # reverse\n            ro=1, # remove-overlap\n            rotate=nxl(60, 0)*360,\n            grvt=nxl(40, 0),\n            yest=nxl(20, 0),\n            tu=(1-nxl(30, 0))*-650)\n            .align(f.a.r.take(0.75, \"mxy\"))\n            .f(hsl(0.7, 1, 0.7))\n            .understroke(sw=nxl(50, 0)*100)))"
  },
  {
    "path": "examples/wip/displace_map.py",
    "content": "from coldtype import *\nfrom coldtype.img.skiaimage import SkiaImage\nfrom coldtype.fx.skia import warp\n\nimport numpy as np\n#from skimage.transform import swirl\n\n@renderable((540, 540))\ndef gradient(r):\n    return (P(r).f(Gradient.H(r, bw(1), bw(0))))\n\n@renderable((540, 540))\ndef text(r):\n    return (StSt(\"COLD\", Font.ColdObvi(), 500, wdth=0).align(r))\n\n@renderable((540, 540), solo=1, bg=1)\ndef displace(r):\n    def cubic_bezier_curve(t, P0, P1, P2, P3):\n        return (1 - t)**3 * P0 + 3 * (1 - t)**2 * t * P1 + 3 * (1 - t) * t**2 * P2 + t**3 * P3\n\n    def vertical_shrink(coords):\n        h = r.h\n        x, y = coords.T\n        t = y / h\n        P0, P1, P2, P3 = -0.1, 0.25, 0.75, 1\n        y_new = cubic_bezier_curve(t, P0, P1, P2, P3) * h\n        return np.vstack((x, y_new)).T\n    \n    return (P(r).f(1)\n        .up()\n        .append(P().gridlines(r).fssw(-1, 0, 2))\n        .ch(warp(r, vertical_shrink)))"
  },
  {
    "path": "examples/wip/drawbot_image.py",
    "content": "from coldtype import *\nfrom coldtype.img.drawbotimage import DrawBotImage\n\n# wip\n\n@renderable((540, 540/2), bg=hsl(0.3), render_only=1)\ndef test_image(r):\n    return StSt(\"HELLO\", Font.MuSan(), 100, wght=1).align(r, ty=1).f(hsl(0.9, 0.6, 0.6))\n\n@animation((540, 540))\ndef db_image(f):\n    DrawBotImage(test_image.pass_path(0))\n    pass"
  },
  {
    "path": "examples/wip/google_font.py",
    "content": "from coldtype import *\n\n# if you're running this on windows, you'll\n# probably need to do an `export PYTHONUTF8=1`\n# in your shell before running it, or else\n# python won't be able to understand these strings\n\npairs = [\n    [\"Noto Sans Tamil\", \"ஐக்கிய நாடுகள்\"],\n    [\"Noto Sans Balinese\", \"ᬏᬢᬤᬢᬶᬭᬶᬓ᭄ᬢᬫ᭄,\"],\n    [\"Noto Sans Telugu\", \"ఈ స్వత్వములను\"],\n    [\"Noto Sans Bengali\", \"গাসৈ সুবুঙানৗ উদাংয়ৈ\"],\n    [\"Noto Sans Sundanese\", \"ᮞᮊᮥᮙ᮪ᮔ ᮏᮜ᮪ᮙ ᮌᮥᮘᮢᮌ᮪\"]\n]\n\n@animation((1080, 540), tl=len(pairs), bg=1)\ndef nabla1(f):\n    font_name, text = pairs[f.i]\n    return (StSt(text, Font.GoogleFont(font_name)\n        , fontSize=50)\n        .align(f.a.r, tx=0, ty=1)\n        .f(0))"
  },
  {
    "path": "examples/wip/toggle.py",
    "content": "from coldtype import *\nfrom coldtype.midi.controllers import LaunchControlXL\n\n@animation((1080, 1080), bg=1, rstate=1)\ndef render(f, rstate):\n    nxl = LaunchControlXL(rstate.midi)\n    toggle_state = nxl(10, 0) > 0.5\n    \n    return (StSt(\n        \"ON\" if toggle_state else \"OFF\"\n        , font=Font.MutatorSans()\n        , fontSize=500 if toggle_state else 100)\n        .align(f.a.r))"
  },
  {
    "path": "examples/wip/ui.py",
    "content": "from coldtype import *\n\n\"\"\"\nProof-of-concept for @ui interface\n\n- Click anywhere to change interpolation\n- Hit spacebar then move mouse for mouse-move\n\"\"\"\n\n@ui((1000, 1000))\ndef cursor_interp(u):\n    ri = u.r.inset(100)\n    sx, sy = ri.ipos(u.c)\n    return [\n        P(ri).fssw(-1, hsl(0.9, a=0.3), 2),\n        (StSt(\"VARI\\nABLE\", Font.MutatorSans(), 150\n            , wdth=sx, wght=sy)\n            .xalign(u.r)\n            .lead(30)\n            .align(u.r)\n            .f(0))]\n\n"
  },
  {
    "path": "packages/coldtype/README.md",
    "content": "__⚠️🌋 Disclaimer: this library is alpha-quality; the API is subject to change 🌋⚠️__\n\n---\n\n# Coldtype\n\n_Hello and welcome to `coldtype`, an odd little library for programmatic typography, written for use on [Goodhertz](https://goodhertz.com) projects and [text animations](https://vimeo.com/robstenson)._\n\nHere’s a quick example:\n\n```python\nfrom coldtype import *\n\n@renderable((1580, 350))\ndef render(r):\n    return P(\n        P(r.inset(10)).outline(10).f(hsl(0.65)),\n        StSt(\"COLDTYPE\", Font.ColdtypeObviously()\n            , fontSize=250\n            , wdth=1\n            , tu=-250\n            , r=1\n            , rotate=15)\n            .align(r)\n            .fssw(hsl(0.65), 1, 5, 1)\n            .translate(0, 5))\n```\n\nIf you have [uv](https://docs.astral.sh/uv/) installed, saving that code in a file named test.py and running `uvx coldtype test.py` results in this image popping up on your screen in a dedicated window:\n\n![An example](https://raw.githubusercontent.com/goodhertz/coldtype/main/examples/renders/simple_render.png)\n\n## Documentation\n\nCheck out [coldtype.xyz](https://coldtype.xyz) for instructions on installing and getting started with coldtype.\n\n## More Examples\n\nThe best way to get familiar with Coldtype is to look at and try modifying some example code, like the animating gif below. To try out this example and many more, check out the [examples/animation](https://github.com/goodhertz/coldtype/tree/main/examples/animations) directory in this repo.\n\n## Contributing\n\nTo get a development environment for Coldtype:\n\n```\ngit clone https://github.com/coldtype/coldtype.git\nuv run ct examples/animations/808.py\n```\n\nTo run tests, etc.\n\n```\nuv sync --extra dev\n```\n\n\n### Using with Blender\n\nBig thing: match your the Python version in your uv installation (or venv generally-speaking) to the Python version embedded \n\n- Find the desired Blender version:\n    - `uvx b3denv python --version`\n- Create a project with that version:\n    - `uv init --python 3.XX`\n- Add Coldtype:\n    - `uv add coldtype`\n- Verify Coldtype installation:\n    - `uv run coldtype demoblender`\n- Try a Blender-enabled Coldtype file:\n    - `uv run coldtype demoblender -p b3dlo`"
  },
  {
    "path": "packages/coldtype/pyproject.toml",
    "content": "[project]\nname = \"coldtype\"\nversion = \"0.13.6\"\ndependencies = [\n    \"coldtype-core==0.13.6\",\n    \"glfw\",\n    \"PyOpenGL\",\n    \"skia-python\",\n    \"skia-pathops\",\n    \"numpy\",\n    \"potracer\",\n    \"requests>=2.32.4\",\n    \"mido\",\n    \"ufo2ft>=3.2.8\", # pin for fg issue\n    \"coldtype-fontgoggles[more-fonts]==1.8.4.7\",\n    \"tqdm\",\n    \"pyobjc-core\",\n    \"pyobjc-framework-Cocoa\",\n    \"pyobjc-framework-CoreText\",\n]\n\n[project.urls]\nHomepage = \"https://coldtype.xyz\"\nDocumentation = \"https://coldtype.goodhertz.com\"\nRepository = \"https://github.com/coldtype/coldtype\"\nIssues = \"https://github.com/coldtype/coldtype/issues\"\nChangelog = \"https://github.com/coldtype/coldtype/blob/main/CHANGELOG.md\"\n\n[project.scripts]\ncoldtype = \"coldtype.renderer:main\"\nct = \"coldtype.renderer:main\"\nctb = \"coldtype.renderer:main_b3d\"\n\n[project.optional-dependencies]\nmore-fonts = [\n    \"ufo2ft>=3.2.8\", # pin for fg issue\n    \"coldtype-fontgoggles[more-fonts]==1.8.4.7\"\n]\nviewer = []\ndrawbot = [\"numpy\"]\nunicode = [\"unicodedata2\"]\naudio = [\"pyaudio\", \"soundfile\"]\nwebsite = [\n    \"jinja2>=3.1.6\",\n    \"python-frontmatter\",\n    \"livereload\",\n    \"Markdown>=3.8.1\",\n    \"markdown-captions\",\n    \"beautifulsoup4\",\n    \"brotli>=1.2.0\",\n    \"lxml\",\n    \"pygments\",\n    \"sourcetypes\",\n    \"favicons\",\n    \"tornado>=6.5.5\"\n]\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[tool.hatch.build.targets.wheel]\npackages = [\"src/coldtype\"]\n\n[tool.uv.sources]\ncoldtype-core = { workspace = true }"
  },
  {
    "path": "packages/coldtype-core/MANIFEST.in",
    "content": "include src/coldtype/renderer/.coldtype.py"
  },
  {
    "path": "packages/coldtype-core/README.md",
    "content": "`coldtype-core` is all of the `coldtype` code without optional dependencies made non-optional by the standard `coldtype` library (since almost all use-cases for `coldtype` want those dependencies). If you’re using coldtype in an embedded context and have no need for a GUI counterpart, you can use `coldtype-core` directly."
  },
  {
    "path": "packages/coldtype-core/pyproject.toml",
    "content": "[project]\nname = \"coldtype-core\"\nversion = \"0.13.6\"\ndescription = \"Functions for manual vectorized typesetting.\"\nreadme = \"README.md\"\nauthors = [\n    { name = \"Rob Stenson\", email = \"rob.stenson@gmail.com\" }\n]\nrequires-python = \">=3.11\"\ndependencies = [\n    \"fontTools>=4.60.2\",\n    \"fontPens==0.2.4\",\n    \"easing-functions==1.0.4\",\n    \"b3denv>=0.0.22\",\n    \"coldtype-fontgoggles==1.8.4.7\",\n    \"skia-pathops\",\n    \"defcon>=0.12.0\", # for OutlinePen\n    \"uharfbuzz<0.47.0\", # some kind of cached variations/memory bug introduced in 0.47.0\n    \"show-in-file-manager>=1.1.6\",\n]\n\n[project.urls]\nHomepage = \"https://coldtype.xyz\"\nDocumentation = \"https://coldtype.goodhertz.com\"\nRepository = \"https://github.com/coldtype/coldtype\"\nIssues = \"https://github.com/coldtype/coldtype/issues\"\nChangelog = \"https://github.com/coldtype/coldtype/blob/main/CHANGELOG.md\"\n\n[project.optional-dependencies]\nmore-fonts = [\n    \"ufo2ft>=3.2.8\", # pin for fg issue\n    \"coldtype-fontgoggles[more-fonts]==1.8.4.7\"\n]\ndrawbot = [\"numpy\"]\nunicode = [\"unicodedata2\"]\nnotebook = [\"skia-pathops\", \"skia-python\", \"potracer\", \"tdqm\"]\n\n[project.scripts]\ncoldtype = \"coldtype.renderer:main\"\nct = \"coldtype.renderer:main\"\nctb = \"coldtype.renderer:main_b3d\"\n\n[tool.setuptools]\nlicense-files = [] # https://github.com/astral-sh/uv/issues/9513#issuecomment-2519527822\ninclude-package-data = true\n\n[tool.setuptools.package-data]\n\"coldtype.renderer\" = [\".coldtype.py\"]\n\n#[tool.uv.sources]\n#coldtype-fontgoggles = { path = \"../fontgoggles\", editable = true }\n\n[build-system]\nrequires = [\"setuptools >= 61.0\", \"wheel\", \"setuptools-scm >= 8.0\"]\nbuild-backend = \"setuptools.build_meta\"\n\n[dependency-groups]\ndev = [\n    \"pytest>=8.3.5\",\n    \"pynput\",\n    \"pymunk\",\n    \"pygments\",\n    \"pyaudio\",\n    \"soundfile\",\n    \"opentype-feature-freezer\",\n    \"fontmake\",\n    \"measurement\",\n    \"pillow\",\n    \"imagehash\",\n    \"scikit-image\",\n    \"noise\",\n    \"mdx-linkify\",\n    \"ipykernel\",\n    \"drawbot @ git+https://github.com/typemytype/drawbot\",\n    \"numpy<2.2\"\n]\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/__init__.py",
    "content": "import math, sys, os, re\nfrom pathlib import Path\n\n# source: https://github.com/PixarAnimationStudios/USD/issues/1372\n\ndef monkeypatch_ctypes():\n    import ctypes.util, platform\n    uname = os.uname()\n    if uname.sysname == \"Darwin\" and uname.release >= \"20.\":\n        real_find_library = ctypes.util.find_library\n        def find_library(name):\n            if name in {\"OpenGL\", \"GLUT\"}:  # add more names here if necessary\n                return f\"/System/Library/Frameworks/{name}.framework/{name}\"\n            #elif name in {\"freetype\"}:\n            #    res = real_find_library(name)\n            #    if res.startswith(\"/usr/local\") and platform.processor() == \"arm\":\n            #        return \"/opt/homebrew/lib/libfreetype.dylib\"\n            return real_find_library(name)\n        ctypes.util.find_library = find_library\n    return\n\n# try:\n#     monkeypatch_ctypes()\n# except AttributeError:\n#     pass\n\nfrom coldtype.runon.path import P\nfrom coldtype.runon.scaffold import Scaffold\nfrom coldtype.text import *\nfrom coldtype.geometry import *\nfrom coldtype.color import *\nfrom coldtype.renderable import *\ntry:\n    from coldtype.renderer.reader import Programs\nexcept ModuleNotFoundError:\n    pass\nfrom coldtype.helpers import loopidx, sibling, quick_ufo, cycle_idx, random_series, glyph_to_uni, uni_to_glyph, glyph_to_class, download, DefconFont, raw_ufo\nfrom coldtype.timing import *\nfrom coldtype.timing.easing import ez\nfrom coldtype.timing.nle.ascii import AsciiTimeline\nfrom coldtype.timing.midi import MidiTimeline\nfrom coldtype.img.blendmode import BlendMode\nfrom coldtype.grid import Grid\n\nname = \"coldtype\"\n__version__ = \"0.13.6\"\n\n# these will be redefined contextually\n\n__FILE__ = None\n__BLENDER__ = None\n__VERSION__ = {}\n__VERSIONS__ = {}\n__BLENDERING__ = False\n\n__sibling__ = lambda x: x\n__inputs__ = []\nººinputsºº = []\n__config__ = []\nººconfigºº = []\n__memory__ = []\n__ui__ = {}\nººuiºº = {}\n__as_config__ = False\n\nλ = None\nººFILEºº = None\nººBLENDERºº = None\nººBLENDERINGºº = False\n\ndef ººsiblingºº(x) -> Path:\n    return x\n\ndef noop():\n    return None"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/__main__.py",
    "content": "from coldtype.renderer import main\n\nif __name__ == '__main__':\n    main()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/assets/glyphNamesToUnicode.txt",
    "content": "# Glyph Name Formatted Unicode List - GNFUL\n# GlyphNameFormatter version 0.4 - git commit: 468\n# Unicode version: Unicode 12.1.0\n# Source code: https://github.com/LettError/glyphNameFormatter/tree/c6b4b20\n# Generated on 2019 12 10 10:04:58\n# <glyphName> <hex unicode> <unicodeCategory>\n#\n# Basic Latin\nspace 0020 Zs\nexclam 0021 Po\nquotedbl 0022 Po\nnumbersign 0023 Po\ndollar 0024 Sc\npercent 0025 Po\nampersand 0026 Po\nquotesingle 0027 Po\nparenleft 0028 Ps\nparenright 0029 Pe\nasterisk 002A Po\nplus 002B Sm\ncomma 002C Po\nhyphen 002D Pd\nperiod 002E Po\nslash 002F Po\nzero 0030 Nd\none 0031 Nd\ntwo 0032 Nd\nthree 0033 Nd\nfour 0034 Nd\nfive 0035 Nd\nsix 0036 Nd\nseven 0037 Nd\neight 0038 Nd\nnine 0039 Nd\ncolon 003A Po\nsemicolon 003B Po\nless 003C Sm\nequal 003D Sm\ngreater 003E Sm\nquestion 003F Po\nat 0040 Po\nA 0041 Lu\nB 0042 Lu\nC 0043 Lu\nD 0044 Lu\nE 0045 Lu\nF 0046 Lu\nG 0047 Lu\nH 0048 Lu\nI 0049 Lu\nJ 004A Lu\nK 004B Lu\nL 004C Lu\nM 004D Lu\nN 004E Lu\nO 004F Lu\nP 0050 Lu\nQ 0051 Lu\nR 0052 Lu\nS 0053 Lu\nT 0054 Lu\nU 0055 Lu\nV 0056 Lu\nW 0057 Lu\nX 0058 Lu\nY 0059 Lu\nZ 005A Lu\nbracketleft 005B Ps\nbackslash 005C Po\nbracketright 005D Pe\nasciicircum 005E Sk\nunderscore 005F Pc\ngrave 0060 Sk\na 0061 Ll\nb 0062 Ll\nc 0063 Ll\nd 0064 Ll\ne 0065 Ll\nf 0066 Ll\ng 0067 Ll\nh 0068 Ll\ni 0069 Ll\nj 006A Ll\nk 006B Ll\nl 006C Ll\nm 006D Ll\nn 006E Ll\no 006F Ll\np 0070 Ll\nq 0071 Ll\nr 0072 Ll\ns 0073 Ll\nt 0074 Ll\nu 0075 Ll\nv 0076 Ll\nw 0077 Ll\nx 0078 Ll\ny 0079 Ll\nz 007A Ll\nbraceleft 007B Ps\nbar 007C Sm\nbraceright 007D Pe\nasciitilde 007E Sm\n# Latin-1 Supplement\nnbspace 00A0 Zs\nexclamdown 00A1 Po\ncent 00A2 Sc\nsterling 00A3 Sc\ncurrency 00A4 Sc\nyen 00A5 Sc\nbrokenbar 00A6 So\nsection 00A7 Po\ndieresis 00A8 Sk\ncopyright 00A9 So\nordfeminine 00AA Lo\nguillemetleft 00AB Pi\nlogicalnot 00AC Sm\nhyphensoft 00AD Cf\nregistered 00AE So\nmacron 00AF Sk\ndegree 00B0 So\nplusminus 00B1 Sm\ntwosuperior 00B2 No\nthreesuperior 00B3 No\nacute 00B4 Sk\nmu.math 00B5 Ll\nparagraph 00B6 Po\nperiodcentered 00B7 Po\ncedilla 00B8 Sk\nonesuperior 00B9 No\nordmasculine 00BA Lo\nguillemetright 00BB Pf\nonequarter 00BC No\nonehalf 00BD No\nthreequarters 00BE No\nquestiondown 00BF Po\nAgrave 00C0 Lu\nAacute 00C1 Lu\nAcircumflex 00C2 Lu\nAtilde 00C3 Lu\nAdieresis 00C4 Lu\nAring 00C5 Lu\nAE 00C6 Lu\nCcedilla 00C7 Lu\nEgrave 00C8 Lu\nEacute 00C9 Lu\nEcircumflex 00CA Lu\nEdieresis 00CB Lu\nIgrave 00CC Lu\nIacute 00CD Lu\nIcircumflex 00CE Lu\nIdieresis 00CF Lu\nEth 00D0 Lu\nNtilde 00D1 Lu\nOgrave 00D2 Lu\nOacute 00D3 Lu\nOcircumflex 00D4 Lu\nOtilde 00D5 Lu\nOdieresis 00D6 Lu\nmultiply 00D7 Sm\nOslash 00D8 Lu\nUgrave 00D9 Lu\nUacute 00DA Lu\nUcircumflex 00DB Lu\nUdieresis 00DC Lu\nYacute 00DD Lu\nThorn 00DE Lu\ngermandbls 00DF Ll\nagrave 00E0 Ll\naacute 00E1 Ll\nacircumflex 00E2 Ll\natilde 00E3 Ll\nadieresis 00E4 Ll\naring 00E5 Ll\nae 00E6 Ll\nccedilla 00E7 Ll\negrave 00E8 Ll\neacute 00E9 Ll\necircumflex 00EA Ll\nedieresis 00EB Ll\nigrave 00EC Ll\niacute 00ED Ll\nicircumflex 00EE Ll\nidieresis 00EF Ll\neth 00F0 Ll\nntilde 00F1 Ll\nograve 00F2 Ll\noacute 00F3 Ll\nocircumflex 00F4 Ll\notilde 00F5 Ll\nodieresis 00F6 Ll\ndivide 00F7 Sm\noslash 00F8 Ll\nugrave 00F9 Ll\nuacute 00FA Ll\nucircumflex 00FB Ll\nudieresis 00FC Ll\nyacute 00FD Ll\nthorn 00FE Ll\nydieresis 00FF Ll\n# Latin Extended-A\nAmacron 0100 Lu\namacron 0101 Ll\nAbreve 0102 Lu\nabreve 0103 Ll\nAogonek 0104 Lu\naogonek 0105 Ll\nCacute 0106 Lu\ncacute 0107 Ll\nCcircumflex 0108 Lu\nccircumflex 0109 Ll\nCdotaccent 010A Lu\ncdotaccent 010B Ll\nCcaron 010C Lu\nccaron 010D Ll\nDcaron 010E Lu\ndcaron 010F Ll\nDcroat 0110 Lu\ndcroat 0111 Ll\nEmacron 0112 Lu\nemacron 0113 Ll\nEbreve 0114 Lu\nebreve 0115 Ll\nEdotaccent 0116 Lu\nedotaccent 0117 Ll\nEogonek 0118 Lu\neogonek 0119 Ll\nEcaron 011A Lu\necaron 011B Ll\nGcircumflex 011C Lu\ngcircumflex 011D Ll\nGbreve 011E Lu\ngbreve 011F Ll\nGdotaccent 0120 Lu\ngdotaccent 0121 Ll\nGcedilla 0122 Lu\ngcedilla 0123 Ll\nHcircumflex 0124 Lu\nhcircumflex 0125 Ll\nHbar 0126 Lu\nhbar 0127 Ll\nItilde 0128 Lu\nitilde 0129 Ll\nImacron 012A Lu\nimacron 012B Ll\nIbreve 012C Lu\nibreve 012D Ll\nIogonek 012E Lu\niogonek 012F Ll\nIdotaccent 0130 Lu\ndotlessi 0131 Ll\nIJ 0132 Lu\nij 0133 Ll\nJcircumflex 0134 Lu\njcircumflex 0135 Ll\nKcedilla 0136 Lu\nkcedilla 0137 Ll\nkra 0138 Ll\nLacute 0139 Lu\nlacute 013A Ll\nLcedilla 013B Lu\nlcedilla 013C Ll\nLcaron 013D Lu\nlcaron 013E Ll\nLdot 013F Lu\nldot 0140 Ll\nLslash 0141 Lu\nlslash 0142 Ll\nNacute 0143 Lu\nnacute 0144 Ll\nNcedilla 0145 Lu\nncedilla 0146 Ll\nNcaron 0147 Lu\nncaron 0148 Ll\nnapostrophe 0149 Ll\nEng 014A Lu\neng 014B Ll\nOmacron 014C Lu\nomacron 014D Ll\nObreve 014E Lu\nobreve 014F Ll\nOhungarumlaut 0150 Lu\nohungarumlaut 0151 Ll\nOE 0152 Lu\noe 0153 Ll\nRacute 0154 Lu\nracute 0155 Ll\nRcedilla 0156 Lu\nrcedilla 0157 Ll\nRcaron 0158 Lu\nrcaron 0159 Ll\nSacute 015A Lu\nsacute 015B Ll\nScircumflex 015C Lu\nscircumflex 015D Ll\nScedilla 015E Lu\nscedilla 015F Ll\nScaron 0160 Lu\nscaron 0161 Ll\nTcedilla 0162 Lu\ntcedilla 0163 Ll\nTcaron 0164 Lu\ntcaron 0165 Ll\nTbar 0166 Lu\ntbar 0167 Ll\nUtilde 0168 Lu\nutilde 0169 Ll\nUmacron 016A Lu\numacron 016B Ll\nUbreve 016C Lu\nubreve 016D Ll\nUring 016E Lu\nuring 016F Ll\nUhungarumlaut 0170 Lu\nuhungarumlaut 0171 Ll\nUogonek 0172 Lu\nuogonek 0173 Ll\nWcircumflex 0174 Lu\nwcircumflex 0175 Ll\nYcircumflex 0176 Lu\nycircumflex 0177 Ll\nYdieresis 0178 Lu\nZacute 0179 Lu\nzacute 017A Ll\nZdotaccent 017B Lu\nzdotaccent 017C Ll\nZcaron 017D Lu\nzcaron 017E Ll\nlongs 017F Ll\n# Latin Extended-B\nbstroke 0180 Ll\nBhook 0181 Lu\nBtopbar 0182 Lu\nbtopbar 0183 Ll\nTonesix 0184 Lu\ntonesix 0185 Ll\nOopen 0186 Lu\nChook 0187 Lu\nchook 0188 Ll\nDafrican 0189 Lu\nDhook 018A Lu\nDtopbar 018B Lu\ndtopbar 018C Ll\ndeltaturned 018D Ll\nEreversed 018E Lu\nSchwa 018F Lu\nEopen 0190 Lu\nFhook 0191 Lu\nfhook 0192 Ll\nGhook 0193 Lu\nlt:Gamma 0194 Lu\nhv 0195 Ll\nlt:Iota 0196 Lu\nIstroke 0197 Lu\nKhook 0198 Lu\nkhook 0199 Ll\nlbar 019A Ll\nlambdastroke 019B Ll\nMturned 019C Lu\nNhookleft 019D Lu\nnlongrightleg 019E Ll\nObar 019F Lu\nOhorn 01A0 Lu\nohorn 01A1 Ll\nOi 01A2 Lu\noi 01A3 Ll\nPhook 01A4 Lu\nphook 01A5 Ll\nyr 01A6 Lu\nTonetwo 01A7 Lu\ntonetwo 01A8 Ll\nEsh 01A9 Lu\neshreversedloop 01AA Ll\ntpalatalhook 01AB Ll\nThook 01AC Lu\nthook 01AD Ll\nTretroflexhook 01AE Lu\nUhorn 01AF Lu\nuhorn 01B0 Ll\nlt:Upsilon 01B1 Lu\nVhook 01B2 Lu\nYhook 01B3 Lu\nyhook 01B4 Ll\nZstroke 01B5 Lu\nzstroke 01B6 Ll\nEzh 01B7 Lu\nEzhreversed 01B8 Lu\nezhreversed 01B9 Ll\nezhtail 01BA Ll\ntwostroke 01BB Lo\nTonefive 01BC Lu\ntonefive 01BD Ll\nglottalinvertedstroke 01BE Ll\nwynn 01BF Ll\nclickdental 01C0 Lo\nclicklateral 01C1 Lo\nclickalveolar 01C2 Lo\nclickretroflex 01C3 Lo\nDZcaron 01C4 Lu\nDzcaron 01C5 Lt\ndzcaron 01C6 Ll\nLJ 01C7 Lu\nLj 01C8 Lt\nlj 01C9 Ll\nNJ 01CA Lu\nNj 01CB Lt\nnj 01CC Ll\nAcaron 01CD Lu\nacaron 01CE Ll\nIcaron 01CF Lu\nicaron 01D0 Ll\nOcaron 01D1 Lu\nocaron 01D2 Ll\nUcaron 01D3 Lu\nucaron 01D4 Ll\nUdieresismacron 01D5 Lu\nudieresismacron 01D6 Ll\nUdieresisacute 01D7 Lu\nudieresisacute 01D8 Ll\nUdieresiscaron 01D9 Lu\nudieresiscaron 01DA Ll\nUdieresisgrave 01DB Lu\nudieresisgrave 01DC Ll\neturned 01DD Ll\nAdieresismacron 01DE Lu\nadieresismacron 01DF Ll\nAdotmacron 01E0 Lu\nadotmacron 01E1 Ll\nAEmacron 01E2 Lu\naemacron 01E3 Ll\nGstroke 01E4 Lu\ngstroke 01E5 Ll\nGcaron 01E6 Lu\ngcaron 01E7 Ll\nKcaron 01E8 Lu\nkcaron 01E9 Ll\nOogonek 01EA Lu\noogonek 01EB Ll\nOogonekmacron 01EC Lu\noogonekmacron 01ED Ll\nEzhcaron 01EE Lu\nezhcaron 01EF Ll\njcaron 01F0 Ll\nDZ 01F1 Lu\nDz 01F2 Lt\ndz 01F3 Ll\nGacute 01F4 Lu\ngacute 01F5 Ll\nHwair 01F6 Lu\nWynn 01F7 Lu\nNgrave 01F8 Lu\nngrave 01F9 Ll\nAringacute 01FA Lu\naringacute 01FB Ll\nAEacute 01FC Lu\naeacute 01FD Ll\nOslashacute 01FE Lu\noslashacute 01FF Ll\nAgravedbl 0200 Lu\nagravedbl 0201 Ll\nAinvertedbreve 0202 Lu\nainvertedbreve 0203 Ll\nEgravedbl 0204 Lu\negravedbl 0205 Ll\nEinvertedbreve 0206 Lu\neinvertedbreve 0207 Ll\nIgravedbl 0208 Lu\nigravedbl 0209 Ll\nIinvertedbreve 020A Lu\niinvertedbreve 020B Ll\nOgravedbl 020C Lu\nogravedbl 020D Ll\nOinvertedbreve 020E Lu\noinvertedbreve 020F Ll\nRgravedbl 0210 Lu\nrgravedbl 0211 Ll\nRinvertedbreve 0212 Lu\nrinvertedbreve 0213 Ll\nUgravedbl 0214 Lu\nugravedbl 0215 Ll\nUinvertedbreve 0216 Lu\nuinvertedbreve 0217 Ll\nScommaaccent 0218 Lu\nscommaaccent 0219 Ll\nTcommaaccent 021A Lu\ntcommaaccent 021B Ll\nYogh 021C Lu\nyogh 021D Ll\nHcaron 021E Lu\nhcaron 021F Ll\nNlongrightleg 0220 Lu\ndcurl 0221 Ll\nOu 0222 Lu\nou 0223 Ll\nZhook 0224 Lu\nzhook 0225 Ll\nAdot 0226 Lu\nadot 0227 Ll\nEcedilla 0228 Lu\necedilla 0229 Ll\nOdieresismacron 022A Lu\nodieresismacron 022B Ll\nOtildemacron 022C Lu\notildemacron 022D Ll\nOdot 022E Lu\nodot 022F Ll\nOdotmacron 0230 Lu\nodotmacron 0231 Ll\nYmacron 0232 Lu\nymacron 0233 Ll\nlcurl 0234 Ll\nncurl 0235 Ll\ntcurl 0236 Ll\ndotlessj 0237 Ll\ndbdigraph 0238 Ll\nqpdigraph 0239 Ll\nAstroke 023A Lu\nCstroke 023B Lu\ncstroke 023C Ll\nLbar 023D Lu\nTwithdiagonalstroke 023E Lu\nsswashtail 023F Ll\nzswashtail 0240 Ll\nGlottalstop 0241 Lu\nglottalstop 0242 Ll\nBstroke 0243 Lu\nUbar 0244 Lu\nVturned 0245 Lu\nEstroke 0246 Lu\nestroke 0247 Ll\nJstroke 0248 Lu\njstroke 0249 Ll\nQsmallhooktail 024A Lu\nqhooktail 024B Ll\nRstroke 024C Lu\nrstroke 024D Ll\nYstroke 024E Lu\nystroke 024F Ll\n# IPA Extensions\naturned 0250 Ll\nipa:alpha 0251 Ll\nalphaturned 0252 Ll\nbhook 0253 Ll\noopen 0254 Ll\nccurl 0255 Ll\ndtail 0256 Ll\ndhook 0257 Ll\nipa:ereversed 0258 Ll\nschwa 0259 Ll\nschwahook 025A Ll\neopen 025B Ll\neopenreversed 025C Ll\neopenreversedhook 025D Ll\neopenreversedclosed 025E Ll\ndotlessjstroke 025F Ll\nghook 0260 Ll\nipa:gscript 0261 Ll\nGsmall 0262 Ll\nipa:gamma 0263 Ll\nramshorn 0264 Ll\nhturned 0265 Ll\nhhook 0266 Ll\nhenghook 0267 Ll\nistroke 0268 Ll\nipa:iota 0269 Ll\nipa:Ismall 026A Ll\nlmiddletilde 026B Ll\nlbelt 026C Ll\nlretroflex 026D Ll\nlezh 026E Ll\nmturned 026F Ll\nmlonglegturned 0270 Ll\nmhook 0271 Ll\nnhookleft 0272 Ll\nnretroflex 0273 Ll\nNsmall 0274 Ll\nobarred 0275 Ll\nOEsmall 0276 Ll\nomegaclosed 0277 Ll\nipa:phi 0278 Ll\nrturned 0279 Ll\nrlonglegturned 027A Ll\nrhookturned 027B Ll\nrlongleg 027C Ll\nipa:rtail 027D Ll\nrfishhook 027E Ll\nrfishhookreversed 027F Ll\nRsmall 0280 Ll\nRinvertedsmall 0281 Ll\nshook 0282 Ll\nesh 0283 Ll\ndotlessjstrokehook 0284 Ll\neshsquatreversed 0285 Ll\neshcurl 0286 Ll\ntturned 0287 Ll\ntretroflex 0288 Ll\nubar 0289 Ll\nipa:upsilon 028A Ll\nvhook 028B Ll\nvturned 028C Ll\nwturned 028D Ll\nyturned 028E Ll\nYsmall 028F Ll\nzretroflex 0290 Ll\nzcurl 0291 Ll\nezh 0292 Ll\nezhcurl 0293 Ll\nipa:glottalstop 0294 Lo\npharyngealvoicedfricative 0295 Ll\nglottalstopinverted 0296 Ll\nCstretched 0297 Ll\nclickbilabial 0298 Ll\nBsmall 0299 Ll\neopenclosed 029A Ll\nGhooksmall 029B Ll\nHsmall 029C Ll\njcrossedtail 029D Ll\nkturned 029E Ll\nLsmall 029F Ll\nqhook 02A0 Ll\nglottalstopstroke 02A1 Ll\nglottalstopstrokereversed 02A2 Ll\ndzed 02A3 Ll\ndezh 02A4 Ll\ndzedcurl 02A5 Ll\nts 02A6 Ll\ntesh 02A7 Ll\ntccurl 02A8 Ll\nfeng 02A9 Ll\nls 02AA Ll\nlzed 02AB Ll\npercussivebilabial 02AC Ll\npercussivebidental 02AD Ll\nhfishhookturned 02AE Ll\nhandtailfishhookturned 02AF Ll\n# Spacing Modifier Letters\nhsupmod 02B0 Lm\nhhooksupmod 02B1 Lm\njsupmod 02B2 Lm\nrsupmod 02B3 Lm\nrturnedsupmod 02B4 Lm\nrhookturnedsupmod 02B5 Lm\nRsupinvertedmod 02B6 Lm\nwsupmod 02B7 Lm\nysupmod 02B8 Lm\nprimemod 02B9 Lm\nprimedblmod 02BA Lm\ncommaturnedmod 02BB Lm\napostrophemod 02BC Lm\ncommareversedmod 02BD Lm\nringhalfrightmod 02BE Lm\nringhalfleftmod 02BF Lm\nglottalstopmod 02C0 Lm\nglottalstopreversedmod 02C1 Lm\narrowheadleftmod 02C2 Sk\narrowheadrightmod 02C3 Sk\narrowheadupmod 02C4 Sk\narrowheaddownmod 02C5 Sk\ncircumflex 02C6 Lm\ncaron 02C7 Lm\nverticallinemod 02C8 Lm\nmacronmod 02C9 Lm\nacutemod 02CA Lm\ngravemod 02CB Lm\nverticallinelowmod 02CC Lm\nmacronlowmod 02CD Lm\ngravelowmod 02CE Lm\nacutelowmod 02CF Lm\ncolontriangularmod 02D0 Lm\ncolontriangularhalfmod 02D1 Lm\nringhalfrightcentredmod 02D2 Sk\nringhalfleftcentredmod 02D3 Sk\ntackupmod 02D4 Sk\ntackdownmod 02D5 Sk\nplussignmod 02D6 Sk\nminussignmod 02D7 Sk\nbreve 02D8 Sk\ndotaccent 02D9 Sk\nring 02DA Sk\nogonek 02DB Sk\ntilde 02DC Sk\nhungarumlaut 02DD Sk\nrhotichookmod 02DE Sk\ncrossmod 02DF Sk\ngammasupmod 02E0 Lm\nlsupmod 02E1 Lm\nssupmod 02E2 Lm\nxsupmod 02E3 Lm\nglottalstopsupreversedmod 02E4 Lm\ntonebarextrahighmod 02E5 Sk\ntonebarhighmod 02E6 Sk\ntonebarmidmod 02E7 Sk\ntonebarlowmod 02E8 Sk\ntonebarextralowmod 02E9 Sk\nyintonemod 02EA Sk\nyangtonemod 02EB Sk\nvoicingmod 02EC Lm\nunaspiratedmod 02ED Sk\napostrophedblmod 02EE Lm\narrowheaddownlowmod 02EF Sk\narrowheaduplowmod 02F0 Sk\narrowheadleftlowmod 02F1 Sk\narrowheadrightlowmod 02F2 Sk\nringlowmod 02F3 Sk\ngravemiddlemod 02F4 Sk\ngravedblmiddlemod 02F5 Sk\nacutedblmiddlemod 02F6 Sk\ntildelowmod 02F7 Sk\ncolonraisedmod 02F8 Sk\ntonehighbeginmod 02F9 Sk\ntonehighendmod 02FA Sk\ntonelowbeginmod 02FB Sk\ntonelowendmod 02FC Sk\nshelfmod 02FD Sk\nshelfopenmod 02FE Sk\narrowleftlowmod 02FF Sk\n# Combining Diacritical Marks\ngravecmb 0300 Mn\nacutecmb 0301 Mn\ncircumflexcmb 0302 Mn\ntildecmb 0303 Mn\nmacroncmb 0304 Mn\noverlinecmb 0305 Mn\nbrevecmb 0306 Mn\ndotaccentcmb 0307 Mn\ndieresiscmb 0308 Mn\nhookabovecmb 0309 Mn\nringabovecmb 030A Mn\nhungarumlautcmb 030B Mn\ncaroncmb 030C Mn\nverticallineabovecmb 030D Mn\ndblverticallineabovecmb 030E Mn\ngravedoublecmb 030F Mn\ncandrabinducmb 0310 Mn\ninvertedbrevecmb 0311 Mn\ncommaturnedabovecmb 0312 Mn\nturnedabovecmb 0313 Mn\nreversedcommaabovecmb 0314 Mn\nturnedcommaabovecmb 0315 Mn\ngravebelowcmb 0316 Mn\nacutebelowcmb 0317 Mn\nlefttackbelowcmb 0318 Mn\nrighttackbelowcmb 0319 Mn\nleftangleabovecmb 031A Mn\nhorncmb 031B Mn\nhalfleftringbelowcmb 031C Mn\nuptackbelowcmb 031D Mn\ndowntackbelowcmb 031E Mn\nplusbelowcmb 031F Mn\nminusbelowcmb 0320 Mn\npalatalizedhookbelowcmb 0321 Mn\nretroflexhookbelowcmb 0322 Mn\ndotbelowcmb 0323 Mn\ndieresisbelowcmb 0324 Mn\nringbelowcmb 0325 Mn\ncommaaccentbelowcmb 0326 Mn\ncedillacmb 0327 Mn\nogonekcmb 0328 Mn\nverticallinebelowcmb 0329 Mn\nbridgebelowcmb 032A Mn\ndblarchinvertedbelowcmb 032B Mn\ncaronbelowcmb 032C Mn\ncircumflexbelowcmb 032D Mn\nbelowbrevecmb 032E Mn\ninvertedbelowbrevecmb 032F Mn\ntildebelowcmb 0330 Mn\nmacronbelowcmb 0331 Mn\nlowlinecmb 0332 Mn\nlowlinedoublecmb 0333 Mn\ntildeoverlaycmb 0334 Mn\noverlaystrokeshortcmb 0335 Mn\noverlaystrokelongcmb 0336 Mn\nsolidusshortoverlaycmb 0337 Mn\nsoliduslongoverlaycmb 0338 Mn\nhalfrightringbelowcmb 0339 Mn\ninvertedbridgebelowcmb 033A Mn\nsquarebelowcmb 033B Mn\nseagullbelowcmb 033C Mn\nxabovecmb 033D Mn\ntildeverticalcmb 033E Mn\ndbloverlinecmb 033F Mn\ngravetonecmb 0340 Mn\nacutetonecmb 0341 Mn\nperispomenicmb 0342 Mn\nkoroniscmb 0343 Mn\ndialytikatonoscmb 0344 Mn\niotasubcmb 0345 Mn\nbridgeabovecmb 0346 Mn\nequalbelowcmb 0347 Mn\ndblverticallinebelowcmb 0348 Mn\nleftanglebelowcmb 0349 Mn\nnottildeabovecmb 034A Mn\nhomotheticabovecmb 034B Mn\nalmostequalabovecmb 034C Mn\narrowleftrightbelowcmb 034D Mn\narrowupbelowcmb 034E Mn\ngraphemejoinercmb 034F Mn\narrowheadrightabovecmb 0350 Mn\nhalfleftringabovecmb 0351 Mn\nfermatacmb 0352 Mn\nxbelowcmb 0353 Mn\narrowheadleftbelowcmb 0354 Mn\narrowheadrightbelowcmb 0355 Mn\narrowheadrightarrowheadupbelowcmb 0356 Mn\nhalfrightringabovecmb 0357 Mn\ndotrightabovecmb 0358 Mn\nasteriskbelowcmb 0359 Mn\ndoubleringbelowcmb 035A Mn\nzigzagabovecmb 035B Mn\ndoublebelowbrevecmb 035C Mn\ndoublebrevecmb 035D Mn\nmacrondoublecmb 035E Mn\nmacrondoublebelowcmb 035F Mn\ntildedoublecmb 0360 Mn\ninverteddoublebrevecmb 0361 Mn\narrowrightdoublebelowcmb 0362 Mn\nacmb 0363 Mn\necmb 0364 Mn\nicmb 0365 Mn\nocmb 0366 Mn\nucmb 0367 Mn\nccmb 0368 Mn\ndcmb 0369 Mn\nhcmb 036A Mn\nmcmb 036B Mn\nrcmb 036C Mn\ntcmb 036D Mn\nvcmb 036E Mn\nxcmb 036F Mn\n# Greek and Coptic\nHeta 0370 Lu\nheta 0371 Ll\nSampiarchaic 0372 Lu\nsampiarchaic 0373 Ll\nnumeralsign 0374 Lm\nlownumeralsign 0375 Sk\nDigammapamphylian 0376 Lu\ndigammapamphylian 0377 Ll\niotasub 037A Lm\nsigmalunatereversedsymbol 037B Ll\nsigmalunatedottedsymbol 037C Ll\nsigmalunatedottedreversedsymbol 037D Ll\ngr:question 037E Po\nYot 037F Lu\ntonos 0384 Sk\ndieresistonos 0385 Sk\nAlphatonos 0386 Lu\nanoteleia 0387 Po\nEpsilontonos 0388 Lu\nEtatonos 0389 Lu\nIotatonos 038A Lu\nOmicrontonos 038C Lu\nUpsilontonos 038E Lu\nOmegatonos 038F Lu\niotadieresistonos 0390 Ll\nAlpha 0391 Lu\nBeta 0392 Lu\nGamma 0393 Lu\nDelta 0394 Lu\nEpsilon 0395 Lu\nZeta 0396 Lu\nEta 0397 Lu\nTheta 0398 Lu\nIota 0399 Lu\nKappa 039A Lu\nLambda 039B Lu\nMu 039C Lu\nNu 039D Lu\nXi 039E Lu\nOmicron 039F Lu\nPi 03A0 Lu\nRho 03A1 Lu\nSigma 03A3 Lu\nTau 03A4 Lu\nUpsilon 03A5 Lu\nPhi 03A6 Lu\nChi 03A7 Lu\nPsi 03A8 Lu\nOmega 03A9 Lu\nIotadieresis 03AA Lu\nUpsilondieresis 03AB Lu\nalphatonos 03AC Ll\nepsilontonos 03AD Ll\netatonos 03AE Ll\niotatonos 03AF Ll\nupsilondieresistonos 03B0 Ll\nalpha 03B1 Ll\nbeta 03B2 Ll\ngamma 03B3 Ll\ndelta 03B4 Ll\nepsilon 03B5 Ll\nzeta 03B6 Ll\neta 03B7 Ll\ntheta 03B8 Ll\niota 03B9 Ll\nkappa 03BA Ll\nlambda 03BB Ll\nmu 03BC Ll\nnu 03BD Ll\nxi 03BE Ll\nomicron 03BF Ll\npi 03C0 Ll\nrho 03C1 Ll\nfinalsigma 03C2 Ll\nsigma 03C3 Ll\ntau 03C4 Ll\nupsilon 03C5 Ll\nphi 03C6 Ll\nchi 03C7 Ll\npsi 03C8 Ll\nomega 03C9 Ll\niotadieresis 03CA Ll\nupsilondieresis 03CB Ll\nomicrontonos 03CC Ll\nupsilontonos 03CD Ll\nomegatonos 03CE Ll\nKaisymbol 03CF Lu\nbetasymbol 03D0 Ll\ntheta.math 03D1 Ll\nUpsilonhooksymbol 03D2 Lu\nUpsilonacutehooksymbol 03D3 Lu\nUpsilonadieresishooksymbol 03D4 Lu\nphi.math 03D5 Ll\npi.math 03D6 Ll\nkaisymbol 03D7 Ll\nKoppaarchaic 03D8 Lu\nkoppaarchaic 03D9 Ll\nStigma 03DA Lu\nstigma 03DB Ll\nDigamma 03DC Lu\ndigamma 03DD Ll\nKoppa 03DE Lu\nkoppa 03DF Ll\nSampi 03E0 Lu\nsampi 03E1 Ll\nSheicoptic 03E2 Lu\nsheicoptic 03E3 Ll\nFeicoptic 03E4 Lu\nfeicoptic 03E5 Ll\nKheicoptic 03E6 Lu\nkheicoptic 03E7 Ll\nHoricoptic 03E8 Lu\nhoricoptic 03E9 Ll\nGangiacoptic 03EA Lu\ngangiacoptic 03EB Ll\nShimacoptic 03EC Lu\nshimacoptic 03ED Ll\nDeicoptic 03EE Lu\ndeicoptic 03EF Ll\nkappa.math 03F0 Ll\nrhosymbol 03F1 Ll\nsigmalunatesymbol 03F2 Ll\nyot 03F3 Ll\nThetasymbol 03F4 Lu\nepsilonlunatesymbol 03F5 Ll\nepsilonreversedlunatesymbol 03F6 Sm\nSho 03F7 Lu\nsho 03F8 Ll\nSigmalunatesymbol 03F9 Lu\nSan 03FA Lu\nsan 03FB Ll\nrhostrokesymbol 03FC Ll\nSigmareversedlunatesymbol 03FD Lu\nSigmalunatesymboldotted 03FE Lu\nReverseddottedsigmalunatesymbol 03FF Lu\n# Cyrillic\nIegravecyr 0400 Lu\nIocyr 0401 Lu\nDjecyr 0402 Lu\nGjecyr 0403 Lu\nEukrcyr 0404 Lu\nDzecyr 0405 Lu\nIukrcyr 0406 Lu\nYukrcyr 0407 Lu\nJecyr 0408 Lu\nLjecyr 0409 Lu\nNjecyr 040A Lu\nTshecyr 040B Lu\nKjecyr 040C Lu\nIgravecyr 040D Lu\nUshortcyr 040E Lu\nDzhecyr 040F Lu\nAcyr 0410 Lu\nBecyr 0411 Lu\nVecyr 0412 Lu\nGecyr 0413 Lu\nDecyr 0414 Lu\nIecyr 0415 Lu\nZhecyr 0416 Lu\nZecyr 0417 Lu\nIcyr 0418 Lu\nIshortcyr 0419 Lu\nKacyr 041A Lu\nElcyr 041B Lu\nEmcyr 041C Lu\nEncyr 041D Lu\nOcyr 041E Lu\nPecyr 041F Lu\nErcyr 0420 Lu\nEscyr 0421 Lu\nTecyr 0422 Lu\nUcyr 0423 Lu\nEfcyr 0424 Lu\nHacyr 0425 Lu\nTsecyr 0426 Lu\nChecyr 0427 Lu\nShacyr 0428 Lu\nShchacyr 0429 Lu\nHardcyr 042A Lu\nYlongcyr 042B Lu\nSoftcyr 042C Lu\nEreversedcyr 042D Lu\nYucyr 042E Lu\nYacyr 042F Lu\nacyr 0430 Ll\nbecyr 0431 Ll\nvecyr 0432 Ll\ngecyr 0433 Ll\ndecyr 0434 Ll\niecyr 0435 Ll\nzhecyr 0436 Ll\nzecyr 0437 Ll\nicyr 0438 Ll\nishortcyr 0439 Ll\nkacyr 043A Ll\nelcyr 043B Ll\nemcyr 043C Ll\nencyr 043D Ll\nocyr 043E Ll\npecyr 043F Ll\nercyr 0440 Ll\nescyr 0441 Ll\ntecyr 0442 Ll\nucyr 0443 Ll\nefcyr 0444 Ll\nhacyr 0445 Ll\ntsecyr 0446 Ll\nchecyr 0447 Ll\nshacyr 0448 Ll\nshchacyr 0449 Ll\nhardcyr 044A Ll\nylongcyr 044B Ll\nsoftcyr 044C Ll\nereversedcyr 044D Ll\nyucyr 044E Ll\nyacyr 044F Ll\niegravecyr 0450 Ll\niocyr 0451 Ll\ndjecyr 0452 Ll\ngjecyr 0453 Ll\neukrcyr 0454 Ll\ndzecyr 0455 Ll\niukrcyr 0456 Ll\nyukrcyr 0457 Ll\njecyr 0458 Ll\nljecyr 0459 Ll\nnjecyr 045A Ll\ntshecyr 045B Ll\nkjecyr 045C Ll\nigravecyr 045D Ll\nushortcyr 045E Ll\ndzhecyr 045F Ll\nOmegacyr 0460 Lu\nomegacyr 0461 Ll\nYatcyr 0462 Lu\nyatcyr 0463 Ll\nEiotifiedcyr 0464 Lu\neiotifiedcyr 0465 Ll\nYuslittlecyr 0466 Lu\nyuslittlecyr 0467 Ll\nYuslittleiotifiedcyr 0468 Lu\nyuslittleiotifiedcyr 0469 Ll\nYusbigcyr 046A Lu\nyusbigcyr 046B Ll\nYusbigiotifiedcyr 046C Lu\nyusbigiotifiedcyr 046D Ll\nKsicyr 046E Lu\nksicyr 046F Ll\nPsicyr 0470 Lu\npsicyr 0471 Ll\nFitacyr 0472 Lu\nfitacyr 0473 Ll\nIzhitsacyr 0474 Lu\nizhitsacyr 0475 Ll\nIzhitsagravedblcyr 0476 Lu\nizhitsagravedblcyr 0477 Ll\nUkcyr 0478 Lu\nukcyr 0479 Ll\nOmegaroundcyr 047A Lu\nomegaroundcyr 047B Ll\nOmegatitlocyr 047C Lu\nomegatitlocyr 047D Ll\nOtcyr 047E Lu\notcyr 047F Ll\nKoppacyr 0480 Lu\nkoppacyr 0481 Ll\nthousandscyr 0482 So\ntitlocmbcyr 0483 Mn\npalatcmbcyr 0484 Mn\ndasiacmbcyr 0485 Mn\npsilicmbcyr 0486 Mn\npokrytiecmbcyr 0487 Mn\nhundredthousandscmbcyr 0488 Me\nmillionscmbcyr 0489 Me\nIshortsharptailcyr 048A Lu\nishortsharptailcyr 048B Ll\nSemisoftcyr 048C Lu\nsemisoftcyr 048D Ll\nErtickcyr 048E Lu\nertickcyr 048F Ll\nGeupcyr 0490 Lu\ngeupcyr 0491 Ll\nGestrokecyr 0492 Lu\ngestrokecyr 0493 Ll\nGehookcyr 0494 Lu\ngehookcyr 0495 Ll\nZhetailcyr 0496 Lu\nzhetailcyr 0497 Ll\nZetailcyr 0498 Lu\nzetailcyr 0499 Ll\nKatailcyr 049A Lu\nkatailcyr 049B Ll\nKaverticalstrokecyr 049C Lu\nkaverticalstrokecyr 049D Ll\nKastrokecyr 049E Lu\nkastrokecyr 049F Ll\nKabashkcyr 04A0 Lu\nkabashkcyr 04A1 Ll\nEntailcyr 04A2 Lu\nentailcyr 04A3 Ll\nEngecyr 04A4 Lu\nengecyr 04A5 Ll\nPehookcyr 04A6 Lu\npehookcyr 04A7 Ll\nHaabkhcyr 04A8 Lu\nhaabkhcyr 04A9 Ll\nEstailcyr 04AA Lu\nestailcyr 04AB Ll\nTetailcyr 04AC Lu\ntetailcyr 04AD Ll\nUstraightcyr 04AE Lu\nustraightcyr 04AF Ll\nUstraightstrokecyr 04B0 Lu\nustraightstrokecyr 04B1 Ll\nXatailcyr 04B2 Lu\nxatailcyr 04B3 Ll\nTetsecyr 04B4 Lu\ntetsecyr 04B5 Ll\nChetailcyr 04B6 Lu\nchetailcyr 04B7 Ll\nChevertcyr 04B8 Lu\nchevertcyr 04B9 Ll\nShhacyr 04BA Lu\nshhacyr 04BB Ll\nCheabkhcyr 04BC Lu\ncheabkhcyr 04BD Ll\nCheabkhtailcyr 04BE Lu\ncheabkhtailcyr 04BF Ll\nPalochkacyr 04C0 Lu\nZhebrevecyr 04C1 Lu\nzhebrevecyr 04C2 Ll\nKahookcyr 04C3 Lu\nkahookcyr 04C4 Ll\nElsharptailcyr 04C5 Lu\nelsharptailcyr 04C6 Ll\nEnhookcyr 04C7 Lu\nenhookcyr 04C8 Ll\nEnsharptailcyr 04C9 Lu\nensharptailcyr 04CA Ll\nChekhakascyr 04CB Lu\nchekhakascyr 04CC Ll\nEmsharptailcyr 04CD Lu\nemsharptailcyr 04CE Ll\npalochkacyr 04CF Ll\nAbrevecyr 04D0 Lu\nabrevecyr 04D1 Ll\nAdieresiscyr 04D2 Lu\nadieresiscyr 04D3 Ll\nAiecyr 04D4 Lu\naiecyr 04D5 Ll\nIebrevecyr 04D6 Lu\niebrevecyr 04D7 Ll\nSchwacyr 04D8 Lu\nschwacyr 04D9 Ll\nSchwadieresiscyr 04DA Lu\nschwadieresiscyr 04DB Ll\nZhedieresiscyr 04DC Lu\nzhedieresiscyr 04DD Ll\nZedieresiscyr 04DE Lu\nzedieresiscyr 04DF Ll\nDzeabkhcyr 04E0 Lu\ndzeabkhcyr 04E1 Ll\nImacroncyr 04E2 Lu\nimacroncyr 04E3 Ll\nIdieresiscyr 04E4 Lu\nidieresiscyr 04E5 Ll\nOdieresiscyr 04E6 Lu\nodieresiscyr 04E7 Ll\nObarcyr 04E8 Lu\nobarcyr 04E9 Ll\nObardieresiscyr 04EA Lu\nobardieresiscyr 04EB Ll\nEreverseddieresiscyr 04EC Lu\nereverseddieresiscyr 04ED Ll\nUmacroncyr 04EE Lu\numacroncyr 04EF Ll\nUdieresiscyr 04F0 Lu\nudieresiscyr 04F1 Ll\nUacutedblcyr 04F2 Lu\nuacutedblcyr 04F3 Ll\nChedieresiscyr 04F4 Lu\nchedieresiscyr 04F5 Ll\nGetailcyr 04F6 Lu\ngetailcyr 04F7 Ll\nYlongdieresiscyr 04F8 Lu\nylongdieresiscyr 04F9 Ll\nGehookstrokecyr 04FA Lu\ngehookstrokecyr 04FB Ll\nHahookcyr 04FC Lu\nhahookcyr 04FD Ll\nHastrokecyr 04FE Lu\nhastrokecyr 04FF Ll\n# Cyrillic Supplement\nDekomicyr 0500 Lu\ndekomicyr 0501 Ll\nDjekomicyr 0502 Lu\ndjekomicyr 0503 Ll\nZjekomicyr 0504 Lu\nzjekomicyr 0505 Ll\nDzjekomicyr 0506 Lu\ndzjekomicyr 0507 Ll\nLjekomicyr 0508 Lu\nljekomicyr 0509 Ll\nNjekomicyr 050A Lu\nnjekomicyr 050B Ll\nSjekomicyr 050C Lu\nsjekomicyr 050D Ll\nTjekomicyr 050E Lu\ntjekomicyr 050F Ll\nReversedzecyr 0510 Lu\nreversedzecyr 0511 Ll\nElhookcyr 0512 Lu\nelhookcyr 0513 Ll\nLhacyr 0514 Lu\nlhacyr 0515 Ll\nRhacyr 0516 Lu\nrhacyr 0517 Ll\nYaecyr 0518 Lu\nyaecyr 0519 Ll\nQacyr 051A Lu\nqacyr 051B Ll\nWecyr 051C Lu\nwecyr 051D Ll\nKaaleutcyr 051E Lu\nkaaleutcyr 051F Ll\nElmiddlehookcyr 0520 Lu\nelmiddlehookcyr 0521 Ll\nEnmiddlehookcyr 0522 Lu\nenmiddlehookcyr 0523 Ll\nPetailcyr 0524 Lu\npetailcyr 0525 Ll\nShhatailcyr 0526 Lu\nshhatailcyr 0527 Ll\nEnhookleftcyr 0528 Lu\nenhookleftcyr 0529 Ll\nDzzhecyr 052A Lu\ndzzhecyr 052B Ll\nDchecyr 052C Lu\ndchecyr 052D Ll\nEltailcyr 052E Lu\neltailcyr 052F Ll\n# Armenian\nAybarmn 0531 Lu\nBenarmn 0532 Lu\nGimarmn 0533 Lu\nDaarmn 0534 Lu\nEcharmn 0535 Lu\nZaarmn 0536 Lu\nEharmn 0537 Lu\nEtarmn 0538 Lu\nToarmn 0539 Lu\nZhearmn 053A Lu\nIniarmn 053B Lu\nLiwnarmn 053C Lu\nXeharmn 053D Lu\nCaarmn 053E Lu\nKenarmn 053F Lu\nHoarmn 0540 Lu\nJaarmn 0541 Lu\nGhadarmn 0542 Lu\nCheharmn 0543 Lu\nMenarmn 0544 Lu\nYiarmn 0545 Lu\nNowarmn 0546 Lu\nShaarmn 0547 Lu\nVoarmn 0548 Lu\nChaarmn 0549 Lu\nPeharmn 054A Lu\nJheharmn 054B Lu\nRaarmn 054C Lu\nSeharmn 054D Lu\nVewarmn 054E Lu\nTiwnarmn 054F Lu\nReharmn 0550 Lu\nCoarmn 0551 Lu\nYiwnarmn 0552 Lu\nPiwrarmn 0553 Lu\nKeharmn 0554 Lu\nOharmn 0555 Lu\nFeharmn 0556 Lu\nringhalfleftarmn 0559 Lm\napostrophearmn 055A Po\nemphasismarkarmn 055B Po\nexclamarmn 055C Po\ncommaarmn 055D Po\nquestionarmn 055E Po\nabbreviationmarkarmn 055F Po\nturnedaybarmn 0560 Ll\naybarmn 0561 Ll\nbenarmn 0562 Ll\ngimarmn 0563 Ll\ndaarmn 0564 Ll\necharmn 0565 Ll\nzaarmn 0566 Ll\neharmn 0567 Ll\netarmn 0568 Ll\ntoarmn 0569 Ll\nzhearmn 056A Ll\niniarmn 056B Ll\nliwnarmn 056C Ll\nxeharmn 056D Ll\ncaarmn 056E Ll\nkenarmn 056F Ll\nhoarmn 0570 Ll\njaarmn 0571 Ll\nghadarmn 0572 Ll\ncheharmn 0573 Ll\nmenarmn 0574 Ll\nyiarmn 0575 Ll\nnowarmn 0576 Ll\nshaarmn 0577 Ll\nvoarmn 0578 Ll\nchaarmn 0579 Ll\npeharmn 057A Ll\njheharmn 057B Ll\nraarmn 057C Ll\nseharmn 057D Ll\nvewarmn 057E Ll\ntiwnarmn 057F Ll\nreharmn 0580 Ll\ncoarmn 0581 Ll\nyiwnarmn 0582 Ll\npiwrarmn 0583 Ll\nkeharmn 0584 Ll\noharmn 0585 Ll\nfeharmn 0586 Ll\nech_yiwnarmn 0587 Ll\nyiwithstrokearmn 0588 Ll\nperiodarmn 0589 Po\nhyphenarmn 058A Pd\nrightfacingeternitysignarmn 058D So\nleftfacingeternitysignarmn 058E So\ndramsignarmn 058F Sc\n# Hebrew\netnahta:hb 0591 Mn\nsegolta:hb 0592 Mn\nshalshelet:hb 0593 Mn\nzaqefQatan:hb 0594 Mn\nzaqefGadol:hb 0595 Mn\ntifcha:hb 0596 Mn\nrevia:hb 0597 Mn\nzarqa:hb 0598 Mn\npashta:hb 0599 Mn\nyetiv:hb 059A Mn\ntevir:hb 059B Mn\nazla:hb 059C Mn\ngereshMuqdam:hb 059D Mn\nSheneGerishin:hb 059E Mn\nqarneFarah:hb 059F Mn\ntelishaGedolah:hb 05A0 Mn\npazer:hb 05A1 Mn\natnachHafukh:hb 05A2 Mn\nmunach:hb 05A3 Mn\nmahpach:hb 05A4 Mn\nmercha:hb 05A5 Mn\nmerchaKefulah:hb 05A6 Mn\ndarga:hb 05A7 Mn\nqadma:hb 05A8 Mn\ntelishaQetannah:hb 05A9 Mn\nyerachBenYomo:hb 05AA Mn\nole:hb 05AB Mn\niluy:hb 05AC Mn\ndehi:hb 05AD Mn\ntsinnorit:hb 05AE Mn\nmasoraCircle:hb 05AF Mn\nsheva:hb 05B0 Mn\nhatafSegol:hb 05B1 Mn\nhatafPatah:hb 05B2 Mn\nhatafQamats:hb 05B3 Mn\nhiriq:hb 05B4 Mn\ntsere:hb 05B5 Mn\nsegol:hb 05B6 Mn\npatah:hb 05B7 Mn\nqamats:hb 05B8 Mn\nholam:hb 05B9 Mn\nholamHaser:hb 05BA Mn\nqubuts:hb 05BB Mn\ndagesh:hb 05BC Mn\nmeteg:hb 05BD Mn\nmaqaf:hb 05BE Pd\nrafe:hb 05BF Mn\npaseq:hb 05C0 Po\nshinDot:hb 05C1 Mn\nsinDot:hb 05C2 Mn\nsofPasuq:hb 05C3 Po\ndotupper:hb 05C4 Mn\ndotlower:hb 05C5 Mn\nnunHafukha:hb 05C6 Po\nqamatsQatan:hb 05C7 Mn\nalef:hb 05D0 Lo\nbet:hb 05D1 Lo\ngimel:hb 05D2 Lo\ndalet:hb 05D3 Lo\nhe:hb 05D4 Lo\nvav:hb 05D5 Lo\nzayin:hb 05D6 Lo\nhet:hb 05D7 Lo\ntet:hb 05D8 Lo\nyod:hb 05D9 Lo\nfinalkaf:hb 05DA Lo\nkaf:hb 05DB Lo\nlamed:hb 05DC Lo\nfinalmem:hb 05DD Lo\nmem:hb 05DE Lo\nfinalnun:hb 05DF Lo\nnun:hb 05E0 Lo\nsamekh:hb 05E1 Lo\nayin:hb 05E2 Lo\nfinalpe:hb 05E3 Lo\npe:hb 05E4 Lo\nfinaltsadi:hb 05E5 Lo\ntsadi:hb 05E6 Lo\nqof:hb 05E7 Lo\nresh:hb 05E8 Lo\nshin:hb 05E9 Lo\ntav:hb 05EA Lo\nyodtriangle:hb 05EF Lo\nvav_vav:hb 05F0 Lo\nvav_yod:hb 05F1 Lo\nyod_yod:hb 05F2 Lo\ngeresh:hb 05F3 Po\ngershayim:hb 05F4 Po\n# Arabic\narnumbersign 0600 Cf\nSanah 0601 Cf\nfootnote 0602 Cf\nSafha 0603 Cf\nsamvat 0604 Cf\nnumbermarkabove 0605 Cf\narcuberoot 0606 Sm\narfourthroot 0607 Sm\nray 0608 Sm\npermille 0609 Po\narperthousand 060A Po\nafghani 060B Sc\narcomma 060C Po\ndateseparator 060D Po\npoeticverse 060E So\nmisra 060F So\nHonSAW 0610 Mn\nHonAA 0611 Mn\nHonRA 0612 Mn\naHonRAA 0613 Mn\ntakhallus 0614 Mn\ntahabove 0615 Mn\nalefLamYehabove 0616 Mn\nzainabove 0617 Mn\nfathasmall 0618 Mn\ndammasmall 0619 Mn\nkasrasmall 061A Mn\narsemicolon 061B Po\nmark 061C Cf\ntripledot 061E Po\narquestion 061F Po\nkashmiriyeh 0620 Lo\nhamza 0621 Lo\nalefmadda 0622 Lo\nalefhamza 0623 Lo\nwawhamza 0624 Lo\nalefhamzabelow 0625 Lo\nyehhamza 0626 Lo\nalef 0627 Lo\nbeh 0628 Lo\ntehmarbuta 0629 Lo\nteh 062A Lo\ntheh 062B Lo\njeem 062C Lo\nhah 062D Lo\nkhah 062E Lo\ndal 062F Lo\nthal 0630 Lo\nreh 0631 Lo\nzain 0632 Lo\nseen 0633 Lo\nsheen 0634 Lo\nsad 0635 Lo\ndad 0636 Lo\ntah 0637 Lo\nzah 0638 Lo\narain 0639 Lo\nghain 063A Lo\nkehehtwodotsabove 063B Lo\nkehehthreedotsbelow 063C Lo\nyehfarsiinvertedV 063D Lo\nyehfarsitwodotsabove 063E Lo\nyehfarsithreedotsabove 063F Lo\nkashida 0640 Lm\nfeh 0641 Lo\nqaf 0642 Lo\nkaf 0643 Lo\nlam 0644 Lo\nmeem 0645 Lo\nnoon 0646 Lo\nheh 0647 Lo\nwaw 0648 Lo\nalefmaksura 0649 Lo\nyeh 064A Lo\nfathatan 064B Mn\ndammatan 064C Mn\nkasratan 064D Mn\nfatha 064E Mn\ndamma 064F Mn\nkasra 0650 Mn\nshadda 0651 Mn\nsukun 0652 Mn\nmadda 0653 Mn\nhamzaabove 0654 Mn\nhamzabelow 0655 Mn\nsubscriptalef 0656 Mn\ninverteddamma 0657 Mn\nmarknoonghunna 0658 Mn\nzwarakay 0659 Mn\nvowelVabove 065A Mn\nvowelinvertedVabove 065B Mn\nvoweldotbelow 065C Mn\ndammareversed 065D Mn\nfathatwodotsdots 065E Mn\nwavyhamzabelow 065F Mn\narzero 0660 Nd\narone 0661 Nd\nartwo 0662 Nd\narthree 0663 Nd\narfour 0664 Nd\narfive 0665 Nd\narsix 0666 Nd\narseven 0667 Nd\nareight 0668 Nd\narnine 0669 Nd\narpercent 066A Po\nardecimalseparator 066B Po\nthousandsseparator 066C Po\nfivepointedstar 066D Po\ndotlessbeh 066E Lo\ndotlessqaf 066F Lo\nalefabove 0670 Mn\nalefwasla 0671 Lo\nalefwavyhamza 0672 Lo\nalefwavyhamzabelow 0673 Lo\nhighhamza 0674 Lo\nalefhighhamza 0675 Lo\nwawhighhamza 0676 Lo\nuhamza 0677 Lo\nyehhighhamza 0678 Lo\ntteh 0679 Lo\ntteheh 067A Lo\nbeeh 067B Lo\ntehring 067C Lo\ntehdownthreedotsabove 067D Lo\npeh 067E Lo\nteheh 067F Lo\nbeheh 0680 Lo\nhahhamza 0681 Lo\nhahtwodotsvertical 0682 Lo\nnyeh 0683 Lo\ndyeh 0684 Lo\nhahthreedotsabove 0685 Lo\ntcheh 0686 Lo\ntcheheh 0687 Lo\nddal 0688 Lo\ndalring 0689 Lo\ndaldotbelow 068A Lo\ndaldotbelowtahsmall 068B Lo\ndahal 068C Lo\nddahal 068D Lo\ndul 068E Lo\ndaldownthreedotsabove 068F Lo\ndalfourdotsabove 0690 Lo\nrreh 0691 Lo\nrehVabove 0692 Lo\nrehring 0693 Lo\nrehdotbelow 0694 Lo\nrehVbelow 0695 Lo\nrehdotbelowdotabove 0696 Lo\nrehtwodotsabove 0697 Lo\njeh 0698 Lo\nrehfourdotsabove 0699 Lo\nseendotbelowdotabove 069A Lo\nseenthreedotsbelow 069B Lo\nseenthreedotsbelowthreedotsabove 069C Lo\nsadtwodotsbelow 069D Lo\nsadthreedotsabove 069E Lo\ntahthreedotsabove 069F Lo\nainthreedotsabove 06A0 Lo\ndotlessfeh 06A1 Lo\nfehdotbelowright 06A2 Lo\nfehdotbelow 06A3 Lo\nveh 06A4 Lo\nfehthreedotsbelow 06A5 Lo\npeheh 06A6 Lo\nqafdotabove 06A7 Lo\nqafthreedotsabove 06A8 Lo\nkeheh 06A9 Lo\nkafswash 06AA Lo\nkafring 06AB Lo\nkafdotabove 06AC Lo\nng 06AD Lo\nkafthreedotsbelow 06AE Lo\ngaf 06AF Lo\ngafring 06B0 Lo\nngoeh 06B1 Lo\ngaftwodotsbelow 06B2 Lo\ngueh 06B3 Lo\ngafthreedotsabove 06B4 Lo\nlamVabove 06B5 Lo\nlamdotabove 06B6 Lo\nlamthreedotsabove 06B7 Lo\nlamthreedotsbelow 06B8 Lo\nnoondotbelow 06B9 Lo\nnoonghunna 06BA Lo\nrnoon 06BB Lo\nnoonring 06BC Lo\nnoonthreedotsabove 06BD Lo\nhehdoachashmee 06BE Lo\ntchehdotabove 06BF Lo\nhehyeh 06C0 Lo\nhehgoal 06C1 Lo\nhehgoalhamza 06C2 Lo\ntehmarbutagoal 06C3 Lo\nwawring 06C4 Lo\noekirghiz 06C5 Lo\naroe 06C6 Lo\naru 06C7 Lo\naryu 06C8 Lo\nyukirghiz 06C9 Lo\nwawtwodotsabove 06CA Lo\nve 06CB Lo\nyehfarsi 06CC Lo\nyehtail 06CD Lo\nyehVabove 06CE Lo\nwawdotabove 06CF Lo\nare 06D0 Lo\nyehthreedotsbelow 06D1 Lo\nyehbarree 06D2 Lo\nyehbarreehamza 06D3 Lo\nperiodurdu 06D4 Po\narae 06D5 Lo\nsad_lam_alefmaksuraabove 06D6 Mn\nqaf_lam_alefmaksuraabove 06D7 Mn\nmeemabove.init 06D8 Mn\nlamalefabove 06D9 Mn\njeemabove 06DA Mn\nthreedotsaboveabove 06DB Mn\nseenabove 06DC Mn\nAyahend 06DD Cf\nRubElHizbstart 06DE So\nroundedzeroabove 06DF Mn\nzerosquareabove 06E0 Mn\ndotlesskhahabove 06E1 Mn\nmeemabove 06E2 Mn\nseenlow 06E3 Mn\nmaddaabove 06E4 Mn\nwawsmall 06E5 Lm\nyehsmall 06E6 Lm\nyehabove 06E7 Mn\nnoonabove 06E8 Mn\nSajdah 06E9 So\nstopbelow 06EA Mn\nstopabove 06EB Mn\nfilledstopabove 06EC Mn\nmeembelow 06ED Mn\ndalinvertedV 06EE Lo\nrehinvertedV 06EF Lo\narzero 06F0 Nd\narone 06F1 Nd\nartwo 06F2 Nd\narthree 06F3 Nd\narfour 06F4 Nd\narfive 06F5 Nd\narsix 06F6 Nd\narseven 06F7 Nd\nareight 06F8 Nd\narnine 06F9 Nd\nsheendotbelow 06FA Lo\ndaddotbelow 06FB Lo\nghaindotbelow 06FC Lo\nampersandSindhi 06FD So\nmenpostSindhi 06FE So\nhehinvertedV 06FF Lo\n# Arabic Supplement\nbehThreeDotsHorizontallyBelow 0750 Lo\nbehDotBelowThreeDotsAbove 0751 Lo\nbehThreeDotsUpBelow 0752 Lo\nbehThreeDotsUpBelowTwoDotsAbove 0753 Lo\nbehTwoDotsBelowDotAbove 0754 Lo\nbehInvertedSmallVBelow 0755 Lo\nbehSmallV 0756 Lo\nhahTwoDotsAbove 0757 Lo\nhahThreeDotsUpBelow 0758 Lo\ndalTwoDotsVerticallyBelowSmallTah 0759 Lo\ndalInvertedSmallVBelow 075A Lo\nrehStroke 075B Lo\nseenFourDotsAbove 075C Lo\nainTwoDotsAbove 075D Lo\nainThreeDotsDownAbove 075E Lo\nainTwoDotsVerticallyAbove 075F Lo\nfehTwoDotsBelow 0760 Lo\nfehThreeDotsUpBelow 0761 Lo\nkehehDotAbove 0762 Lo\nkehehThreeDotsAbove 0763 Lo\nkehehThreeDotsUpBelow 0764 Lo\nmeemDotAbove 0765 Lo\nmeemDotBelow 0766 Lo\nnoonTwoDotsBelow 0767 Lo\nnoonSmallTah 0768 Lo\nnoonSmallV 0769 Lo\nlamBar 076A Lo\nrehTwoDotsVerticallyAbove 076B Lo\nrehHamzaAbove 076C Lo\nseenTwoDotsVerticallyAbove 076D Lo\nhahSmallTahBelow 076E Lo\nhahSmallTahTwoDots 076F Lo\nseenSmallTahTwoDots 0770 Lo\nrehSmallTahTwoDots 0771 Lo\nhahSmallTahAbove 0772 Lo\nalefDigitTwoAbove 0773 Lo\nalefDigitThreeAbove 0774 Lo\nfarsiYehDigitTwoAbove 0775 Lo\nfarsiYehDigitThreeAbove 0776 Lo\nfarsiYehDigitFourBelow 0777 Lo\nwawDigitTwoAbove 0778 Lo\nwawDigitThreeAbove 0779 Lo\nyehBarreeDigitTwoAbove 077A Lo\nyehBarreeDigitThreeAbove 077B Lo\nhahDigitFourBelow 077C Lo\nseenDigitFourAbove 077D Lo\nseenInvertedV 077E Lo\nkafTwoDotsAbove 077F Lo\n# Devanagari\ndeva:candrabinduinverted 0900 Mn\ndeva:candrabindu 0901 Mn\ndeva:anusvara 0902 Mn\ndeva:visarga 0903 Mc\ndeva:ashort 0904 Lo\ndeva:a 0905 Lo\ndeva:aa 0906 Lo\ndeva:i 0907 Lo\ndeva:ii 0908 Lo\ndeva:u 0909 Lo\ndeva:uu 090A Lo\ndeva:vocalicr 090B Lo\ndeva:vocalicl 090C Lo\ndeva:ecandra 090D Lo\ndeva:eshort 090E Lo\ndeva:e 090F Lo\ndeva:ai 0910 Lo\ndeva:ocandra 0911 Lo\ndeva:oshort 0912 Lo\ndeva:o 0913 Lo\ndeva:au 0914 Lo\ndeva:ka 0915 Lo\ndeva:kha 0916 Lo\ndeva:ga 0917 Lo\ndeva:gha 0918 Lo\ndeva:nga 0919 Lo\ndeva:ca 091A Lo\ndeva:cha 091B Lo\ndeva:ja 091C Lo\ndeva:jha 091D Lo\ndeva:nya 091E Lo\ndeva:tta 091F Lo\ndeva:ttha 0920 Lo\ndeva:dda 0921 Lo\ndeva:ddha 0922 Lo\ndeva:nna 0923 Lo\ndeva:ta 0924 Lo\ndeva:tha 0925 Lo\ndeva:da 0926 Lo\ndeva:dha 0927 Lo\ndeva:na 0928 Lo\ndeva:nnna 0929 Lo\ndeva:pa 092A Lo\ndeva:pha 092B Lo\ndeva:ba 092C Lo\ndeva:bha 092D Lo\ndeva:ma 092E Lo\ndeva:ya 092F Lo\ndeva:ra 0930 Lo\ndeva:rra 0931 Lo\ndeva:la 0932 Lo\ndeva:lla 0933 Lo\ndeva:llla 0934 Lo\ndeva:va 0935 Lo\ndeva:sha 0936 Lo\ndeva:ssa 0937 Lo\ndeva:sa 0938 Lo\ndeva:ha 0939 Lo\ndeva:oesign 093A Mn\ndeva:ooesign 093B Mc\ndeva:nukta 093C Mn\ndeva:avagraha 093D Lo\ndeva:aasign 093E Mc\ndeva:isign 093F Mc\ndeva:iisign 0940 Mc\ndeva:usign 0941 Mn\ndeva:uusign 0942 Mn\ndeva:vocalicrsign 0943 Mn\ndeva:vocalicrrsign 0944 Mn\ndeva:esigncandra 0945 Mn\ndeva:esignshort 0946 Mn\ndeva:esign 0947 Mn\ndeva:aisign 0948 Mn\ndeva:osigncandra 0949 Mc\ndeva:osignshort 094A Mc\ndeva:osign 094B Mc\ndeva:ausign 094C Mc\ndeva:virama 094D Mn\ndeva:esignprishthamatra 094E Mc\ndeva:awsign 094F Mc\ndeva:om 0950 Lo\ndeva:udatta 0951 Mn\ndeva:anudatta 0952 Mn\ndeva:grave 0953 Mn\ndeva:acute 0954 Mn\ndeva:esigncandralong 0955 Mn\ndeva:uesign 0956 Mn\ndeva:uuesign 0957 Mn\ndeva:qa 0958 Lo\ndeva:khha 0959 Lo\ndeva:ghha 095A Lo\ndeva:za 095B Lo\ndeva:dddha 095C Lo\ndeva:rha 095D Lo\ndeva:fa 095E Lo\ndeva:yya 095F Lo\ndeva:vocalicrr 0960 Lo\ndeva:vocalicll 0961 Lo\ndeva:vocaliclsign 0962 Mn\ndeva:vocalicllsign 0963 Mn\ndeva:danda 0964 Po\ndeva:dbldanda 0965 Po\ndeva:zero 0966 Nd\ndeva:one 0967 Nd\ndeva:two 0968 Nd\ndeva:three 0969 Nd\ndeva:four 096A Nd\ndeva:five 096B Nd\ndeva:six 096C Nd\ndeva:seven 096D Nd\ndeva:eight 096E Nd\ndeva:nine 096F Nd\ndeva:abbreviation 0970 Po\ndeva:dothigh 0971 Lm\ndeva:acandra 0972 Lo\ndeva:oe 0973 Lo\ndeva:ooe 0974 Lo\ndeva:aw 0975 Lo\ndeva:ue 0976 Lo\ndeva:uue 0977 Lo\ndeva:marwaridda 0978 Lo\ndeva:zha 0979 Lo\ndeva:yaheavy 097A Lo\ndeva:gga 097B Lo\ndeva:jja 097C Lo\ndeva:glottalstop 097D Lo\ndeva:ddda 097E Lo\ndeva:bba 097F Lo\n# Bengali\nbeng:anji 0980 Lo\nbeng:candrabindu 0981 Mn\nbeng:anusvara 0982 Mc\nbeng:visarga 0983 Mc\nbeng:a 0985 Lo\nbeng:aa 0986 Lo\nbeng:i 0987 Lo\nbeng:ii 0988 Lo\nbeng:u 0989 Lo\nbeng:uu 098A Lo\nbeng:vocalicr 098B Lo\nbeng:vocalicl 098C Lo\nbeng:e 098F Lo\nbeng:ai 0990 Lo\nbeng:o 0993 Lo\nbeng:au 0994 Lo\nbeng:ka 0995 Lo\nbeng:kha 0996 Lo\nbeng:ga 0997 Lo\nbeng:gha 0998 Lo\nbeng:nga 0999 Lo\nbeng:ca 099A Lo\nbeng:cha 099B Lo\nbeng:ja 099C Lo\nbeng:jha 099D Lo\nbeng:nya 099E Lo\nbeng:tta 099F Lo\nbeng:ttha 09A0 Lo\nbeng:dda 09A1 Lo\nbeng:ddha 09A2 Lo\nbeng:nna 09A3 Lo\nbeng:ta 09A4 Lo\nbeng:tha 09A5 Lo\nbeng:da 09A6 Lo\nbeng:dha 09A7 Lo\nbeng:na 09A8 Lo\nbeng:pa 09AA Lo\nbeng:pha 09AB Lo\nbeng:ba 09AC Lo\nbeng:bha 09AD Lo\nbeng:ma 09AE Lo\nbeng:ya 09AF Lo\nbeng:ra 09B0 Lo\nbeng:la 09B2 Lo\nbeng:sha 09B6 Lo\nbeng:ssa 09B7 Lo\nbeng:sa 09B8 Lo\nbeng:ha 09B9 Lo\nbeng:nukta 09BC Mn\nbeng:avagraha 09BD Lo\nbeng:aasign 09BE Mc\nbeng:isign 09BF Mc\nbeng:iisign 09C0 Mc\nbeng:usign 09C1 Mn\nbeng:uusign 09C2 Mn\nbeng:vocalicrsign 09C3 Mn\nbeng:vocalicrrsign 09C4 Mn\nbeng:esign 09C7 Mc\nbeng:aisign 09C8 Mc\nbeng:osign 09CB Mc\nbeng:ausign 09CC Mc\nbeng:virama 09CD Mn\nbeng:khandata 09CE Lo\nbeng:aulengthmark 09D7 Mc\nbeng:rra 09DC Lo\nbeng:rha 09DD Lo\nbeng:yya 09DF Lo\nbeng:vocalicrr 09E0 Lo\nbeng:vocalicll 09E1 Lo\nbeng:vocaliclsign 09E2 Mn\nbeng:vocalicllsign 09E3 Mn\nbeng:zero 09E6 Nd\nbeng:one 09E7 Nd\nbeng:two 09E8 Nd\nbeng:three 09E9 Nd\nbeng:four 09EA Nd\nbeng:five 09EB Nd\nbeng:six 09EC Nd\nbeng:seven 09ED Nd\nbeng:eight 09EE Nd\nbeng:nine 09EF Nd\nbeng:ramiddiagonal 09F0 Lo\nbeng:ralowdiagonal 09F1 Lo\nbeng:rupeemark 09F2 Sc\nbeng:rupee 09F3 Sc\nbeng:onecurrencynumerator 09F4 No\nbeng:twocurrencynumerator 09F5 No\nbeng:threecurrencynumerator 09F6 No\nbeng:fourcurrencynumerator 09F7 No\nbeng:currencyoneless 09F8 No\nbeng:sixteencurrencydenominator 09F9 No\nbeng:isshar 09FA So\nbeng:gandamark 09FB Sc\nbeng:vedicanusvara 09FC Lo\nbeng:abbreviationsign 09FD Po\nbeng:sandhimark 09FE Mn\n# Gurmukhi\nguru:adakbindisign 0A01 Mn\nguru:bindisign 0A02 Mn\nguru:visarga 0A03 Mc\nguru:a 0A05 Lo\nguru:aa 0A06 Lo\nguru:i 0A07 Lo\nguru:ii 0A08 Lo\nguru:u 0A09 Lo\nguru:uu 0A0A Lo\nguru:ee 0A0F Lo\nguru:ai 0A10 Lo\nguru:oo 0A13 Lo\nguru:au 0A14 Lo\nguru:ka 0A15 Lo\nguru:kha 0A16 Lo\nguru:ga 0A17 Lo\nguru:gha 0A18 Lo\nguru:nga 0A19 Lo\nguru:ca 0A1A Lo\nguru:cha 0A1B Lo\nguru:ja 0A1C Lo\nguru:jha 0A1D Lo\nguru:nya 0A1E Lo\nguru:tta 0A1F Lo\nguru:ttha 0A20 Lo\nguru:dda 0A21 Lo\nguru:ddha 0A22 Lo\nguru:nna 0A23 Lo\nguru:ta 0A24 Lo\nguru:tha 0A25 Lo\nguru:da 0A26 Lo\nguru:dha 0A27 Lo\nguru:na 0A28 Lo\nguru:pa 0A2A Lo\nguru:pha 0A2B Lo\nguru:ba 0A2C Lo\nguru:bha 0A2D Lo\nguru:ma 0A2E Lo\nguru:ya 0A2F Lo\nguru:ra 0A30 Lo\nguru:la 0A32 Lo\nguru:lla 0A33 Lo\nguru:va 0A35 Lo\nguru:sha 0A36 Lo\nguru:sa 0A38 Lo\nguru:ha 0A39 Lo\nguru:nukta 0A3C Mn\nguru:aasign 0A3E Mc\nguru:isign 0A3F Mc\nguru:iisign 0A40 Mc\nguru:usign 0A41 Mn\nguru:uusign 0A42 Mn\nguru:eesign 0A47 Mn\nguru:aisign 0A48 Mn\nguru:oosign 0A4B Mn\nguru:ausign 0A4C Mn\nguru:virama 0A4D Mn\nguru:udaatsign 0A51 Mn\nguru:khha 0A59 Lo\nguru:ghha 0A5A Lo\nguru:za 0A5B Lo\nguru:rra 0A5C Lo\nguru:fa 0A5E Lo\nguru:zero 0A66 Nd\nguru:one 0A67 Nd\nguru:two 0A68 Nd\nguru:three 0A69 Nd\nguru:four 0A6A Nd\nguru:five 0A6B Nd\nguru:six 0A6C Nd\nguru:seven 0A6D Nd\nguru:eight 0A6E Nd\nguru:nine 0A6F Nd\nguru:tippi 0A70 Mn\nguru:addak 0A71 Mn\nguru:iri 0A72 Lo\nguru:ura 0A73 Lo\nguru:ekonkar 0A74 Lo\nguru:yakashsign 0A75 Mn\nguru:abbreviationsign 0A76 Po\n# Gujarati\ngujr:candrabindu 0A81 Mn\ngujr:anusvara 0A82 Mn\ngujr:visarga 0A83 Mc\ngujr:a 0A85 Lo\ngujr:aa 0A86 Lo\ngujr:i 0A87 Lo\ngujr:ii 0A88 Lo\ngujr:u 0A89 Lo\ngujr:uu 0A8A Lo\ngujr:vocalicr 0A8B Lo\ngujr:vocalicl 0A8C Lo\ngujr:ecandra 0A8D Lo\ngujr:e 0A8F Lo\ngujr:ai 0A90 Lo\ngujr:ocandra 0A91 Lo\ngujr:o 0A93 Lo\ngujr:au 0A94 Lo\ngujr:ka 0A95 Lo\ngujr:kha 0A96 Lo\ngujr:ga 0A97 Lo\ngujr:gha 0A98 Lo\ngujr:nga 0A99 Lo\ngujr:ca 0A9A Lo\ngujr:cha 0A9B Lo\ngujr:ja 0A9C Lo\ngujr:jha 0A9D Lo\ngujr:nya 0A9E Lo\ngujr:tta 0A9F Lo\ngujr:ttha 0AA0 Lo\ngujr:dda 0AA1 Lo\ngujr:ddha 0AA2 Lo\ngujr:nna 0AA3 Lo\ngujr:ta 0AA4 Lo\ngujr:tha 0AA5 Lo\ngujr:da 0AA6 Lo\ngujr:dha 0AA7 Lo\ngujr:na 0AA8 Lo\ngujr:pa 0AAA Lo\ngujr:pha 0AAB Lo\ngujr:ba 0AAC Lo\ngujr:bha 0AAD Lo\ngujr:ma 0AAE Lo\ngujr:ya 0AAF Lo\ngujr:ra 0AB0 Lo\ngujr:la 0AB2 Lo\ngujr:lla 0AB3 Lo\ngujr:va 0AB5 Lo\ngujr:sha 0AB6 Lo\ngujr:ssa 0AB7 Lo\ngujr:sa 0AB8 Lo\ngujr:ha 0AB9 Lo\ngujr:nukta 0ABC Mn\ngujr:avagraha 0ABD Lo\ngujr:aasign 0ABE Mc\ngujr:isign 0ABF Mc\ngujr:iisign 0AC0 Mc\ngujr:usign 0AC1 Mn\ngujr:uusign 0AC2 Mn\ngujr:vocalicrsign 0AC3 Mn\ngujr:vocalicrrsign 0AC4 Mn\ngujr:esigncandra 0AC5 Mn\ngujr:esign 0AC7 Mn\ngujr:aisign 0AC8 Mn\ngujr:osigncandra 0AC9 Mc\ngujr:osign 0ACB Mc\ngujr:ausign 0ACC Mc\ngujr:virama 0ACD Mn\ngujr:om 0AD0 Lo\ngujr:vocalicrr 0AE0 Lo\ngujr:vocalicll 0AE1 Lo\ngujr:vocaliclsign 0AE2 Mn\ngujr:vocalicllsign 0AE3 Mn\ngujr:zero 0AE6 Nd\ngujr:one 0AE7 Nd\ngujr:two 0AE8 Nd\ngujr:three 0AE9 Nd\ngujr:four 0AEA Nd\ngujr:five 0AEB Nd\ngujr:six 0AEC Nd\ngujr:seven 0AED Nd\ngujr:eight 0AEE Nd\ngujr:nine 0AEF Nd\ngujr:abbreviation 0AF0 Po\ngujr:rupee 0AF1 Sc\ngujr:zha 0AF9 Lo\ngujr:sukun 0AFA Mn\ngujr:shadda 0AFB Mn\ngujr:maddah 0AFC Mn\ngujr:threedotnuktaabove 0AFD Mn\ngujr:circlenuktaabove 0AFE Mn\ngujr:twocirclenuktaabove 0AFF Mn\n# Oriya\norya:candrabindu 0B01 Mn\norya:anusvara 0B02 Mc\norya:visarga 0B03 Mc\norya:a 0B05 Lo\norya:aa 0B06 Lo\norya:i 0B07 Lo\norya:ii 0B08 Lo\norya:u 0B09 Lo\norya:uu 0B0A Lo\norya:vocalicr 0B0B Lo\norya:vocalicl 0B0C Lo\norya:e 0B0F Lo\norya:ai 0B10 Lo\norya:o 0B13 Lo\norya:au 0B14 Lo\norya:ka 0B15 Lo\norya:kha 0B16 Lo\norya:ga 0B17 Lo\norya:gha 0B18 Lo\norya:nga 0B19 Lo\norya:ca 0B1A Lo\norya:cha 0B1B Lo\norya:ja 0B1C Lo\norya:jha 0B1D Lo\norya:nya 0B1E Lo\norya:tta 0B1F Lo\norya:ttha 0B20 Lo\norya:dda 0B21 Lo\norya:ddha 0B22 Lo\norya:nna 0B23 Lo\norya:ta 0B24 Lo\norya:tha 0B25 Lo\norya:da 0B26 Lo\norya:dha 0B27 Lo\norya:na 0B28 Lo\norya:pa 0B2A Lo\norya:pha 0B2B Lo\norya:ba 0B2C Lo\norya:bha 0B2D Lo\norya:ma 0B2E Lo\norya:ya 0B2F Lo\norya:ra 0B30 Lo\norya:la 0B32 Lo\norya:lla 0B33 Lo\norya:va 0B35 Lo\norya:sha 0B36 Lo\norya:ssa 0B37 Lo\norya:sa 0B38 Lo\norya:ha 0B39 Lo\norya:nukta 0B3C Mn\norya:avagraha 0B3D Lo\norya:aasign 0B3E Mc\norya:isign 0B3F Mn\norya:iisign 0B40 Mc\norya:usign 0B41 Mn\norya:uusign 0B42 Mn\norya:vocalicrsign 0B43 Mn\norya:vocalicrrsign 0B44 Mn\norya:esign 0B47 Mc\norya:aisign 0B48 Mc\norya:osign 0B4B Mc\norya:ausign 0B4C Mc\norya:virama 0B4D Mn\norya:ailengthmark 0B56 Mn\norya:aulengthmark 0B57 Mc\norya:rra 0B5C Lo\norya:rha 0B5D Lo\norya:yya 0B5F Lo\norya:vocalicrr 0B60 Lo\norya:vocalicll 0B61 Lo\norya:vocaliclsign 0B62 Mn\norya:vocalicllsign 0B63 Mn\norya:zero 0B66 Nd\norya:one 0B67 Nd\norya:two 0B68 Nd\norya:three 0B69 Nd\norya:four 0B6A Nd\norya:five 0B6B Nd\norya:six 0B6C Nd\norya:seven 0B6D Nd\norya:eight 0B6E Nd\norya:nine 0B6F Nd\norya:isshar 0B70 So\norya:wa 0B71 Lo\norya:onequarter 0B72 No\norya:onehalf 0B73 No\norya:threequarters 0B74 No\norya:onesixteenth 0B75 No\norya:oneeighth 0B76 No\norya:threesixteenths 0B77 No\n# Tamil\ntaml:anusvara 0B82 Mn\ntaml:visarga 0B83 Lo\ntaml:a 0B85 Lo\ntaml:aa 0B86 Lo\ntaml:i 0B87 Lo\ntaml:ii 0B88 Lo\ntaml:u 0B89 Lo\ntaml:uu 0B8A Lo\ntaml:e 0B8E Lo\ntaml:ee 0B8F Lo\ntaml:ai 0B90 Lo\ntaml:o 0B92 Lo\ntaml:oo 0B93 Lo\ntaml:au 0B94 Lo\ntaml:ka 0B95 Lo\ntaml:nga 0B99 Lo\ntaml:ca 0B9A Lo\ntaml:ja 0B9C Lo\ntaml:nya 0B9E Lo\ntaml:tta 0B9F Lo\ntaml:nna 0BA3 Lo\ntaml:ta 0BA4 Lo\ntaml:na 0BA8 Lo\ntaml:nnna 0BA9 Lo\ntaml:pa 0BAA Lo\ntaml:ma 0BAE Lo\ntaml:ya 0BAF Lo\ntaml:ra 0BB0 Lo\ntaml:rra 0BB1 Lo\ntaml:la 0BB2 Lo\ntaml:lla 0BB3 Lo\ntaml:llla 0BB4 Lo\ntaml:va 0BB5 Lo\ntaml:sha 0BB6 Lo\ntaml:ssa 0BB7 Lo\ntaml:sa 0BB8 Lo\ntaml:ha 0BB9 Lo\ntaml:aasign 0BBE Mc\ntaml:isign 0BBF Mc\ntaml:iisign 0BC0 Mn\ntaml:usign 0BC1 Mc\ntaml:uusign 0BC2 Mc\ntaml:esign 0BC6 Mc\ntaml:eesign 0BC7 Mc\ntaml:aisign 0BC8 Mc\ntaml:osign 0BCA Mc\ntaml:oosign 0BCB Mc\ntaml:ausign 0BCC Mc\ntaml:virama 0BCD Mn\ntaml:om 0BD0 Lo\ntaml:aulengthmark 0BD7 Mc\ntaml:zero 0BE6 Nd\ntaml:one 0BE7 Nd\ntaml:two 0BE8 Nd\ntaml:three 0BE9 Nd\ntaml:four 0BEA Nd\ntaml:five 0BEB Nd\ntaml:six 0BEC Nd\ntaml:seven 0BED Nd\ntaml:eight 0BEE Nd\ntaml:nine 0BEF Nd\ntaml:ten 0BF0 No\ntaml:onehundred 0BF1 No\ntaml:onethousand 0BF2 No\ntaml:daysign 0BF3 So\ntaml:monthsign 0BF4 So\ntaml:yearsign 0BF5 So\ntaml:debitsign 0BF6 So\ntaml:creditsign 0BF7 So\ntaml:asabovesign 0BF8 So\ntaml:rupee 0BF9 Sc\ntaml:sign 0BFA So\n# Telugu\ntelu:combiningcandrabinduabovesign 0C00 Mn\ntelu:candrabindusign 0C01 Mc\ntelu:anusvara 0C02 Mc\ntelu:visarga 0C03 Mc\ntelu:combininganusvaraabovesign 0C04 Mn\ntelu:a 0C05 Lo\ntelu:aa 0C06 Lo\ntelu:i 0C07 Lo\ntelu:ii 0C08 Lo\ntelu:u 0C09 Lo\ntelu:uu 0C0A Lo\ntelu:vocalicr 0C0B Lo\ntelu:vocalicl 0C0C Lo\ntelu:e 0C0E Lo\ntelu:ee 0C0F Lo\ntelu:ai 0C10 Lo\ntelu:o 0C12 Lo\ntelu:oo 0C13 Lo\ntelu:au 0C14 Lo\ntelu:ka 0C15 Lo\ntelu:kha 0C16 Lo\ntelu:ga 0C17 Lo\ntelu:gha 0C18 Lo\ntelu:nga 0C19 Lo\ntelu:ca 0C1A Lo\ntelu:cha 0C1B Lo\ntelu:ja 0C1C Lo\ntelu:jha 0C1D Lo\ntelu:nya 0C1E Lo\ntelu:tta 0C1F Lo\ntelu:ttha 0C20 Lo\ntelu:dda 0C21 Lo\ntelu:ddha 0C22 Lo\ntelu:nna 0C23 Lo\ntelu:ta 0C24 Lo\ntelu:tha 0C25 Lo\ntelu:da 0C26 Lo\ntelu:dha 0C27 Lo\ntelu:na 0C28 Lo\ntelu:pa 0C2A Lo\ntelu:pha 0C2B Lo\ntelu:ba 0C2C Lo\ntelu:bha 0C2D Lo\ntelu:ma 0C2E Lo\ntelu:ya 0C2F Lo\ntelu:ra 0C30 Lo\ntelu:rra 0C31 Lo\ntelu:la 0C32 Lo\ntelu:lla 0C33 Lo\ntelu:llla 0C34 Lo\ntelu:va 0C35 Lo\ntelu:sha 0C36 Lo\ntelu:ssa 0C37 Lo\ntelu:sa 0C38 Lo\ntelu:ha 0C39 Lo\ntelu:avagraha 0C3D Lo\ntelu:aasign 0C3E Mn\ntelu:isign 0C3F Mn\ntelu:iisign 0C40 Mn\ntelu:usign 0C41 Mc\ntelu:uusign 0C42 Mc\ntelu:vocalicrsign 0C43 Mc\ntelu:vocalicrrsign 0C44 Mc\ntelu:esign 0C46 Mn\ntelu:eesign 0C47 Mn\ntelu:aisign 0C48 Mn\ntelu:osign 0C4A Mn\ntelu:oosign 0C4B Mn\ntelu:ausign 0C4C Mn\ntelu:virama 0C4D Mn\ntelu:lengthmark 0C55 Mn\ntelu:ailengthmark 0C56 Mn\ntelu:tsa 0C58 Lo\ntelu:dza 0C59 Lo\ntelu:rrra 0C5A Lo\ntelu:vocalicrr 0C60 Lo\ntelu:vocalicll 0C61 Lo\ntelu:vocaliclsign 0C62 Mn\ntelu:vocalicllsign 0C63 Mn\ntelu:zero 0C66 Nd\ntelu:one 0C67 Nd\ntelu:two 0C68 Nd\ntelu:three 0C69 Nd\ntelu:four 0C6A Nd\ntelu:five 0C6B Nd\ntelu:six 0C6C Nd\ntelu:seven 0C6D Nd\ntelu:eight 0C6E Nd\ntelu:nine 0C6F Nd\ntelu:siddhamsign 0C77 Po\ntelu:fractionzeroforoddpowersoffour 0C78 No\ntelu:fractiononeforoddpowersoffour 0C79 No\ntelu:fractiontwoforoddpowersoffour 0C7A No\ntelu:fractionthreeforoddpowersoffour 0C7B No\ntelu:fractiononeforevenpowersoffour 0C7C No\ntelu:fractiontwoforevenpowersoffour 0C7D No\ntelu:fractionthreeforevenpowersoffour 0C7E No\ntelu:tuumusign 0C7F So\n# Kannada\nknda:signspacingcandrabindu 0C80 Lo\nknda:signcandrabindu 0C81 Mn\nknda:anusvara 0C82 Mc\nknda:visarga 0C83 Mc\nknda:signsiddham 0C84 Po\nknda:a 0C85 Lo\nknda:aa 0C86 Lo\nknda:i 0C87 Lo\nknda:ii 0C88 Lo\nknda:u 0C89 Lo\nknda:uu 0C8A Lo\nknda:rvocal 0C8B Lo\nknda:lvocal 0C8C Lo\nknda:e 0C8E Lo\nknda:ee 0C8F Lo\nknda:ai 0C90 Lo\nknda:o 0C92 Lo\nknda:oo 0C93 Lo\nknda:au 0C94 Lo\nknda:ka 0C95 Lo\nknda:kha 0C96 Lo\nknda:ga 0C97 Lo\nknda:gha 0C98 Lo\nknda:nga 0C99 Lo\nknda:ca 0C9A Lo\nknda:cha 0C9B Lo\nknda:ja 0C9C Lo\nknda:jha 0C9D Lo\nknda:nya 0C9E Lo\nknda:tta 0C9F Lo\nknda:ttha 0CA0 Lo\nknda:dda 0CA1 Lo\nknda:ddha 0CA2 Lo\nknda:nna 0CA3 Lo\nknda:ta 0CA4 Lo\nknda:tha 0CA5 Lo\nknda:da 0CA6 Lo\nknda:dha 0CA7 Lo\nknda:na 0CA8 Lo\nknda:pa 0CAA Lo\nknda:pha 0CAB Lo\nknda:ba 0CAC Lo\nknda:bha 0CAD Lo\nknda:ma 0CAE Lo\nknda:ya 0CAF Lo\nknda:ra 0CB0 Lo\nknda:rra 0CB1 Lo\nknda:la 0CB2 Lo\nknda:lla 0CB3 Lo\nknda:va 0CB5 Lo\nknda:sha 0CB6 Lo\nknda:ssa 0CB7 Lo\nknda:sa 0CB8 Lo\nknda:ha 0CB9 Lo\nknda:nukta 0CBC Mn\nknda:avagraha 0CBD Lo\nknda:aasign 0CBE Mc\nknda:isign 0CBF Mn\nknda:iisign 0CC0 Mc\nknda:usign 0CC1 Mc\nknda:uusign 0CC2 Mc\nknda:rvocalsign 0CC3 Mc\nknda:rrvocalsign 0CC4 Mc\nknda:esign 0CC6 Mn\nknda:eesign 0CC7 Mc\nknda:aisign 0CC8 Mc\nknda:osign 0CCA Mc\nknda:oosign 0CCB Mc\nknda:ausign 0CCC Mn\nknda:virama 0CCD Mn\nknda:length 0CD5 Mc\nknda:ailength 0CD6 Mc\nknda:fa 0CDE Lo\nknda:rrvocal 0CE0 Lo\nknda:llvocal 0CE1 Lo\nknda:lvocalsign 0CE2 Mn\nknda:llvocalsign 0CE3 Mn\nknda:zero 0CE6 Nd\nknda:one 0CE7 Nd\nknda:two 0CE8 Nd\nknda:three 0CE9 Nd\nknda:four 0CEA Nd\nknda:five 0CEB Nd\nknda:six 0CEC Nd\nknda:seven 0CED Nd\nknda:eight 0CEE Nd\nknda:nine 0CEF Nd\nknda:jihvamuliya 0CF1 Lo\nknda:upadhmaniya 0CF2 Lo\n# Malayalam\nmlym:combininganusvaraabovesign 0D00 Mn\nmlym:candrabindusign 0D01 Mn\nmlym:anusvarasign 0D02 Mc\nmlym:visargasign 0D03 Mc\nmlym:a 0D05 Lo\nmlym:aa 0D06 Lo\nmlym:i 0D07 Lo\nmlym:ii 0D08 Lo\nmlym:u 0D09 Lo\nmlym:uu 0D0A Lo\nmlym:rvocal 0D0B Lo\nmlym:lvocal 0D0C Lo\nmlym:e 0D0E Lo\nmlym:ee 0D0F Lo\nmlym:ai 0D10 Lo\nmlym:o 0D12 Lo\nmlym:oo 0D13 Lo\nmlym:au 0D14 Lo\nmlym:ka 0D15 Lo\nmlym:kha 0D16 Lo\nmlym:ga 0D17 Lo\nmlym:gha 0D18 Lo\nmlym:nga 0D19 Lo\nmlym:ca 0D1A Lo\nmlym:cha 0D1B Lo\nmlym:ja 0D1C Lo\nmlym:jha 0D1D Lo\nmlym:nya 0D1E Lo\nmlym:tta 0D1F Lo\nmlym:ttha 0D20 Lo\nmlym:dda 0D21 Lo\nmlym:ddha 0D22 Lo\nmlym:nna 0D23 Lo\nmlym:ta 0D24 Lo\nmlym:tha 0D25 Lo\nmlym:da 0D26 Lo\nmlym:dha 0D27 Lo\nmlym:na 0D28 Lo\nmlym:nnna 0D29 Lo\nmlym:pa 0D2A Lo\nmlym:pha 0D2B Lo\nmlym:ba 0D2C Lo\nmlym:bha 0D2D Lo\nmlym:ma 0D2E Lo\nmlym:ya 0D2F Lo\nmlym:ra 0D30 Lo\nmlym:rra 0D31 Lo\nmlym:la 0D32 Lo\nmlym:lla 0D33 Lo\nmlym:llla 0D34 Lo\nmlym:va 0D35 Lo\nmlym:sha 0D36 Lo\nmlym:ssa 0D37 Lo\nmlym:sa 0D38 Lo\nmlym:ha 0D39 Lo\nmlym:ttta 0D3A Lo\nmlym:verticalbarviramasign 0D3B Mn\nmlym:circularviramasign 0D3C Mn\nmlym:avagrahasign 0D3D Lo\nmlym:aasign 0D3E Mc\nmlym:isign 0D3F Mc\nmlym:iisign 0D40 Mc\nmlym:usign 0D41 Mn\nmlym:uusign 0D42 Mn\nmlym:rvocalsign 0D43 Mn\nmlym:rrvocalsign 0D44 Mn\nmlym:esign 0D46 Mc\nmlym:eesign 0D47 Mc\nmlym:aisign 0D48 Mc\nmlym:osign 0D4A Mc\nmlym:oosign 0D4B Mc\nmlym:ausign 0D4C Mc\nmlym:viramasign 0D4D Mn\nmlym:dotreph 0D4E Lo\nmlym:parasign 0D4F So\nmlym:mchillu 0D54 Lo\nmlym:ychillu 0D55 Lo\nmlym:lllchillu 0D56 Lo\nmlym:aulength 0D57 Mc\nmlym:oneone-hundred-and-sixtieth 0D58 No\nmlym:onefortieth 0D59 No\nmlym:threeeightieths 0D5A No\nmlym:onetwentieth 0D5B No\nmlym:onetenth 0D5C No\nmlym:threetwentieths 0D5D No\nmlym:onefifth 0D5E No\nmlym:archaicii 0D5F Lo\nmlym:rrvocal 0D60 Lo\nmlym:llvocal 0D61 Lo\nmlym:lvocalsign 0D62 Mn\nmlym:llvocalsign 0D63 Mn\nmlym:zero 0D66 Nd\nmlym:one 0D67 Nd\nmlym:two 0D68 Nd\nmlym:three 0D69 Nd\nmlym:four 0D6A Nd\nmlym:five 0D6B Nd\nmlym:six 0D6C Nd\nmlym:seven 0D6D Nd\nmlym:eight 0D6E Nd\nmlym:nine 0D6F Nd\nmlym:ten 0D70 No\nmlym:onehundred 0D71 No\nmlym:onethousand 0D72 No\nmlym:onequarter 0D73 No\nmlym:onehalf 0D74 No\nmlym:threequarters 0D75 No\nmlym:onesixteenth 0D76 No\nmlym:oneeighth 0D77 No\nmlym:threesixteenths 0D78 No\nmlym:date 0D79 So\nmlym:nnchillu 0D7A Lo\nmlym:nchillu 0D7B Lo\nmlym:rrchillu 0D7C Lo\nmlym:lchillu 0D7D Lo\nmlym:llchillu 0D7E Lo\nmlym:kchillu 0D7F Lo\n# Sinhala\nsinh:anusvara 0D82 Mc\nsinh:visarga 0D83 Mc\nsinh:a 0D85 Lo\nsinh:aa 0D86 Lo\nsinh:ae 0D87 Lo\nsinh:aae 0D88 Lo\nsinh:i 0D89 Lo\nsinh:ii 0D8A Lo\nsinh:u 0D8B Lo\nsinh:uu 0D8C Lo\nsinh:vocalicr 0D8D Lo\nsinh:vocalicrr 0D8E Lo\nsinh:vocalicl 0D8F Lo\nsinh:vocalicll 0D90 Lo\nsinh:e 0D91 Lo\nsinh:ee 0D92 Lo\nsinh:ai 0D93 Lo\nsinh:o 0D94 Lo\nsinh:oo 0D95 Lo\nsinh:au 0D96 Lo\nsinh:ka 0D9A Lo\nsinh:kha 0D9B Lo\nsinh:ga 0D9C Lo\nsinh:gha 0D9D Lo\nsinh:nga 0D9E Lo\nsinh:nnga 0D9F Lo\nsinh:ca 0DA0 Lo\nsinh:cha 0DA1 Lo\nsinh:ja 0DA2 Lo\nsinh:jha 0DA3 Lo\nsinh:nya 0DA4 Lo\nsinh:jnya 0DA5 Lo\nsinh:nyja 0DA6 Lo\nsinh:tta 0DA7 Lo\nsinh:ttha 0DA8 Lo\nsinh:dda 0DA9 Lo\nsinh:ddha 0DAA Lo\nsinh:nna 0DAB Lo\nsinh:nndda 0DAC Lo\nsinh:ta 0DAD Lo\nsinh:tha 0DAE Lo\nsinh:da 0DAF Lo\nsinh:dha 0DB0 Lo\nsinh:na 0DB1 Lo\nsinh:nda 0DB3 Lo\nsinh:pa 0DB4 Lo\nsinh:pha 0DB5 Lo\nsinh:ba 0DB6 Lo\nsinh:bha 0DB7 Lo\nsinh:ma 0DB8 Lo\nsinh:mba 0DB9 Lo\nsinh:ya 0DBA Lo\nsinh:ra 0DBB Lo\nsinh:la 0DBD Lo\nsinh:va 0DC0 Lo\nsinh:sha 0DC1 Lo\nsinh:ssa 0DC2 Lo\nsinh:sa 0DC3 Lo\nsinh:ha 0DC4 Lo\nsinh:lla 0DC5 Lo\nsinh:fa 0DC6 Lo\nsinh:virama 0DCA Mn\nsinh:aasign 0DCF Mc\nsinh:aesign 0DD0 Mc\nsinh:aaesign 0DD1 Mc\nsinh:isign 0DD2 Mn\nsinh:iisign 0DD3 Mn\nsinh:usign 0DD4 Mn\nsinh:uusign 0DD6 Mn\nsinh:vocalicrsign 0DD8 Mc\nsinh:esign 0DD9 Mc\nsinh:eesign 0DDA Mc\nsinh:aisign 0DDB Mc\nsinh:osign 0DDC Mc\nsinh:oosign 0DDD Mc\nsinh:ausign 0DDE Mc\nsinh:vocaliclsign 0DDF Mc\nsinh:zerolith 0DE6 Nd\nsinh:onelith 0DE7 Nd\nsinh:twolith 0DE8 Nd\nsinh:threelith 0DE9 Nd\nsinh:fourlith 0DEA Nd\nsinh:fivelith 0DEB Nd\nsinh:sixlith 0DEC Nd\nsinh:sevenlith 0DED Nd\nsinh:eightlith 0DEE Nd\nsinh:ninelith 0DEF Nd\nsinh:vocalicrrsign 0DF2 Mc\nsinh:vocalicllsign 0DF3 Mc\nsinh:kunddaliya 0DF4 Po\n# Thai\nthai:kokai 0E01 Lo\nthai:khokhai 0E02 Lo\nthai:khokhuat 0E03 Lo\nthai:khokhwai 0E04 Lo\nthai:khokhon 0E05 Lo\nthai:khorakhang 0E06 Lo\nthai:ngongu 0E07 Lo\nthai:chochan 0E08 Lo\nthai:choching 0E09 Lo\nthai:chochang 0E0A Lo\nthai:soso 0E0B Lo\nthai:chochoe 0E0C Lo\nthai:yoying 0E0D Lo\nthai:dochada 0E0E Lo\nthai:topatak 0E0F Lo\nthai:thothan 0E10 Lo\nthai:thonangmontho 0E11 Lo\nthai:thophuthao 0E12 Lo\nthai:nonen 0E13 Lo\nthai:dodek 0E14 Lo\nthai:totao 0E15 Lo\nthai:thothung 0E16 Lo\nthai:thothahan 0E17 Lo\nthai:thothong 0E18 Lo\nthai:nonu 0E19 Lo\nthai:bobaimai 0E1A Lo\nthai:popla 0E1B Lo\nthai:phophung 0E1C Lo\nthai:fofa 0E1D Lo\nthai:phophan 0E1E Lo\nthai:fofan 0E1F Lo\nthai:phosamphao 0E20 Lo\nthai:moma 0E21 Lo\nthai:yoyak 0E22 Lo\nthai:rorua 0E23 Lo\nthai:ru 0E24 Lo\nthai:loling 0E25 Lo\nthai:lu 0E26 Lo\nthai:wowaen 0E27 Lo\nthai:sosala 0E28 Lo\nthai:sorusi 0E29 Lo\nthai:sosua 0E2A Lo\nthai:hohip 0E2B Lo\nthai:lochula 0E2C Lo\nthai:oang 0E2D Lo\nthai:honokhuk 0E2E Lo\nthai:paiyannoi 0E2F Lo\nthai:saraa 0E30 Lo\nthai:maihan-akat 0E31 Mn\nthai:saraaa 0E32 Lo\nthai:saraam 0E33 Lo\nthai:sarai 0E34 Mn\nthai:saraii 0E35 Mn\nthai:saraue 0E36 Mn\nthai:sarauee 0E37 Mn\nthai:sarau 0E38 Mn\nthai:sarauu 0E39 Mn\nthai:phinthu 0E3A Mn\nthai:baht 0E3F Sc\nthai:sarae 0E40 Lo\nthai:saraae 0E41 Lo\nthai:sarao 0E42 Lo\nthai:saraaimaimuan 0E43 Lo\nthai:saraaimaimalai 0E44 Lo\nthai:lakkhangyao 0E45 Lo\nthai:maiyamok 0E46 Lm\nthai:maitaikhu 0E47 Mn\nthai:maiek 0E48 Mn\nthai:maitho 0E49 Mn\nthai:maitri 0E4A Mn\nthai:maichattawa 0E4B Mn\nthai:thanthakhat 0E4C Mn\nthai:nikhahit 0E4D Mn\nthai:yamakkan 0E4E Mn\nthai:fongman 0E4F Po\nthai:zero 0E50 Nd\nthai:one 0E51 Nd\nthai:two 0E52 Nd\nthai:three 0E53 Nd\nthai:four 0E54 Nd\nthai:five 0E55 Nd\nthai:six 0E56 Nd\nthai:seven 0E57 Nd\nthai:eight 0E58 Nd\nthai:nine 0E59 Nd\nthai:angkhankhu 0E5A Po\nthai:khomut 0E5B Po\n# Tibetan\ntibt:omsyllable 0F00 Lo\ntibt:gteryigmgotruncatedamark 0F01 So\ntibt:gteryigmgoumrnambcadmamark 0F02 So\ntibt:gteryigmgoumgtertshegmamark 0F03 So\ntibt:yigmgomdunmainitialmark 0F04 Po\ntibt:yigmgosgabmaclosingmark 0F05 Po\ntibt:caretyigmgophurshadmamark 0F06 Po\ntibt:yigmgotshegshadmamark 0F07 Po\ntibt:sbrulshadmark 0F08 Po\ntibt:bskuryigmgomark 0F09 Po\ntibt:bkashogyigmgomark 0F0A Po\ntibt:intersyllabictshegmark 0F0B Po\ntibt:delimitertshegbstarmark 0F0C Po\ntibt:shadmark 0F0D Po\ntibt:nyisshadmark 0F0E Po\ntibt:tshegshadmark 0F0F Po\ntibt:nyistshegshadmark 0F10 Po\ntibt:rinchenspungsshadmark 0F11 Po\ntibt:rgyagramshadmark 0F12 Po\ntibt:caretdzudrtagsmelongcanmark 0F13 So\ntibt:gtertshegmark 0F14 Po\ntibt:chadrtagslogotypesign 0F15 So\ntibt:lhagrtagslogotypesign 0F16 So\ntibt:astrologicalsgragcancharrtagssign 0F17 So\ntibt:astrologicalkhyudpasign 0F18 Mn\ntibt:astrologicalsdongtshugssign 0F19 Mn\ntibt:rdeldkargcigsign 0F1A So\ntibt:rdeldkargnyissign 0F1B So\ntibt:rdeldkargsumsign 0F1C So\ntibt:rdelnaggcigsign 0F1D So\ntibt:rdelnaggnyissign 0F1E So\ntibt:rdeldkarrdelnagsign 0F1F So\ntibt:zero 0F20 Nd\ntibt:one 0F21 Nd\ntibt:two 0F22 Nd\ntibt:three 0F23 Nd\ntibt:four 0F24 Nd\ntibt:five 0F25 Nd\ntibt:six 0F26 Nd\ntibt:seven 0F27 Nd\ntibt:eight 0F28 Nd\ntibt:nine 0F29 Nd\ntibt:halfone 0F2A No\ntibt:halftwo 0F2B No\ntibt:halfthree 0F2C No\ntibt:halffour 0F2D No\ntibt:halffive 0F2E No\ntibt:halfsix 0F2F No\ntibt:halfseven 0F30 No\ntibt:halfeight 0F31 No\ntibt:halfnine 0F32 No\ntibt:halfzero 0F33 No\ntibt:bsdusrtagsmark 0F34 So\ntibt:ngasbzungnyizlamark 0F35 Mn\ntibt:caretdzudrtagsbzhimigcanmark 0F36 So\ntibt:ngasbzungsgorrtagsmark 0F37 Mn\ntibt:chemgomark 0F38 So\ntibt:tsaphrumark 0F39 Mn\ntibt:gugrtagsgyonmark 0F3A Ps\ntibt:gugrtagsgyasmark 0F3B Pe\ntibt:angkhanggyonmark 0F3C Ps\ntibt:angkhanggyasmark 0F3D Pe\ntibt:yartshessign 0F3E Mc\ntibt:martshessign 0F3F Mc\ntibt:ka 0F40 Lo\ntibt:kha 0F41 Lo\ntibt:ga 0F42 Lo\ntibt:gha 0F43 Lo\ntibt:nga 0F44 Lo\ntibt:ca 0F45 Lo\ntibt:cha 0F46 Lo\ntibt:ja 0F47 Lo\ntibt:nya 0F49 Lo\ntibt:tta 0F4A Lo\ntibt:ttha 0F4B Lo\ntibt:dda 0F4C Lo\ntibt:ddha 0F4D Lo\ntibt:nna 0F4E Lo\ntibt:ta 0F4F Lo\ntibt:tha 0F50 Lo\ntibt:da 0F51 Lo\ntibt:dha 0F52 Lo\ntibt:na 0F53 Lo\ntibt:pa 0F54 Lo\ntibt:pha 0F55 Lo\ntibt:ba 0F56 Lo\ntibt:bha 0F57 Lo\ntibt:ma 0F58 Lo\ntibt:tsa 0F59 Lo\ntibt:tsha 0F5A Lo\ntibt:dza 0F5B Lo\ntibt:dzha 0F5C Lo\ntibt:wa 0F5D Lo\ntibt:zha 0F5E Lo\ntibt:za 0F5F Lo\ntibt:AA 0F60 Lo\ntibt:ya 0F61 Lo\ntibt:ra 0F62 Lo\ntibt:la 0F63 Lo\ntibt:sha 0F64 Lo\ntibt:ssa 0F65 Lo\ntibt:sa 0F66 Lo\ntibt:ha 0F67 Lo\ntibt:a 0F68 Lo\ntibt:kssa 0F69 Lo\ntibt:rafixed 0F6A Lo\ntibt:kka 0F6B Lo\ntibt:rra 0F6C Lo\ntibt:aavowelsign 0F71 Mn\ntibt:ivowelsign 0F72 Mn\ntibt:iivowelsign 0F73 Mn\ntibt:uvowelsign 0F74 Mn\ntibt:uuvowelsign 0F75 Mn\ntibt:rvocalicvowelsign 0F76 Mn\ntibt:rrvocalicvowelsign 0F77 Mn\ntibt:lvocalicvowelsign 0F78 Mn\ntibt:llvocalicvowelsign 0F79 Mn\ntibt:evowelsign 0F7A Mn\ntibt:eevowelsign 0F7B Mn\ntibt:ovowelsign 0F7C Mn\ntibt:oovowelsign 0F7D Mn\ntibt:rjessungarosign 0F7E Mn\ntibt:rnambcadsign 0F7F Mc\ntibt:reversedivowelsign 0F80 Mn\ntibt:reversediivowelsign 0F81 Mn\ntibt:nyizlanaadasign 0F82 Mn\ntibt:snaldansign 0F83 Mn\ntibt:halantamark 0F84 Mn\ntibt:palutamark 0F85 Po\ntibt:lcirtagssign 0F86 Mn\ntibt:yangrtagssign 0F87 Mn\ntibt:lcetsacansign 0F88 Lo\ntibt:mchucansign 0F89 Lo\ntibt:grucanrgyingssign 0F8A Lo\ntibt:grumedrgyingssign 0F8B Lo\ntibt:invertedmchucansign 0F8C Lo\ntibt:lcetsacansubjoinedsign 0F8D Mn\ntibt:mchucansubjoinedsign 0F8E Mn\ntibt:invertedmchucansubjoinedsign 0F8F Mn\ntibt:kasubjoined 0F90 Mn\ntibt:khasubjoined 0F91 Mn\ntibt:gasubjoined 0F92 Mn\ntibt:ghasubjoined 0F93 Mn\ntibt:ngasubjoined 0F94 Mn\ntibt:casubjoined 0F95 Mn\ntibt:chasubjoined 0F96 Mn\ntibt:jasubjoined 0F97 Mn\ntibt:nyasubjoined 0F99 Mn\ntibt:ttasubjoined 0F9A Mn\ntibt:tthasubjoined 0F9B Mn\ntibt:ddasubjoined 0F9C Mn\ntibt:ddhasubjoined 0F9D Mn\ntibt:nnasubjoined 0F9E Mn\ntibt:tasubjoined 0F9F Mn\ntibt:thasubjoined 0FA0 Mn\ntibt:dasubjoined 0FA1 Mn\ntibt:dhasubjoined 0FA2 Mn\ntibt:nasubjoined 0FA3 Mn\ntibt:pasubjoined 0FA4 Mn\ntibt:phasubjoined 0FA5 Mn\ntibt:basubjoined 0FA6 Mn\ntibt:bhasubjoined 0FA7 Mn\ntibt:masubjoined 0FA8 Mn\ntibt:tsasubjoined 0FA9 Mn\ntibt:tshasubjoined 0FAA Mn\ntibt:dzasubjoined 0FAB Mn\ntibt:dzhasubjoined 0FAC Mn\ntibt:wasubjoined 0FAD Mn\ntibt:zhasubjoined 0FAE Mn\ntibt:zasubjoined 0FAF Mn\ntibt:subjoinedAA 0FB0 Mn\ntibt:yasubjoined 0FB1 Mn\ntibt:rasubjoined 0FB2 Mn\ntibt:lasubjoined 0FB3 Mn\ntibt:shasubjoined 0FB4 Mn\ntibt:ssasubjoined 0FB5 Mn\ntibt:sasubjoined 0FB6 Mn\ntibt:hasubjoined 0FB7 Mn\ntibt:asubjoined 0FB8 Mn\ntibt:kssasubjoined 0FB9 Mn\ntibt:wasubjoinedfixed 0FBA Mn\ntibt:yasubjoinedfixed 0FBB Mn\ntibt:rasubjoinedfixed 0FBC Mn\ntibt:kurukha 0FBE So\ntibt:kurukhabzhimigcan 0FBF So\ntibt:heavybeatcantillationsign 0FC0 So\ntibt:lightbeatcantillationsign 0FC1 So\ntibt:cangteucantillationsign 0FC2 So\ntibt:sbubchalcantillationsign 0FC3 So\ntibt:drilbusymbol 0FC4 So\ntibt:rdorjesymbol 0FC5 So\ntibt:padmagdansymbol 0FC6 Mn\ntibt:rdorjergyagramsymbol 0FC7 So\ntibt:phurpasymbol 0FC8 So\ntibt:norbusymbol 0FC9 So\ntibt:norbunyiskhyilsymbol 0FCA So\ntibt:norbugsumkhyilsymbol 0FCB So\ntibt:norbubzhikhyilsymbol 0FCC So\ntibt:rdelnagrdeldkarsign 0FCE So\ntibt:rdelnaggsumsign 0FCF So\ntibt:bskashoggimgorgyanmark 0FD0 Po\ntibt:mnyamyiggimgorgyanmark 0FD1 Po\ntibt:nyistshegmark 0FD2 Po\ntibt:brdarnyingyigmgomdunmainitialmark 0FD3 Po\ntibt:brdarnyingyigmgosgabmaclosingmark 0FD4 Po\ntibt:svastiright 0FD5 So\ntibt:svastileft 0FD6 So\ntibt:svastirightdot 0FD7 So\ntibt:svastileftdot 0FD8 So\ntibt:leadingmchanrtagsmark 0FD9 Po\ntibt:trailingmchanrtagsmark 0FDA Po\n# Georgian\nAnGeok 10A0 Lu\nBanGeok 10A1 Lu\nGanGeok 10A2 Lu\nDonGeok 10A3 Lu\nEnGeok 10A4 Lu\nVinGeok 10A5 Lu\nZenGeok 10A6 Lu\nTanGeok 10A7 Lu\nInGeok 10A8 Lu\nKanGeok 10A9 Lu\nLasGeok 10AA Lu\nManGeok 10AB Lu\nNarGeok 10AC Lu\nOnGeok 10AD Lu\nParGeok 10AE Lu\nZharGeok 10AF Lu\nRaeGeok 10B0 Lu\nSanGeok 10B1 Lu\nTarGeok 10B2 Lu\nUnGeok 10B3 Lu\nPharGeok 10B4 Lu\nKharGeok 10B5 Lu\nGhanGeok 10B6 Lu\nQarGeok 10B7 Lu\nShinGeok 10B8 Lu\nChinGeok 10B9 Lu\nCanGeok 10BA Lu\nJilGeok 10BB Lu\nCilGeok 10BC Lu\nCharGeok 10BD Lu\nXanGeok 10BE Lu\nJhanGeok 10BF Lu\nHaeGeok 10C0 Lu\nHeGeok 10C1 Lu\nHieGeok 10C2 Lu\nWeGeok 10C3 Lu\nHarGeok 10C4 Lu\nHoeGeok 10C5 Lu\nYnGeok 10C7 Lu\nAenGeok 10CD Lu\nanGeor 10D0 Ll\nbanGeor 10D1 Ll\nganGeor 10D2 Ll\ndonGeor 10D3 Ll\nenGeor 10D4 Ll\nvinGeor 10D5 Ll\nzenGeor 10D6 Ll\ntanGeor 10D7 Ll\ninGeor 10D8 Ll\nkanGeor 10D9 Ll\nlasGeor 10DA Ll\nmanGeor 10DB Ll\nnarGeor 10DC Ll\nonGeor 10DD Ll\nparGeor 10DE Ll\nzharGeor 10DF Ll\nraeGeor 10E0 Ll\nsanGeor 10E1 Ll\ntarGeor 10E2 Ll\nunGeor 10E3 Ll\npharGeor 10E4 Ll\nkharGeor 10E5 Ll\nghanGeor 10E6 Ll\nqarGeor 10E7 Ll\nshinGeor 10E8 Ll\nchinGeor 10E9 Ll\ncanGeor 10EA Ll\njilGeor 10EB Ll\ncilGeor 10EC Ll\ncharGeor 10ED Ll\nxanGeor 10EE Ll\njhanGeor 10EF Ll\nhaeGeor 10F0 Ll\nheGeor 10F1 Ll\nhieGeor 10F2 Ll\nweGeor 10F3 Ll\nharGeor 10F4 Ll\nhoeGeor 10F5 Ll\nfiGeor 10F6 Ll\nynGeor 10F7 Ll\nelifiGeor 10F8 Ll\nturnedganGeor 10F9 Ll\nainGeor 10FA Ll\ngeor:paragraphseparator 10FB Po\nnarmodGeor 10FC Lm\naenGeor 10FD Ll\nhardsignGeor 10FE Ll\nlabialsignGeor 10FF Ll\n# Hangul Jamo\nko:kiyeokchoseong 1100 Lo\nko:ssangkiyeokchoseong 1101 Lo\nko:nieunchoseong 1102 Lo\nko:tikeutchoseong 1103 Lo\nko:ssangtikeutchoseong 1104 Lo\nko:rieulchoseong 1105 Lo\nko:mieumchoseong 1106 Lo\nko:pieupchoseong 1107 Lo\nko:ssangpieupchoseong 1108 Lo\nko:sioschoseong 1109 Lo\nko:ssangsioschoseong 110A Lo\nko:ieungchoseong 110B Lo\nko:cieucchoseong 110C Lo\nko:ssangcieucchoseong 110D Lo\nko:chieuchchoseong 110E Lo\nko:khieukhchoseong 110F Lo\nko:thieuthchoseong 1110 Lo\nko:phieuphchoseong 1111 Lo\nko:hieuhchoseong 1112 Lo\nko:nieunkiyeokchoseong 1113 Lo\nko:ssangnieunchoseong 1114 Lo\nko:nieuntikeutchoseong 1115 Lo\nko:nieunpieupchoseong 1116 Lo\nko:tikeutkiyeokchoseong 1117 Lo\nko:rieulnieunchoseong 1118 Lo\nko:ssangrieulchoseong 1119 Lo\nko:rieulhieuhchoseong 111A Lo\nko:kapyeounrieulchoseong 111B Lo\nko:mieumpieupchoseong 111C Lo\nko:kapyeounmieumchoseong 111D Lo\nko:pieupkiyeokchoseong 111E Lo\nko:pieupnieunchoseong 111F Lo\nko:pieuptikeutchoseong 1120 Lo\nko:pieupsioschoseong 1121 Lo\nko:pieupsioskiyeokchoseong 1122 Lo\nko:pieupsiostikeutchoseong 1123 Lo\nko:pieupsiospieupchoseong 1124 Lo\nko:pieupssangsioschoseong 1125 Lo\nko:pieupsioscieucchoseong 1126 Lo\nko:pieupcieucchoseong 1127 Lo\nko:pieupchieuchchoseong 1128 Lo\nko:pieupthieuthchoseong 1129 Lo\nko:pieupphieuphchoseong 112A Lo\nko:kapyeounpieupchoseong 112B Lo\nko:kapyeounssangpieupchoseong 112C Lo\nko:sioskiyeokchoseong 112D Lo\nko:siosnieunchoseong 112E Lo\nko:siostikeutchoseong 112F Lo\nko:siosrieulchoseong 1130 Lo\nko:siosmieumchoseong 1131 Lo\nko:siospieupchoseong 1132 Lo\nko:siospieupkiyeokchoseong 1133 Lo\nko:siosssangsioschoseong 1134 Lo\nko:siosieungchoseong 1135 Lo\nko:sioscieucchoseong 1136 Lo\nko:sioschieuchchoseong 1137 Lo\nko:sioskhieukhchoseong 1138 Lo\nko:siosthieuthchoseong 1139 Lo\nko:siosphieuphchoseong 113A Lo\nko:sioshieuhchoseong 113B Lo\nko:chitueumsioschoseong 113C Lo\nko:chitueumssangsioschoseong 113D Lo\nko:ceongchieumsioschoseong 113E Lo\nko:ceongchieumssangsioschoseong 113F Lo\nko:pansioschoseong 1140 Lo\nko:ieungkiyeokchoseong 1141 Lo\nko:ieungtikeutchoseong 1142 Lo\nko:ieungmieumchoseong 1143 Lo\nko:ieungpieupchoseong 1144 Lo\nko:ieungsioschoseong 1145 Lo\nko:ieungpansioschoseong 1146 Lo\nko:ssangieungchoseong 1147 Lo\nko:ieungcieucchoseong 1148 Lo\nko:ieungchieuchchoseong 1149 Lo\nko:ieungthieuthchoseong 114A Lo\nko:ieungphieuphchoseong 114B Lo\nko:yesieungchoseong 114C Lo\nko:cieucieungchoseong 114D Lo\nko:chitueumcieucchoseong 114E Lo\nko:chitueumssangcieucchoseong 114F Lo\nko:ceongchieumcieucchoseong 1150 Lo\nko:ceongchieumssangcieucchoseong 1151 Lo\nko:chieuchkhieukhchoseong 1152 Lo\nko:chieuchhieuhchoseong 1153 Lo\nko:chitueumchieuchchoseong 1154 Lo\nko:ceongchieumchieuchchoseong 1155 Lo\nko:phieuphpieupchoseong 1156 Lo\nko:kapyeounphieuphchoseong 1157 Lo\nko:ssanghieuhchoseong 1158 Lo\nko:yeorinhieuhchoseong 1159 Lo\nko:kiyeoktikeutchoseong 115A Lo\nko:nieunsioschoseong 115B Lo\nko:nieuncieucchoseong 115C Lo\nko:nieunhieuhchoseong 115D Lo\nko:tikeutrieulchoseong 115E Lo\nko:fillerchoseong 115F Lo\nko:fillerjungseong 1160 Lo\nko:ajungseong 1161 Lo\nko:aejungseong 1162 Lo\nko:yajungseong 1163 Lo\nko:yaejungseong 1164 Lo\nko:eojungseong 1165 Lo\nko:ejungseong 1166 Lo\nko:yeojungseong 1167 Lo\nko:yejungseong 1168 Lo\nko:ojungseong 1169 Lo\nko:wajungseong 116A Lo\nko:waejungseong 116B Lo\nko:oejungseong 116C Lo\nko:yojungseong 116D Lo\nko:ujungseong 116E Lo\nko:weojungseong 116F Lo\nko:wejungseong 1170 Lo\nko:wijungseong 1171 Lo\nko:yujungseong 1172 Lo\nko:eujungseong 1173 Lo\nko:yijungseong 1174 Lo\nko:ijungseong 1175 Lo\nko:aojungseong 1176 Lo\nko:aujungseong 1177 Lo\nko:yaojungseong 1178 Lo\nko:yayojungseong 1179 Lo\nko:eoojungseong 117A Lo\nko:eoujungseong 117B Lo\nko:eo_eujungseong 117C Lo\nko:yeoojungseong 117D Lo\nko:yeoujungseong 117E Lo\nko:o_eojungseong 117F Lo\nko:o_ejungseong 1180 Lo\nko:oyejungseong 1181 Lo\nko:oojungseong 1182 Lo\nko:oujungseong 1183 Lo\nko:yoyajungseong 1184 Lo\nko:yoyaejungseong 1185 Lo\nko:yoyeojungseong 1186 Lo\nko:yoojungseong 1187 Lo\nko:yoijungseong 1188 Lo\nko:uajungseong 1189 Lo\nko:uaejungseong 118A Lo\nko:ueo_eujungseong 118B Lo\nko:uyejungseong 118C Lo\nko:uujungseong 118D Lo\nko:yuajungseong 118E Lo\nko:yueojungseong 118F Lo\nko:yuejungseong 1190 Lo\nko:yuyeojungseong 1191 Lo\nko:yuyejungseong 1192 Lo\nko:yuujungseong 1193 Lo\nko:yuijungseong 1194 Lo\nko:euujungseong 1195 Lo\nko:eueujungseong 1196 Lo\nko:yiujungseong 1197 Lo\nko:iajungseong 1198 Lo\nko:iyajungseong 1199 Lo\nko:iojungseong 119A Lo\nko:iujungseong 119B Lo\nko:ieujungseong 119C Lo\nko:iaraeajungseong 119D Lo\nko:araeajungseong 119E Lo\nko:araeaeojungseong 119F Lo\nko:araeaujungseong 11A0 Lo\nko:araeaijungseong 11A1 Lo\nko:ssangaraeajungseong 11A2 Lo\nko:aeujungseong 11A3 Lo\nko:yaujungseong 11A4 Lo\nko:yeoyajungseong 11A5 Lo\nko:oyajungseong 11A6 Lo\nko:oyaejungseong 11A7 Lo\nko:kiyeokjongseong 11A8 Lo\nko:ssangkiyeokjongseong 11A9 Lo\nko:kiyeoksiosjongseong 11AA Lo\nko:nieunjongseong 11AB Lo\nko:nieuncieucjongseong 11AC Lo\nko:nieunhieuhjongseong 11AD Lo\nko:tikeutjongseong 11AE Lo\nko:rieuljongseong 11AF Lo\nko:rieulkiyeokjongseong 11B0 Lo\nko:rieulmieumjongseong 11B1 Lo\nko:rieulpieupjongseong 11B2 Lo\nko:rieulsiosjongseong 11B3 Lo\nko:rieulthieuthjongseong 11B4 Lo\nko:rieulphieuphjongseong 11B5 Lo\nko:rieulhieuhjongseong 11B6 Lo\nko:mieumjongseong 11B7 Lo\nko:pieupjongseong 11B8 Lo\nko:pieupsiosjongseong 11B9 Lo\nko:siosjongseong 11BA Lo\nko:ssangsiosjongseong 11BB Lo\nko:ieungjongseong 11BC Lo\nko:cieucjongseong 11BD Lo\nko:chieuchjongseong 11BE Lo\nko:khieukhjongseong 11BF Lo\nko:thieuthjongseong 11C0 Lo\nko:phieuphjongseong 11C1 Lo\nko:hieuhjongseong 11C2 Lo\nko:kiyeokrieuljongseong 11C3 Lo\nko:kiyeoksioskiyeokjongseong 11C4 Lo\nko:nieunkiyeokjongseong 11C5 Lo\nko:nieuntikeutjongseong 11C6 Lo\nko:nieunsiosjongseong 11C7 Lo\nko:nieunpansiosjongseong 11C8 Lo\nko:nieunthieuthjongseong 11C9 Lo\nko:tikeutkiyeokjongseong 11CA Lo\nko:tikeutrieuljongseong 11CB Lo\nko:rieulkiyeoksiosjongseong 11CC Lo\nko:rieulnieunjongseong 11CD Lo\nko:rieultikeutjongseong 11CE Lo\nko:rieultikeuthieuhjongseong 11CF Lo\nko:ssangrieuljongseong 11D0 Lo\nko:rieulmieumkiyeokjongseong 11D1 Lo\nko:rieulmieumsiosjongseong 11D2 Lo\nko:rieulpieupsiosjongseong 11D3 Lo\nko:rieulpieuphieuhjongseong 11D4 Lo\nko:rieulkapyeounpieupjongseong 11D5 Lo\nko:rieulssangsiosjongseong 11D6 Lo\nko:rieulpansiosjongseong 11D7 Lo\nko:rieulkhieukhjongseong 11D8 Lo\nko:rieulyeorinhieuhjongseong 11D9 Lo\nko:mieumkiyeokjongseong 11DA Lo\nko:mieumrieuljongseong 11DB Lo\nko:mieumpieupjongseong 11DC Lo\nko:mieumsiosjongseong 11DD Lo\nko:mieumssangsiosjongseong 11DE Lo\nko:mieumpansiosjongseong 11DF Lo\nko:mieumchieuchjongseong 11E0 Lo\nko:mieumhieuhjongseong 11E1 Lo\nko:kapyeounmieumjongseong 11E2 Lo\nko:pieuprieuljongseong 11E3 Lo\nko:pieupphieuphjongseong 11E4 Lo\nko:pieuphieuhjongseong 11E5 Lo\nko:kapyeounpieupjongseong 11E6 Lo\nko:sioskiyeokjongseong 11E7 Lo\nko:siostikeutjongseong 11E8 Lo\nko:siosrieuljongseong 11E9 Lo\nko:siospieupjongseong 11EA Lo\nko:pansiosjongseong 11EB Lo\nko:ieungkiyeokjongseong 11EC Lo\nko:ieungssangkiyeokjongseong 11ED Lo\nko:ssangieungjongseong 11EE Lo\nko:ieungkhieukhjongseong 11EF Lo\nko:yesieungjongseong 11F0 Lo\nko:yesieungsiosjongseong 11F1 Lo\nko:yesieungpansiosjongseong 11F2 Lo\nko:phieuphpieupjongseong 11F3 Lo\nko:kapyeounphieuphjongseong 11F4 Lo\nko:hieuhnieunjongseong 11F5 Lo\nko:hieuhrieuljongseong 11F6 Lo\nko:hieuhmieumjongseong 11F7 Lo\nko:hieuhpieupjongseong 11F8 Lo\nko:yeorinhieuhjongseong 11F9 Lo\nko:kiyeoknieunjongseong 11FA Lo\nko:kiyeokpieupjongseong 11FB Lo\nko:kiyeokchieuchjongseong 11FC Lo\nko:kiyeokkhieukhjongseong 11FD Lo\nko:kiyeokhieuhjongseong 11FE Lo\nko:ssangnieunjongseong 11FF Lo\n# Ethiopic\nethi:ha 1200 Lo\nethi:hu 1201 Lo\nethi:hi 1202 Lo\nethi:haa 1203 Lo\nethi:hee 1204 Lo\nethi:he 1205 Lo\nethi:ho 1206 Lo\nethi:hoa 1207 Lo\nethi:la 1208 Lo\nethi:lu 1209 Lo\nethi:li 120A Lo\nethi:laa 120B Lo\nethi:lee 120C Lo\nethi:le 120D Lo\nethi:lo 120E Lo\nethi:lwa 120F Lo\nethi:hha 1210 Lo\nethi:hhu 1211 Lo\nethi:hhi 1212 Lo\nethi:hhaa 1213 Lo\nethi:hhee 1214 Lo\nethi:hhe 1215 Lo\nethi:hho 1216 Lo\nethi:hhwa 1217 Lo\nethi:ma 1218 Lo\nethi:mu 1219 Lo\nethi:mi 121A Lo\nethi:maa 121B Lo\nethi:mee 121C Lo\nethi:me 121D Lo\nethi:mo 121E Lo\nethi:mwa 121F Lo\nethi:sza 1220 Lo\nethi:szu 1221 Lo\nethi:szi 1222 Lo\nethi:szaa 1223 Lo\nethi:szee 1224 Lo\nethi:sze 1225 Lo\nethi:szo 1226 Lo\nethi:szwa 1227 Lo\nethi:ra 1228 Lo\nethi:ru 1229 Lo\nethi:ri 122A Lo\nethi:raa 122B Lo\nethi:ree 122C Lo\nethi:re 122D Lo\nethi:ro 122E Lo\nethi:rwa 122F Lo\nethi:sa 1230 Lo\nethi:su 1231 Lo\nethi:si 1232 Lo\nethi:saa 1233 Lo\nethi:see 1234 Lo\nethi:se 1235 Lo\nethi:so 1236 Lo\nethi:swa 1237 Lo\nethi:sha 1238 Lo\nethi:shu 1239 Lo\nethi:shi 123A Lo\nethi:shaa 123B Lo\nethi:shee 123C Lo\nethi:she 123D Lo\nethi:sho 123E Lo\nethi:shwa 123F Lo\nethi:qa 1240 Lo\nethi:qu 1241 Lo\nethi:qi 1242 Lo\nethi:qaa 1243 Lo\nethi:qee 1244 Lo\nethi:qe 1245 Lo\nethi:qo 1246 Lo\nethi:qoa 1247 Lo\nethi:qwa 1248 Lo\nethi:qwi 124A Lo\nethi:qwaa 124B Lo\nethi:qwee 124C Lo\nethi:qwe 124D Lo\nethi:qha 1250 Lo\nethi:qhu 1251 Lo\nethi:qhi 1252 Lo\nethi:qhaa 1253 Lo\nethi:qhee 1254 Lo\nethi:qhe 1255 Lo\nethi:qho 1256 Lo\nethi:qhwa 1258 Lo\nethi:qhwi 125A Lo\nethi:qhwaa 125B Lo\nethi:qhwee 125C Lo\nethi:qhwe 125D Lo\nethi:ba 1260 Lo\nethi:bu 1261 Lo\nethi:bi 1262 Lo\nethi:baa 1263 Lo\nethi:bee 1264 Lo\nethi:be 1265 Lo\nethi:bo 1266 Lo\nethi:bwa 1267 Lo\nethi:va 1268 Lo\nethi:vu 1269 Lo\nethi:vi 126A Lo\nethi:vaa 126B Lo\nethi:vee 126C Lo\nethi:ve 126D Lo\nethi:vo 126E Lo\nethi:vwa 126F Lo\nethi:ta 1270 Lo\nethi:tu 1271 Lo\nethi:ti 1272 Lo\nethi:taa 1273 Lo\nethi:tee 1274 Lo\nethi:te 1275 Lo\nethi:to 1276 Lo\nethi:twa 1277 Lo\nethi:ca 1278 Lo\nethi:cu 1279 Lo\nethi:ci 127A Lo\nethi:caa 127B Lo\nethi:cee 127C Lo\nethi:ce 127D Lo\nethi:co 127E Lo\nethi:cwa 127F Lo\nethi:xa 1280 Lo\nethi:xu 1281 Lo\nethi:xi 1282 Lo\nethi:xaa 1283 Lo\nethi:xee 1284 Lo\nethi:xe 1285 Lo\nethi:xo 1286 Lo\nethi:xoa 1287 Lo\nethi:xwa 1288 Lo\nethi:xwi 128A Lo\nethi:xwaa 128B Lo\nethi:xwee 128C Lo\nethi:xwe 128D Lo\nethi:na 1290 Lo\nethi:nu 1291 Lo\nethi:ni 1292 Lo\nethi:naa 1293 Lo\nethi:nee 1294 Lo\nethi:ne 1295 Lo\nethi:no 1296 Lo\nethi:nwa 1297 Lo\nethi:nya 1298 Lo\nethi:nyu 1299 Lo\nethi:nyi 129A Lo\nethi:nyaa 129B Lo\nethi:nyee 129C Lo\nethi:nye 129D Lo\nethi:nyo 129E Lo\nethi:nywa 129F Lo\nethi:aglottal 12A0 Lo\nethi:uglottal 12A1 Lo\nethi:iglottal 12A2 Lo\nethi:aaglottal 12A3 Lo\nethi:eeglottal 12A4 Lo\nethi:eglottal 12A5 Lo\nethi:oglottal 12A6 Lo\nethi:waglottal 12A7 Lo\nethi:ka 12A8 Lo\nethi:ku 12A9 Lo\nethi:ki 12AA Lo\nethi:kaa 12AB Lo\nethi:kee 12AC Lo\nethi:ke 12AD Lo\nethi:ko 12AE Lo\nethi:koa 12AF Lo\nethi:kwa 12B0 Lo\nethi:kwi 12B2 Lo\nethi:kwaa 12B3 Lo\nethi:kwee 12B4 Lo\nethi:kwe 12B5 Lo\nethi:kxa 12B8 Lo\nethi:kxu 12B9 Lo\nethi:kxi 12BA Lo\nethi:kxaa 12BB Lo\nethi:kxee 12BC Lo\nethi:kxe 12BD Lo\nethi:kxo 12BE Lo\nethi:kxwa 12C0 Lo\nethi:kxwi 12C2 Lo\nethi:kxwaa 12C3 Lo\nethi:kxwee 12C4 Lo\nethi:kxwe 12C5 Lo\nethi:wa 12C8 Lo\nethi:wu 12C9 Lo\nethi:wi 12CA Lo\nethi:waa 12CB Lo\nethi:wee 12CC Lo\nethi:we 12CD Lo\nethi:wo 12CE Lo\nethi:woa 12CF Lo\nethi:pharyngeala 12D0 Lo\nethi:pharyngealu 12D1 Lo\nethi:pharyngeali 12D2 Lo\nethi:pharyngealaa 12D3 Lo\nethi:pharyngealee 12D4 Lo\nethi:pharyngeale 12D5 Lo\nethi:pharyngealo 12D6 Lo\nethi:za 12D8 Lo\nethi:zu 12D9 Lo\nethi:zi 12DA Lo\nethi:zaa 12DB Lo\nethi:zee 12DC Lo\nethi:ze 12DD Lo\nethi:zo 12DE Lo\nethi:zwa 12DF Lo\nethi:zha 12E0 Lo\nethi:zhu 12E1 Lo\nethi:zhi 12E2 Lo\nethi:zhaa 12E3 Lo\nethi:zhee 12E4 Lo\nethi:zhe 12E5 Lo\nethi:zho 12E6 Lo\nethi:zhwa 12E7 Lo\nethi:ya 12E8 Lo\nethi:yu 12E9 Lo\nethi:yi 12EA Lo\nethi:yaa 12EB Lo\nethi:yee 12EC Lo\nethi:ye 12ED Lo\nethi:yo 12EE Lo\nethi:yoa 12EF Lo\nethi:da 12F0 Lo\nethi:du 12F1 Lo\nethi:di 12F2 Lo\nethi:daa 12F3 Lo\nethi:dee 12F4 Lo\nethi:de 12F5 Lo\nethi:do 12F6 Lo\nethi:dwa 12F7 Lo\nethi:dda 12F8 Lo\nethi:ddu 12F9 Lo\nethi:ddi 12FA Lo\nethi:ddaa 12FB Lo\nethi:ddee 12FC Lo\nethi:dde 12FD Lo\nethi:ddo 12FE Lo\nethi:ddwa 12FF Lo\nethi:ja 1300 Lo\nethi:ju 1301 Lo\nethi:ji 1302 Lo\nethi:jaa 1303 Lo\nethi:jee 1304 Lo\nethi:je 1305 Lo\nethi:jo 1306 Lo\nethi:jwa 1307 Lo\nethi:ga 1308 Lo\nethi:gu 1309 Lo\nethi:gi 130A Lo\nethi:gaa 130B Lo\nethi:gee 130C Lo\nethi:ge 130D Lo\nethi:go 130E Lo\nethi:goa 130F Lo\nethi:gwa 1310 Lo\nethi:gwi 1312 Lo\nethi:gwaa 1313 Lo\nethi:gwee 1314 Lo\nethi:gwe 1315 Lo\nethi:gga 1318 Lo\nethi:ggu 1319 Lo\nethi:ggi 131A Lo\nethi:ggaa 131B Lo\nethi:ggee 131C Lo\nethi:gge 131D Lo\nethi:ggo 131E Lo\nethi:ggwaa 131F Lo\nethi:tha 1320 Lo\nethi:thu 1321 Lo\nethi:thi 1322 Lo\nethi:thaa 1323 Lo\nethi:thee 1324 Lo\nethi:the 1325 Lo\nethi:tho 1326 Lo\nethi:thwa 1327 Lo\nethi:cha 1328 Lo\nethi:chu 1329 Lo\nethi:chi 132A Lo\nethi:chaa 132B Lo\nethi:chee 132C Lo\nethi:che 132D Lo\nethi:cho 132E Lo\nethi:chwa 132F Lo\nethi:pha 1330 Lo\nethi:phu 1331 Lo\nethi:phi 1332 Lo\nethi:phaa 1333 Lo\nethi:phee 1334 Lo\nethi:phe 1335 Lo\nethi:pho 1336 Lo\nethi:phwa 1337 Lo\nethi:tsa 1338 Lo\nethi:tsu 1339 Lo\nethi:tsi 133A Lo\nethi:tsaa 133B Lo\nethi:tsee 133C Lo\nethi:tse 133D Lo\nethi:tso 133E Lo\nethi:tswa 133F Lo\nethi:tza 1340 Lo\nethi:tzu 1341 Lo\nethi:tzi 1342 Lo\nethi:tzaa 1343 Lo\nethi:tzee 1344 Lo\nethi:tze 1345 Lo\nethi:tzo 1346 Lo\nethi:tzoa 1347 Lo\nethi:fa 1348 Lo\nethi:fu 1349 Lo\nethi:fi 134A Lo\nethi:faa 134B Lo\nethi:fee 134C Lo\nethi:fe 134D Lo\nethi:fo 134E Lo\nethi:fwa 134F Lo\nethi:pa 1350 Lo\nethi:pu 1351 Lo\nethi:pi 1352 Lo\nethi:paa 1353 Lo\nethi:pee 1354 Lo\nethi:pe 1355 Lo\nethi:po 1356 Lo\nethi:pwa 1357 Lo\nethi:rya 1358 Lo\nethi:mya 1359 Lo\nethi:fya 135A Lo\nethi:geminationandvowellengthmarkcmb 135D Mn\nethi:vowellengthmarkcmb 135E Mn\nethi:geminationmarkcmb 135F Mn\nethi:sectionmark 1360 Po\nethi:wordspace 1361 Po\nethi:fullstop 1362 Po\nethi:comma 1363 Po\nethi:semicolon 1364 Po\nethi:colon 1365 Po\nethi:prefacecolon 1366 Po\nethi:questionmark 1367 Po\nethi:paragraphseparator 1368 Po\nethi:one 1369 No\nethi:two 136A No\nethi:three 136B No\nethi:four 136C No\nethi:five 136D No\nethi:six 136E No\nethi:seven 136F No\nethi:eight 1370 No\nethi:nine 1371 No\nethi:ten 1372 No\nethi:twenty 1373 No\nethi:thirty 1374 No\nethi:forty 1375 No\nethi:fifty 1376 No\nethi:sixty 1377 No\nethi:seventy 1378 No\nethi:eighty 1379 No\nethi:ninety 137A No\nethi:hundred 137B No\nethi:tenthousand 137C No\n# Cherokee\ncher:a 13A0 Lu\ncher:e 13A1 Lu\ncher:i 13A2 Lu\ncher:o 13A3 Lu\ncher:u 13A4 Lu\ncher:v 13A5 Lu\ncher:ga 13A6 Lu\ncher:ka 13A7 Lu\ncher:ge 13A8 Lu\ncher:gi 13A9 Lu\ncher:go 13AA Lu\ncher:gu 13AB Lu\ncher:gv 13AC Lu\ncher:ha 13AD Lu\ncher:he 13AE Lu\ncher:hi 13AF Lu\ncher:ho 13B0 Lu\ncher:hu 13B1 Lu\ncher:hv 13B2 Lu\ncher:la 13B3 Lu\ncher:le 13B4 Lu\ncher:li 13B5 Lu\ncher:lo 13B6 Lu\ncher:lu 13B7 Lu\ncher:lv 13B8 Lu\ncher:ma 13B9 Lu\ncher:me 13BA Lu\ncher:mi 13BB Lu\ncher:mo 13BC Lu\ncher:mu 13BD Lu\ncher:na 13BE Lu\ncher:hna 13BF Lu\ncher:nah 13C0 Lu\ncher:ne 13C1 Lu\ncher:ni 13C2 Lu\ncher:no 13C3 Lu\ncher:nu 13C4 Lu\ncher:nv 13C5 Lu\ncher:qua 13C6 Lu\ncher:que 13C7 Lu\ncher:qui 13C8 Lu\ncher:quo 13C9 Lu\ncher:quu 13CA Lu\ncher:quv 13CB Lu\ncher:sa 13CC Lu\ncher:s 13CD Lu\ncher:se 13CE Lu\ncher:si 13CF Lu\ncher:so 13D0 Lu\ncher:su 13D1 Lu\ncher:sv 13D2 Lu\ncher:da 13D3 Lu\ncher:ta 13D4 Lu\ncher:de 13D5 Lu\ncher:te 13D6 Lu\ncher:di 13D7 Lu\ncher:ti 13D8 Lu\ncher:do 13D9 Lu\ncher:du 13DA Lu\ncher:dv 13DB Lu\ncher:dla 13DC Lu\ncher:tla 13DD Lu\ncher:tle 13DE Lu\ncher:tli 13DF Lu\ncher:tlo 13E0 Lu\ncher:tlu 13E1 Lu\ncher:tlv 13E2 Lu\ncher:tsa 13E3 Lu\ncher:tse 13E4 Lu\ncher:tsi 13E5 Lu\ncher:tso 13E6 Lu\ncher:tsu 13E7 Lu\ncher:tsv 13E8 Lu\ncher:wa 13E9 Lu\ncher:we 13EA Lu\ncher:wi 13EB Lu\ncher:wo 13EC Lu\ncher:wu 13ED Lu\ncher:wv 13EE Lu\ncher:ya 13EF Lu\ncher:ye 13F0 Lu\ncher:yi 13F1 Lu\ncher:yo 13F2 Lu\ncher:yu 13F3 Lu\ncher:yv 13F4 Lu\ncher:mv 13F5 Lu\ncher:yesmall 13F8 Ll\ncher:yismall 13F9 Ll\ncher:yosmall 13FA Ll\ncher:yusmall 13FB Ll\ncher:yvsmall 13FC Ll\ncher:mvsmall 13FD Ll\n# Runic\nrunr:fehu_feoh_fe_f 16A0 Lo\nrunr:v 16A1 Lo\nrunr:uruz_ur_u 16A2 Lo\nrunr:yr 16A3 Lo\nrunr:y 16A4 Lo\nrunr:w 16A5 Lo\nrunr:thurisaz_thurs_thorn 16A6 Lo\nrunr:eth 16A7 Lo\nrunr:ansuz_a 16A8 Lo\nrunr:os_o 16A9 Lo\nrunr:ac_a 16AA Lo\nrunr:aesc 16AB Lo\nrunr:long_branch_oss_o 16AC Lo\nrunr:short_twig_oss_o 16AD Lo\nrunr:o 16AE Lo\nrunr:oe 16AF Lo\nrunr:on 16B0 Lo\nrunr:raido_rad_reid_r 16B1 Lo\nrunr:kauna 16B2 Lo\nrunr:cen 16B3 Lo\nrunr:kaun_k 16B4 Lo\nrunr:g 16B5 Lo\nrunr:eng 16B6 Lo\nrunr:gebo_gyfu_g 16B7 Lo\nrunr:gar 16B8 Lo\nrunr:wunjo_wynn_w 16B9 Lo\nrunr:haglaz_h 16BA Lo\nrunr:haegl_h 16BB Lo\nrunr:long_branch_hagall_h 16BC Lo\nrunr:short_twig_hagall_h 16BD Lo\nrunr:naudiz_nyd_naud_n 16BE Lo\nrunr:short_twig_naud_n 16BF Lo\nrunr:dotted_n 16C0 Lo\nrunr:isaz_is_iss_i 16C1 Lo\nrunr:e 16C2 Lo\nrunr:jeran_j 16C3 Lo\nrunr:ger 16C4 Lo\nrunr:long_branch_ar_ae 16C5 Lo\nrunr:short_twig_ar_a 16C6 Lo\nrunr:iwaz_eoh 16C7 Lo\nrunr:pertho_peorth_p 16C8 Lo\nrunr:algiz_eolhx 16C9 Lo\nrunr:sowilo_s 16CA Lo\nrunr:sigel_long_branch_sol_s 16CB Lo\nrunr:short_twig_sol_s 16CC Lo\nrunr:c 16CD Lo\nrunr:z 16CE Lo\nrunr:tiwaz_tir_tyr_t 16CF Lo\nrunr:short_twig_tyr_t 16D0 Lo\nrunr:d 16D1 Lo\nrunr:berkanan_beorc_bjarkan_b 16D2 Lo\nrunr:short_twig_bjarkan_b 16D3 Lo\nrunr:dotted_p 16D4 Lo\nrunr:open_p 16D5 Lo\nrunr:ehwaz_eh_e 16D6 Lo\nrunr:mannaz_man_m 16D7 Lo\nrunr:long_branch_madr_m 16D8 Lo\nrunr:short_twig_madr_m 16D9 Lo\nrunr:laukaz_lagu_logr_l 16DA Lo\nrunr:dotted_l 16DB Lo\nrunr:ingwaz 16DC Lo\nrunr:ing 16DD Lo\nrunr:dagaz_daeg_d 16DE Lo\nrunr:othalan_ethel_o 16DF Lo\nrunr:ear 16E0 Lo\nrunr:ior 16E1 Lo\nrunr:cweorth 16E2 Lo\nrunr:calc 16E3 Lo\nrunr:cealc 16E4 Lo\nrunr:stan 16E5 Lo\nrunr:long_branch_yr 16E6 Lo\nrunr:short_twig_yr 16E7 Lo\nrunr:icelandic_yr 16E8 Lo\nrunr:q 16E9 Lo\nrunr:x 16EA Lo\nrunr:single_punctuation 16EB Po\nrunr:multiple_punctuation 16EC Po\nrunr:cross_punctuation 16ED Po\nrunr:arlaug_symbol 16EE Nl\nrunr:tvimadur_symbol 16EF Nl\nrunr:belgthor_symbol 16F0 Nl\nrunr:k 16F1 Lo\nrunr:sh 16F2 Lo\nrunr:oo 16F3 Lo\nrunr:franks_casket_os 16F4 Lo\nrunr:franks_casket_is 16F5 Lo\nrunr:franks_casket_eh 16F6 Lo\nrunr:franks_casket_ac 16F7 Lo\nrunr:franks_casket_aesc 16F8 Lo\n# Mongolian\nmong:birga 1800 Po\nmong:ellipsis 1801 Po\nmong:comma 1802 Po\nmong:period 1803 Po\nmong:colon 1804 Po\nmong:fourdots 1805 Po\nmong:softhyphentodo 1806 Pd\nmong:syllableboundarymarkersibe 1807 Po\nmong:commamanchu 1808 Po\nmong:periodmanchu 1809 Po\nmong:nirugu 180A Po\nmong:freevariationselectorone 180B Mn\nmong:freevariationselectortwo 180C Mn\nmong:freevariationselectorthree 180D Mn\nmong:vowelseparator 180E Cf\nmong:zero 1810 Nd\nmong:one 1811 Nd\nmong:two 1812 Nd\nmong:three 1813 Nd\nmong:four 1814 Nd\nmong:five 1815 Nd\nmong:six 1816 Nd\nmong:seven 1817 Nd\nmong:eight 1818 Nd\nmong:nine 1819 Nd\nmong:a 1820 Lo\nmong:e 1821 Lo\nmong:i 1822 Lo\nmong:o 1823 Lo\nmong:u 1824 Lo\nmong:oe 1825 Lo\nmong:ue 1826 Lo\nmong:ee 1827 Lo\nmong:na 1828 Lo\nmong:ang 1829 Lo\nmong:ba 182A Lo\nmong:pa 182B Lo\nmong:qa 182C Lo\nmong:ga 182D Lo\nmong:ma 182E Lo\nmong:la 182F Lo\nmong:sa 1830 Lo\nmong:sha 1831 Lo\nmong:ta 1832 Lo\nmong:da 1833 Lo\nmong:cha 1834 Lo\nmong:ja 1835 Lo\nmong:ya 1836 Lo\nmong:ra 1837 Lo\nmong:wa 1838 Lo\nmong:fa 1839 Lo\nmong:ka 183A Lo\nmong:kha 183B Lo\nmong:tsa 183C Lo\nmong:za 183D Lo\nmong:haa 183E Lo\nmong:zra 183F Lo\nmong:lha 1840 Lo\nmong:zhi 1841 Lo\nmong:chi 1842 Lo\nmong:longvowelsigntodo 1843 Lm\nmong:etodo 1844 Lo\nmong:itodo 1845 Lo\nmong:otodo 1846 Lo\nmong:utodo 1847 Lo\nmong:oetodo 1848 Lo\nmong:uetodo 1849 Lo\nmong:angtodo 184A Lo\nmong:batodo 184B Lo\nmong:patodo 184C Lo\nmong:qatodo 184D Lo\nmong:gatodo 184E Lo\nmong:matodo 184F Lo\nmong:tatodo 1850 Lo\nmong:datodo 1851 Lo\nmong:chatodo 1852 Lo\nmong:jatodo 1853 Lo\nmong:tsatodo 1854 Lo\nmong:yatodo 1855 Lo\nmong:watodo 1856 Lo\nmong:katodo 1857 Lo\nmong:gaatodo 1858 Lo\nmong:haatodo 1859 Lo\nmong:jiatodo 185A Lo\nmong:niatodo 185B Lo\nmong:dzatodo 185C Lo\nmong:esibe 185D Lo\nmong:isibe 185E Lo\nmong:iysibe 185F Lo\nmong:uesibe 1860 Lo\nmong:usibe 1861 Lo\nmong:angsibe 1862 Lo\nmong:kasibe 1863 Lo\nmong:gasibe 1864 Lo\nmong:hasibe 1865 Lo\nmong:pasibe 1866 Lo\nmong:shasibe 1867 Lo\nmong:tasibe 1868 Lo\nmong:dasibe 1869 Lo\nmong:jasibe 186A Lo\nmong:fasibe 186B Lo\nmong:gaasibe 186C Lo\nmong:haasibe 186D Lo\nmong:tsasibe 186E Lo\nmong:zasibe 186F Lo\nmong:raasibe 1870 Lo\nmong:chasibe 1871 Lo\nmong:zhasibe 1872 Lo\nmong:imanchu 1873 Lo\nmong:kamanchu 1874 Lo\nmong:ramanchu 1875 Lo\nmong:famanchu 1876 Lo\nmong:zhamanchu 1877 Lo\nmong:chawithtwodots 1878 Lo\nmong:anusvaraonealigali 1880 Lo\nmong:visargaonealigali 1881 Lo\nmong:damarualigali 1882 Lo\nmong:ubadamaaligali 1883 Lo\nmong:ubadamaaligaliinverted 1884 Lo\nmong:baludaaligali 1885 Mn\nmong:baludaaligalithree 1886 Mn\nmong:aaligali 1887 Lo\nmong:ialigali 1888 Lo\nmong:kaaligali 1889 Lo\nmong:ngaaligali 188A Lo\nmong:caaligali 188B Lo\nmong:ttaaligali 188C Lo\nmong:tthaaligali 188D Lo\nmong:ddaaligali 188E Lo\nmong:nnaaligali 188F Lo\nmong:taaligali 1890 Lo\nmong:daaligali 1891 Lo\nmong:paaligali 1892 Lo\nmong:phaaligali 1893 Lo\nmong:ssaaligali 1894 Lo\nmong:zhaaligali 1895 Lo\nmong:zaaligali 1896 Lo\nmong:ahaligali 1897 Lo\nmong:tatodoaligali 1898 Lo\nmong:zhatodoaligali 1899 Lo\nmong:ghamanchualigali 189A Lo\nmong:ngamanchualigali 189B Lo\nmong:camanchualigali 189C Lo\nmong:jhamanchualigali 189D Lo\nmong:ttamanchualigali 189E Lo\nmong:ddhamanchualigali 189F Lo\nmong:tamanchualigali 18A0 Lo\nmong:dhamanchualigali 18A1 Lo\nmong:ssamanchualigali 18A2 Lo\nmong:cyamanchualigali 18A3 Lo\nmong:zhamanchualigali 18A4 Lo\nmong:zamanchualigali 18A5 Lo\nmong:ualigalihalf 18A6 Lo\nmong:yaaligalihalf 18A7 Lo\nmong:bhamanchualigali 18A8 Lo\nmong:dagalgaaligali 18A9 Mn\nmong:lhamanchualigali 18AA Lo\n# Georgian Extended\nAnGeor 1C90 Lu\nBanGeor 1C91 Lu\nGanGeor 1C92 Lu\nDonGeor 1C93 Lu\nEnGeor 1C94 Lu\nVinGeor 1C95 Lu\nZenGeor 1C96 Lu\nTanGeor 1C97 Lu\nInGeor 1C98 Lu\nKanGeor 1C99 Lu\nLasGeor 1C9A Lu\nManGeor 1C9B Lu\nNarGeor 1C9C Lu\nOnGeor 1C9D Lu\nParGeor 1C9E Lu\nZharGeor 1C9F Lu\nRaeGeor 1CA0 Lu\nSanGeor 1CA1 Lu\nTarGeor 1CA2 Lu\nUnGeor 1CA3 Lu\nPharGeor 1CA4 Lu\nKharGeor 1CA5 Lu\nGhanGeor 1CA6 Lu\nQarGeor 1CA7 Lu\nShinGeor 1CA8 Lu\nChinGeor 1CA9 Lu\nCanGeor 1CAA Lu\nJilGeor 1CAB Lu\nCilGeor 1CAC Lu\nCharGeor 1CAD Lu\nXanGeor 1CAE Lu\nJhanGeor 1CAF Lu\nHaeGeor 1CB0 Lu\nHeGeor 1CB1 Lu\nHieGeor 1CB2 Lu\nWeGeor 1CB3 Lu\nHarGeor 1CB4 Lu\nHoeGeor 1CB5 Lu\nFiGeor 1CB6 Lu\nYnGeor 1CB7 Lu\nElifiGeor 1CB8 Lu\nTurnedganGeor 1CB9 Lu\nAinGeor 1CBA Lu\nAenGeor 1CBD Lu\nHardsignGeor 1CBE Lu\nLabialsignGeor 1CBF Lu\n# Vedic Extensions\nve:karshanatone 1CD0 Mn\nve:sharatone 1CD1 Mn\nve:prenkhatone 1CD2 Mn\nve:nihshvasasign 1CD3 Po\nve:yajurmidlinesvaritasign 1CD4 Mn\nve:yajuraggravatedindependentsvaritatone 1CD5 Mn\nve:yajurindependentsvaritatone 1CD6 Mn\nve:yajurkathakaindependentsvaritatone 1CD7 Mn\nve:belowtonecandra 1CD8 Mn\nve:yajurkathakaindependentsvaritaschroedertone 1CD9 Mn\nve:svaritatonedbl 1CDA Mn\nve:svaritatonetpl 1CDB Mn\nve:kathakaanudattatone 1CDC Mn\nve:dotbelowtone 1CDD Mn\nve:twodotsbelowtone 1CDE Mn\nve:threedotsbelowtone 1CDF Mn\nve:rigkashmiriindependentsvaritatone 1CE0 Mn\nve:atharvaindependentsvaritatone 1CE1 Mc\nve:visargasvaritasign 1CE2 Mn\nve:visargaudattasign 1CE3 Mn\nve:visargaudattasignreversed 1CE4 Mn\nve:visargaanudattasign 1CE5 Mn\nve:visargaanudattasignreversed 1CE6 Mn\nve:visargaudattawithtailsign 1CE7 Mn\nve:visargaanudattawithtailsign 1CE8 Mn\nve:anusvaraantargomukhasign 1CE9 Lo\nve:anusvarabahirgomukhasign 1CEA Lo\nve:anusvaravamagomukhasign 1CEB Lo\nve:anusvaravamagomukhawithtailsign 1CEC Lo\nve:tiryaksign 1CED Mn\nve:hexiformanusvarasignlong 1CEE Lo\nve:anusvarasignlong 1CEF Lo\nve:rthanganusvarasignlong 1CF0 Lo\nve:anusvaraubhayatomukhasign 1CF1 Lo\nve:ardhavisargasign 1CF2 Lo\nve:rotatedardhavisargasign 1CF3 Lo\nve:abovetonecandra 1CF4 Mn\nve:jihvamuliyasign 1CF5 Lo\nve:upadhmaniyasign 1CF6 Lo\nve:atikramasign 1CF7 Mc\nve:ringabovetone 1CF8 Mn\nve:ringabovetonedbl 1CF9 Mn\nve:anusvaraantargomukhasigndbl 1CFA Lo\n# Phonetic Extensions\nAsmall 1D00 Ll\nAEsmall 1D01 Ll\naeturned 1D02 Ll\nBbarsmall 1D03 Ll\nCsmall 1D04 Ll\nDsmall 1D05 Ll\nEthsmall 1D06 Ll\nEsmall 1D07 Ll\neopenturned 1D08 Ll\niturned 1D09 Ll\nJsmall 1D0A Ll\nKsmall 1D0B Ll\nLsmallstroke 1D0C Ll\nMsmall 1D0D Ll\nNsmallreversed 1D0E Ll\nOsmall 1D0F Ll\nOopensmall 1D10 Ll\nosideways 1D11 Ll\noopensideways 1D12 Ll\nostrokesideways 1D13 Ll\noeturned 1D14 Ll\nOUsmall 1D15 Ll\notophalf 1D16 Ll\nobottomhalf 1D17 Ll\nPsmall 1D18 Ll\nRsmallreversed 1D19 Ll\nRsmallturned 1D1A Ll\nTsmall 1D1B Ll\nUsmall 1D1C Ll\nusideways 1D1D Ll\nusidewaysdieresised 1D1E Ll\nmturnedsideways 1D1F Ll\nVsmall 1D20 Ll\nWsmall 1D21 Ll\nZsmall 1D22 Ll\nEzhsmall 1D23 Ll\nspirantvoicedlaryngeal 1D24 Ll\nphon:ain 1D25 Ll\ngr:Gammasmall 1D26 Ll\ngr:Lambdasmall 1D27 Ll\ngr:Pismall 1D28 Ll\ngr:RsmallHO 1D29 Ll\ngr:Psismall 1D2A Ll\nElsmallcyr 1D2B Ll\nAmod 1D2C Lm\nAemod 1D2D Lm\nBmod 1D2E Lm\nBbarmod 1D2F Lm\nDmod 1D30 Lm\nEmod 1D31 Lm\nEreversedmod 1D32 Lm\nGmod 1D33 Lm\nHmod 1D34 Lm\nImod 1D35 Lm\nJmod 1D36 Lm\nKmod 1D37 Lm\nLmod 1D38 Lm\nMmod 1D39 Lm\nNmod 1D3A Lm\nNreversedmod 1D3B Lm\nOmod 1D3C Lm\nOumod 1D3D Lm\nPmod 1D3E Lm\nRmod 1D3F Lm\nTmod 1D40 Lm\nUmod 1D41 Lm\nWmod 1D42 Lm\namod 1D43 Lm\naturnedmod 1D44 Lm\nalphamod 1D45 Lm\naeturnedmod 1D46 Lm\nbmod 1D47 Lm\ndmod 1D48 Lm\nemod 1D49 Lm\nschwamod 1D4A Lm\neopenmod 1D4B Lm\neopenturnedmod 1D4C Lm\ngmod 1D4D Lm\niturnedmod 1D4E Lm\nkmod 1D4F Lm\nmmod 1D50 Lm\nengmod 1D51 Lm\nomod 1D52 Lm\noopenmod 1D53 Lm\notophalfmod 1D54 Lm\nobottomhalfmod 1D55 Lm\npmod 1D56 Lm\ntmod 1D57 Lm\numod 1D58 Lm\nusidewaysmod 1D59 Lm\nmturnedmod 1D5A Lm\nvmod 1D5B Lm\nainmod 1D5C Lm\nbetamod 1D5D Lm\ngr:gammamod 1D5E Lm\ndeltamod 1D5F Lm\ngr:phimod 1D60 Lm\nchimod 1D61 Lm\nisubscript 1D62 Lm\nrsubscript 1D63 Lm\nusubscript 1D64 Lm\nvsubscript 1D65 Lm\ngr:betasubscript 1D66 Lm\ngr:gammasubscript 1D67 Lm\ngr:rhosubscript 1D68 Lm\ngr:phisubscript 1D69 Lm\ngr:chisubscript 1D6A Lm\nue 1D6B Ll\nbmiddletilde 1D6C Ll\ndmiddletilde 1D6D Ll\nfmiddletilde 1D6E Ll\nmmiddletilde 1D6F Ll\nnmiddletilde 1D70 Ll\npmiddletilde 1D71 Ll\nrmiddletilde 1D72 Ll\nrfishmiddletilde 1D73 Ll\nsmiddletilde 1D74 Ll\ntmiddletilde 1D75 Ll\nzmiddletilde 1D76 Ll\ngturned 1D77 Ll\nENcyrmod 1D78 Lm\nginsular 1D79 Ll\nthstrike 1D7A Ll\nIsmallstroke 1D7B Ll\niotastroke 1D7C Ll\npstroke 1D7D Ll\nUsmallstroke 1D7E Ll\nupsilonstroke 1D7F Ll\n# Phonetic Extensions Supplement\nbpalatalhook 1D80 Ll\ndpalatalhook 1D81 Ll\nfpalatalhook 1D82 Ll\ngpalatalhook 1D83 Ll\nkpalatalhook 1D84 Ll\nlpalatalhook 1D85 Ll\nmpalatalhook 1D86 Ll\nnpalatalhook 1D87 Ll\nppalatalhook 1D88 Ll\nrpalatalhook 1D89 Ll\nspalatalhook 1D8A Ll\neshpalatalhook 1D8B Ll\nvpalatalhook 1D8C Ll\nxpalatalhook 1D8D Ll\nzpalatalhook 1D8E Ll\naretroflexhook 1D8F Ll\nalpharetroflexhook 1D90 Ll\ndhooktail 1D91 Ll\neretroflexhook 1D92 Ll\neopenretroflexhook 1D93 Ll\neopenreversedretroflexhook 1D94 Ll\nschwaretroflexhook 1D95 Ll\niretroflexhook 1D96 Ll\noopenretroflexhook 1D97 Ll\neshretroflexhook 1D98 Ll\nuretroflexhook 1D99 Ll\nezhretroflexhook 1D9A Ll\nalphaturnedmod 1D9B Lm\ncmod 1D9C Lm\nccurlmod 1D9D Lm\nethmod 1D9E Lm\neopenreversedmod 1D9F Lm\nfmod 1DA0 Lm\ndotlessjstrokemod 1DA1 Lm\ngscriptmod 1DA2 Lm\nhturnedmod 1DA3 Lm\nistrokemod 1DA4 Lm\niotamod 1DA5 Lm\nIsmallmod 1DA6 Lm\nIstrokesmallmod 1DA7 Lm\njcrossedtailmod 1DA8 Lm\nlretroflexhookmod 1DA9 Lm\nlpalatalhookmod 1DAA Lm\nLsmallmod 1DAB Lm\nmhookmod 1DAC Lm\nmlonglegturnedmod 1DAD Lm\nnlefthookmod 1DAE Lm\nnretroflexhookmod 1DAF Lm\nNsmallmod 1DB0 Lm\nobarmod 1DB1 Lm\nphimod 1DB2 Lm\nshookmod 1DB3 Lm\neshmod 1DB4 Lm\ntpalatalhookmod 1DB5 Lm\nubarmod 1DB6 Lm\nupsilonmod 1DB7 Lm\nUsmallmod 1DB8 Lm\nvhookmod 1DB9 Lm\nvturnedmod 1DBA Lm\nzmod 1DBB Lm\nzretroflexhookmod 1DBC Lm\nzcurlmod 1DBD Lm\nezhmod 1DBE Lm\nthetamod 1DBF Lm\n# Combining Diacritical Marks Supplement\ndottedgravecmb 1DC0 Mn\ndottedacutecmb 1DC1 Mn\nsnakebelowcmb 1DC2 Mn\nsuspensionmarkcmb 1DC3 Mn\nmacronacutecmb 1DC4 Mn\ngravemacroncmb 1DC5 Mn\nmacrongravecmb 1DC6 Mn\nacutemacroncmb 1DC7 Mn\ngraveacutegravecmb 1DC8 Mn\nacutegraveacutecmb 1DC9 Mn\nrbelowcmb 1DCA Mn\nbrevemacroncmb 1DCB Mn\nmacronbrevecmb 1DCC Mn\ndoubleabovecircumflexcmb 1DCD Mn\naboveogonekcmb 1DCE Mn\nzigzagbelowcmb 1DCF Mn\nisbelowcmb 1DD0 Mn\nurabovecmb 1DD1 Mn\nusabovecmb 1DD2 Mn\naaboveflatcmb 1DD3 Mn\naecmb 1DD4 Mn\naocmb 1DD5 Mn\navcmb 1DD6 Mn\nccedillacmb 1DD7 Mn\ninsulardcmb 1DD8 Mn\nethcmb 1DD9 Mn\ngcmb 1DDA Mn\ngsmallcmb 1DDB Mn\nkcmb 1DDC Mn\nlcmb 1DDD Mn\nlsmallcmb 1DDE Mn\nmsmallcmb 1DDF Mn\nncmb 1DE0 Mn\nnsmallcmb 1DE1 Mn\nrsmallcmb 1DE2 Mn\nrrotundacmb 1DE3 Mn\nscmb 1DE4 Mn\nlongscmb 1DE5 Mn\nzcmb 1DE6 Mn\nalphacmb 1DE7 Mn\nbcmb 1DE8 Mn\nbetacmb 1DE9 Mn\nschwacmb 1DEA Mn\nfcmb 1DEB Mn\nlwithdoublemiddletildecmb 1DEC Mn\nowithlightcentralizationstrokecmb 1DED Mn\npcmb 1DEE Mn\neshcmb 1DEF Mn\nuwithlightcentralizationstrokecmb 1DF0 Mn\nwcmb 1DF1 Mn\nadieresiscmb 1DF2 Mn\nodieresiscmb 1DF3 Mn\nudieresiscmb 1DF4 Mn\nuptackabovecmb 1DF5 Mn\nkavykaaboverightcmb 1DF6 Mn\nkavykaaboveleftcmb 1DF7 Mn\ndotaboveleftcmb 1DF8 Mn\nwideinvertedbridgebelowcmb 1DF9 Mn\ndeletionmarkcmb 1DFB Mn\ndoubleinvertedbelowbrevecmb 1DFC Mn\nalmostequaltobelowcmb 1DFD Mn\nleftarrowheadabovecmb 1DFE Mn\nrightarrowheadanddownarrowheadbelowcmb 1DFF Mn\n# Latin Extended Additional\nAringbelow 1E00 Lu\naringbelow 1E01 Ll\nBdot 1E02 Lu\nbdot 1E03 Ll\nBdotbelow 1E04 Lu\nbdotbelow 1E05 Ll\nBlinebelow 1E06 Lu\nblinebelow 1E07 Ll\nCcedillaacute 1E08 Lu\nccedillaacute 1E09 Ll\nDdot 1E0A Lu\nddot 1E0B Ll\nDdotbelow 1E0C Lu\nddotbelow 1E0D Ll\nDlinebelow 1E0E Lu\ndlinebelow 1E0F Ll\nDcedilla 1E10 Lu\ndcedilla 1E11 Ll\nDcircumflexbelow 1E12 Lu\ndcircumflexbelow 1E13 Ll\nEmacrongrave 1E14 Lu\nemacrongrave 1E15 Ll\nEmacronacute 1E16 Lu\nemacronacute 1E17 Ll\nEcircumflexbelow 1E18 Lu\necircumflexbelow 1E19 Ll\nEtildebelow 1E1A Lu\netildebelow 1E1B Ll\nEcedillabreve 1E1C Lu\necedillabreve 1E1D Ll\nFdot 1E1E Lu\nfdot 1E1F Ll\nGmacron 1E20 Lu\ngmacron 1E21 Ll\nHdot 1E22 Lu\nhdot 1E23 Ll\nHdotbelow 1E24 Lu\nhdotbelow 1E25 Ll\nHdieresis 1E26 Lu\nhdieresis 1E27 Ll\nHcedilla 1E28 Lu\nhcedilla 1E29 Ll\nHbrevebelow 1E2A Lu\nhbrevebelow 1E2B Ll\nItildebelow 1E2C Lu\nitildebelow 1E2D Ll\nIdieresisacute 1E2E Lu\nidieresisacute 1E2F Ll\nKacute 1E30 Lu\nkacute 1E31 Ll\nKdotbelow 1E32 Lu\nkdotbelow 1E33 Ll\nKlinebelow 1E34 Lu\nklinebelow 1E35 Ll\nLdotbelow 1E36 Lu\nldotbelow 1E37 Ll\nLmacrondot 1E38 Lu\nlmacrondot 1E39 Ll\nLlinebelow 1E3A Lu\nllinebelow 1E3B Ll\nLcircumflexbelow 1E3C Lu\nlcircumflexbelow 1E3D Ll\nMacute 1E3E Lu\nmacute 1E3F Ll\nMdot 1E40 Lu\nmdot 1E41 Ll\nMdotbelow 1E42 Lu\nmdotbelow 1E43 Ll\nNdot 1E44 Lu\nndot 1E45 Ll\nNdotbelow 1E46 Lu\nndotbelow 1E47 Ll\nNlinebelow 1E48 Lu\nnlinebelow 1E49 Ll\nNcircumflexbelow 1E4A Lu\nncircumflexbelow 1E4B Ll\nOtildeacute 1E4C Lu\notildeacute 1E4D Ll\nOtildedieresis 1E4E Lu\notildedieresis 1E4F Ll\nOmacrongrave 1E50 Lu\nomacrongrave 1E51 Ll\nOmacronacute 1E52 Lu\nomacronacute 1E53 Ll\nPacute 1E54 Lu\npacute 1E55 Ll\nPdot 1E56 Lu\npdot 1E57 Ll\nRdot 1E58 Lu\nrdot 1E59 Ll\nRdotbelow 1E5A Lu\nrdotbelow 1E5B Ll\nRmacrondot 1E5C Lu\nrmacrondot 1E5D Ll\nRlinebelow 1E5E Lu\nrlinebelow 1E5F Ll\nSdot 1E60 Lu\nsdot 1E61 Ll\nSdotbelow 1E62 Lu\nsdotbelow 1E63 Ll\nSacutedotaccent 1E64 Lu\nsacutedotaccent 1E65 Ll\nScarondot 1E66 Lu\nscarondot 1E67 Ll\nSdotbelowdotabove 1E68 Lu\nsdotbelowdotabove 1E69 Ll\nTdot 1E6A Lu\ntdot 1E6B Ll\nTdotbelow 1E6C Lu\ntdotbelow 1E6D Ll\nTlinebelow 1E6E Lu\ntlinebelow 1E6F Ll\nTcircumflexbelow 1E70 Lu\ntcircumflexbelow 1E71 Ll\nUdieresisbelow 1E72 Lu\nudieresisbelow 1E73 Ll\nUtildebelow 1E74 Lu\nutildebelow 1E75 Ll\nUcircumflexbelow 1E76 Lu\nucircumflexbelow 1E77 Ll\nUtildeacute 1E78 Lu\nutildeacute 1E79 Ll\nUmacrondieresis 1E7A Lu\numacrondieresis 1E7B Ll\nVtilde 1E7C Lu\nvtilde 1E7D Ll\nVdotbelow 1E7E Lu\nvdotbelow 1E7F Ll\nWgrave 1E80 Lu\nwgrave 1E81 Ll\nWacute 1E82 Lu\nwacute 1E83 Ll\nWdieresis 1E84 Lu\nwdieresis 1E85 Ll\nWdot 1E86 Lu\nwdot 1E87 Ll\nWdotbelow 1E88 Lu\nwdotbelow 1E89 Ll\nXdot 1E8A Lu\nxdot 1E8B Ll\nXdieresis 1E8C Lu\nxdieresis 1E8D Ll\nYdot 1E8E Lu\nydot 1E8F Ll\nZcircumflex 1E90 Lu\nzcircumflex 1E91 Ll\nZdotbelow 1E92 Lu\nzdotbelow 1E93 Ll\nZlinebelow 1E94 Lu\nzlinebelow 1E95 Ll\nhlinebelow 1E96 Ll\ntdieresis 1E97 Ll\nwring 1E98 Ll\nyring 1E99 Ll\narighthalfring 1E9A Ll\nlongsdot 1E9B Ll\nlongswithdiagonalstroke 1E9C Ll\nlongswithhighstroke 1E9D Ll\nGermandbls 1E9E Lu\nlt:delta 1E9F Ll\nAdotbelow 1EA0 Lu\nadotbelow 1EA1 Ll\nAhoi 1EA2 Lu\nahoi 1EA3 Ll\nAcircumflexacute 1EA4 Lu\nacircumflexacute 1EA5 Ll\nAcircumflexgrave 1EA6 Lu\nacircumflexgrave 1EA7 Ll\nAcircumflexhoi 1EA8 Lu\nacircumflexhoi 1EA9 Ll\nAcircumflextilde 1EAA Lu\nacircumflextilde 1EAB Ll\nAcircumflexdotbelow 1EAC Lu\nacircumflexdotbelow 1EAD Ll\nAbreveacute 1EAE Lu\nabreveacute 1EAF Ll\nAbrevegrave 1EB0 Lu\nabrevegrave 1EB1 Ll\nAbrevehoi 1EB2 Lu\nabrevehoi 1EB3 Ll\nAbrevetilde 1EB4 Lu\nabrevetilde 1EB5 Ll\nAbrevedotbelow 1EB6 Lu\nabrevedotbelow 1EB7 Ll\nEdotbelow 1EB8 Lu\nedotbelow 1EB9 Ll\nEhoi 1EBA Lu\nehoi 1EBB Ll\nEtilde 1EBC Lu\netilde 1EBD Ll\nEcircumflexacute 1EBE Lu\necircumflexacute 1EBF Ll\nEcircumflexgrave 1EC0 Lu\necircumflexgrave 1EC1 Ll\nEcircumflexhoi 1EC2 Lu\necircumflexhoi 1EC3 Ll\nEcircumflextilde 1EC4 Lu\necircumflextilde 1EC5 Ll\nEcircumflexdotbelow 1EC6 Lu\necircumflexdotbelow 1EC7 Ll\nIhoi 1EC8 Lu\nihoi 1EC9 Ll\nIdotbelow 1ECA Lu\nidotbelow 1ECB Ll\nOdotbelow 1ECC Lu\nodotbelow 1ECD Ll\nOhoi 1ECE Lu\nohoi 1ECF Ll\nOcircumflexacute 1ED0 Lu\nocircumflexacute 1ED1 Ll\nOcircumflexgrave 1ED2 Lu\nocircumflexgrave 1ED3 Ll\nOcircumflexhoi 1ED4 Lu\nocircumflexhoi 1ED5 Ll\nOcircumflextilde 1ED6 Lu\nocircumflextilde 1ED7 Ll\nOcircumflexdotbelow 1ED8 Lu\nocircumflexdotbelow 1ED9 Ll\nOhornacute 1EDA Lu\nohornacute 1EDB Ll\nOhorngrave 1EDC Lu\nohorngrave 1EDD Ll\nOhornhoi 1EDE Lu\nohornhoi 1EDF Ll\nOhorntilde 1EE0 Lu\nohorntilde 1EE1 Ll\nOhorndotbelow 1EE2 Lu\nohorndotbelow 1EE3 Ll\nUdotbelow 1EE4 Lu\nudotbelow 1EE5 Ll\nUhoi 1EE6 Lu\nuhoi 1EE7 Ll\nUhornacute 1EE8 Lu\nuhornacute 1EE9 Ll\nUhorngrave 1EEA Lu\nuhorngrave 1EEB Ll\nUhornhoi 1EEC Lu\nuhornhoi 1EED Ll\nUhorntilde 1EEE Lu\nuhorntilde 1EEF Ll\nUhorndotbelow 1EF0 Lu\nuhorndotbelow 1EF1 Ll\nYgrave 1EF2 Lu\nygrave 1EF3 Ll\nYdotbelow 1EF4 Lu\nydotbelow 1EF5 Ll\nYhoi 1EF6 Lu\nyhoi 1EF7 Ll\nYtilde 1EF8 Lu\nytilde 1EF9 Ll\nLLwelsh 1EFA Lu\nllwelsh 1EFB Ll\nVwelsh 1EFC Lu\nvwelsh 1EFD Ll\nYloop 1EFE Lu\nyloop 1EFF Ll\n# Greek Extended\nalphalenis 1F00 Ll\nalphaasper 1F01 Ll\nalphalenisgrave 1F02 Ll\nalphaaspergrave 1F03 Ll\nalphalenisacute 1F04 Ll\nalphaasperacute 1F05 Ll\nalphalenistilde 1F06 Ll\nalphaaspertilde 1F07 Ll\nAlphalenis 1F08 Lu\nAlphaasper 1F09 Lu\nAlphalenisgrave 1F0A Lu\nAlphaaspergrave 1F0B Lu\nAlphalenisacute 1F0C Lu\nAlphaasperacute 1F0D Lu\nAlphalenistilde 1F0E Lu\nAlphaaspertilde 1F0F Lu\nepsilonlenis 1F10 Ll\nepsilonasper 1F11 Ll\nepsilonlenisgrave 1F12 Ll\nepsilonaspergrave 1F13 Ll\nepsilonlenisacute 1F14 Ll\nepsilonasperacute 1F15 Ll\nEpsilonlenis 1F18 Lu\nEpsilonasper 1F19 Lu\nEpsilonlenisgrave 1F1A Lu\nEpsilonaspergrave 1F1B Lu\nEpsilonlenisacute 1F1C Lu\nEpsilonasperacute 1F1D Lu\netalenis 1F20 Ll\netaasper 1F21 Ll\netalenisgrave 1F22 Ll\netaaspergrave 1F23 Ll\netalenisacute 1F24 Ll\netaasperacute 1F25 Ll\netalenistilde 1F26 Ll\netaaspertilde 1F27 Ll\nEtalenis 1F28 Lu\nEtaasper 1F29 Lu\nEtalenisgrave 1F2A Lu\nEtaaspergrave 1F2B Lu\nEtalenisacute 1F2C Lu\nEtaasperacute 1F2D Lu\nEtalenistilde 1F2E Lu\nEtaaspertilde 1F2F Lu\niotalenis 1F30 Ll\niotaasper 1F31 Ll\niotalenisgrave 1F32 Ll\niotaaspergrave 1F33 Ll\niotalenisacute 1F34 Ll\niotaasperacute 1F35 Ll\niotalenistilde 1F36 Ll\niotaaspertilde 1F37 Ll\nIotalenis 1F38 Lu\nIotaasper 1F39 Lu\nIotalenisgrave 1F3A Lu\nIotaaspergrave 1F3B Lu\nIotalenisacute 1F3C Lu\nIotaasperacute 1F3D Lu\nIotalenistilde 1F3E Lu\nIotaaspertilde 1F3F Lu\nomicronlenis 1F40 Ll\nomicronasper 1F41 Ll\nomicronlenisgrave 1F42 Ll\nomicronaspergrave 1F43 Ll\nomicronlenisacute 1F44 Ll\nomicronasperacute 1F45 Ll\nOmicronlenis 1F48 Lu\nOmicronasper 1F49 Lu\nOmicronlenisgrave 1F4A Lu\nOmicronaspergrave 1F4B Lu\nOmicronlenisacute 1F4C Lu\nOmicronasperacute 1F4D Lu\nupsilonlenis 1F50 Ll\nupsilonasper 1F51 Ll\nupsilonlenisgrave 1F52 Ll\nupsilonaspergrave 1F53 Ll\nupsilonlenisacute 1F54 Ll\nupsilonasperacute 1F55 Ll\nupsilonlenistilde 1F56 Ll\nupsilonaspertilde 1F57 Ll\nUpsilonasper 1F59 Lu\nUpsilonaspergrave 1F5B Lu\nUpsilonasperacute 1F5D Lu\nUpsilonaspertilde 1F5F Lu\nomegalenis 1F60 Ll\nomegaasper 1F61 Ll\nomegalenisgrave 1F62 Ll\nomegaaspergrave 1F63 Ll\nomegalenisacute 1F64 Ll\nomegaasperacute 1F65 Ll\nomegalenistilde 1F66 Ll\nomegaaspertilde 1F67 Ll\nOmegalenis 1F68 Lu\nOmegaasper 1F69 Lu\nOmegalenisgrave 1F6A Lu\nOmegaaspergrave 1F6B Lu\nOmegalenisacute 1F6C Lu\nOmegaasperacute 1F6D Lu\nOmegalenistilde 1F6E Lu\nOmegaaspertilde 1F6F Lu\nalphagrave 1F70 Ll\nalphaacute 1F71 Ll\nepsilongrave 1F72 Ll\nepsilonacute 1F73 Ll\netagrave 1F74 Ll\netaacute 1F75 Ll\niotagrave 1F76 Ll\niotaacute 1F77 Ll\nomicrongrave 1F78 Ll\nomicronacute 1F79 Ll\nupsilongrave 1F7A Ll\nupsilonacute 1F7B Ll\nomegagrave 1F7C Ll\nomegaacute 1F7D Ll\nalphalenisiotasub 1F80 Ll\nalphaasperiotasub 1F81 Ll\nalphalenisgraveiotasub 1F82 Ll\nalphaaspergraveiotasub 1F83 Ll\nalphalenisacuteiotasub 1F84 Ll\nalphaasperacuteiotasub 1F85 Ll\nalphalenistildeiotasub 1F86 Ll\nalphaaspertildeiotasub 1F87 Ll\nAlphalenisiotasub 1F88 Lt\nAlphaasperiotasub 1F89 Lt\nAlphalenisgraveiotasub 1F8A Lt\nAlphaaspergraveiotasub 1F8B Lt\nAlphalenisacuteiotasub 1F8C Lt\nAlphaasperacuteiotasub 1F8D Lt\nAlphalenistildeiotasub 1F8E Lt\nAlphaaspertildeiotasub 1F8F Lt\netalenisiotasub 1F90 Ll\netaasperiotasub 1F91 Ll\netalenisgraveiotasub 1F92 Ll\netaaspergraveiotasub 1F93 Ll\netalenisacuteiotasub 1F94 Ll\netaasperacuteiotasub 1F95 Ll\netalenistildeiotasub 1F96 Ll\netaaspertildeiotasub 1F97 Ll\nEtalenisiotasub 1F98 Lt\nEtaasperiotasub 1F99 Lt\nEtalenisgraveiotasub 1F9A Lt\nEtaaspergraveiotasub 1F9B Lt\nEtalenisacuteiotasub 1F9C Lt\nEtaasperacuteiotasub 1F9D Lt\nEtalenistildeiotasub 1F9E Lt\nEtaaspertildeiotasub 1F9F Lt\nomegalenisiotasub 1FA0 Ll\nomegaasperiotasub 1FA1 Ll\nomegalenisgraveiotasub 1FA2 Ll\nomegaaspergraveiotasub 1FA3 Ll\nomegalenisacuteiotasub 1FA4 Ll\nomegaasperacuteiotasub 1FA5 Ll\nomegalenistildeiotasub 1FA6 Ll\nomegaaspertildeiotasub 1FA7 Ll\nOmegalenisiotasub 1FA8 Lt\nOmegaasperiotasub 1FA9 Lt\nOmegalenisgraveiotasub 1FAA Lt\nOmegaaspergraveiotasub 1FAB Lt\nOmegalenisacuteiotasub 1FAC Lt\nOmegaasperacuteiotasub 1FAD Lt\nOmegalenistildeiotasub 1FAE Lt\nOmegaaspertildeiotasub 1FAF Lt\nalphabreve 1FB0 Ll\nalphawithmacron 1FB1 Ll\nalphagraveiotasub 1FB2 Ll\nalphaiotasub 1FB3 Ll\nalphaacuteiotasub 1FB4 Ll\nalphatilde 1FB6 Ll\nalphatildeiotasub 1FB7 Ll\nAlphabreve 1FB8 Lu\nAlphawithmacron 1FB9 Lu\nAlphagrave 1FBA Lu\nAlphaacute 1FBB Lu\nAlphaiotasub 1FBC Lt\nKORONIS 1FBD Sk\niotaadscript 1FBE Ll\nlenis 1FBF Sk\ngr:tilde 1FC0 Sk\ndieresistilde 1FC1 Sk\netagraveiotasub 1FC2 Ll\netaiotasub 1FC3 Ll\netaacuteiotasub 1FC4 Ll\netatilde 1FC6 Ll\netatildeiotasub 1FC7 Ll\nEpsilongrave 1FC8 Lu\nEpsilonacute 1FC9 Lu\nEtagrave 1FCA Lu\nEtaacute 1FCB Lu\nEtaiotasub 1FCC Lt\nlenisgrave 1FCD Sk\nlenisacute 1FCE Sk\nlenistilde 1FCF Sk\niotabreve 1FD0 Ll\niotawithmacron 1FD1 Ll\niotadieresisgrave 1FD2 Ll\niotadieresisacute 1FD3 Ll\niotatilde 1FD6 Ll\niotadieresistilde 1FD7 Ll\nIotabreve 1FD8 Lu\nIotawithmacron 1FD9 Lu\nIotagrave 1FDA Lu\nIotaacute 1FDB Lu\naspergrave 1FDD Sk\nasperacute 1FDE Sk\naspertilde 1FDF Sk\nupsilonbreve 1FE0 Ll\nupsilonwithmacron 1FE1 Ll\nupsilondieresisgrave 1FE2 Ll\nupsilondieresisacute 1FE3 Ll\nrholenis 1FE4 Ll\nrhoasper 1FE5 Ll\nupsilontilde 1FE6 Ll\nupsilondieresistilde 1FE7 Ll\nUpsilonbreve 1FE8 Lu\nUpsilonwithmacron 1FE9 Lu\nUpsilongrave 1FEA Lu\nUpsilonacute 1FEB Lu\nRhoasper 1FEC Lu\ndieresisgrave 1FED Sk\ndieresisacute 1FEE Sk\ngr:grave 1FEF Sk\nomegagraveiotasub 1FF2 Ll\nomegaiotasub 1FF3 Ll\nomegaacuteiotasub 1FF4 Ll\nomegatilde 1FF6 Ll\nomegatildeiotasub 1FF7 Ll\nOmicrongrave 1FF8 Lu\nOmicronacute 1FF9 Lu\nOmegagrave 1FFA Lu\nOmegaacute 1FFB Lu\nOmegaiotasub 1FFC Lt\ngr:acute 1FFD Sk\nasper 1FFE Sk\n# General Punctuation\nenquad 2000 Zs\nemquad 2001 Zs\nenspace 2002 Zs\nemspace 2003 Zs\nthreeperemspace 2004 Zs\nfourperemspace 2005 Zs\nsixperemspace 2006 Zs\nfigurespace 2007 Zs\npunctuationspace 2008 Zs\nthinspace 2009 Zs\nhairspace 200A Zs\nzerowidthspace 200B Cf\nzerowidthnonjoiner 200C Cf\nzerowidthjoiner 200D Cf\nlefttorightmark 200E Cf\nrighttoleftmark 200F Cf\ngnrl:hyphen 2010 Pd\nnonbreakinghyphen 2011 Pd\nfiguredash 2012 Pd\nendash 2013 Pd\nemdash 2014 Pd\nhorizontalbar 2015 Pd\nverticalbardbl 2016 Po\nunderscoredbl 2017 Po\nquoteleft 2018 Pi\nquoteright 2019 Pf\nquotesinglbase 201A Ps\nquotereversed 201B Pi\nquotedblleft 201C Pi\nquotedblright 201D Pf\nquotedblbase 201E Ps\nquotedblreversed 201F Pi\ndagger 2020 Po\ndaggerdbl 2021 Po\nbullet 2022 Po\ntriangularbullet 2023 Po\nonedotenleader 2024 Po\ntwodotenleader 2025 Po\nellipsis 2026 Po\nhyphenationpoint 2027 Po\nlineseparator 2028 Zl\nparagraphseparator 2029 Zp\nlefttorightembed 202A Cf\nrighttoleftembed 202B Cf\npopdirectionalformatting 202C Cf\nlefttorightoverride 202D Cf\nrighttoleftoverride 202E Cf\nnarrownobreakspace 202F Zs\nperthousand 2030 Po\npertenthousandsign 2031 Po\nminute 2032 Po\nsecond 2033 Po\nmillisecond 2034 Po\nminutereversed 2035 Po\nsecondreversed 2036 Po\nmillisecondreversed 2037 Po\ncaret 2038 Po\nguilsinglleft 2039 Pi\nguilsinglright 203A Pf\nreferencemark 203B Po\nexclamdbl 203C Po\ninterrobang 203D Po\noverline 203E Po\nundertie 203F Pc\ncharactertie 2040 Pc\ncaretinsertionpoint 2041 Po\nasterism 2042 Po\nhyphenbullet 2043 Po\nfraction 2044 Sm\nbracketleftsquarequill 2045 Ps\nbracketrightsquarequill 2046 Pe\nquestiondbl 2047 Po\nquestionexclamationmark 2048 Po\nexclamationquestion 2049 Po\ntironiansignet 204A Po\npilcrowsignreversed 204B Po\nblackwardsbulletleft 204C Po\nblackwardsbulletright 204D Po\nlowasterisk 204E Po\nsemicolonreversed 204F Po\ncloseup 2050 Po\ntwoasterisksalignedvertically 2051 Po\ncommercialminussign 2052 Sm\nswungdash 2053 Po\ninvertedundertie 2054 Pc\nflowerpunctuationmark 2055 Po\nthreedotpunctuation 2056 Po\nquadrupleminute 2057 Po\nfourdotpunctuation 2058 Po\nfivedotpunctuation 2059 Po\ntwodotpunctuation 205A Po\nfourdotmark 205B Po\ndottedcross 205C Po\ntricolon 205D Po\nverticalfourdots 205E Po\nmediummathematicalspace 205F Zs\nwordjoiner 2060 Cf\nfunctionapplication 2061 Cf\ninvisibletimes 2062 Cf\ninvisibleseparator 2063 Cf\ninvisibleplus 2064 Cf\nlefttorightisolate 2066 Cf\nrighttoleftisolate 2067 Cf\nfirststrongisolate 2068 Cf\npopdirectionalisolate 2069 Cf\ninhibitsymmetricswapping 206A Cf\nactivatesymmetricswapping 206B Cf\ninhibitarabicformshaping 206C Cf\nactivatearabicformshaping 206D Cf\nnationaldigitshapes 206E Cf\nnominaldigitshapes 206F Cf\n# Superscripts and Subscripts\nzero.superior 2070 No\ni.superior 2071 Lm\nfour.superior 2074 No\nfive.superior 2075 No\nsix.superior 2076 No\nseven.superior 2077 No\neight.superior 2078 No\nnine.superior 2079 No\nplus.superior 207A Sm\nminus.superior 207B Sm\nequal.superior 207C Sm\nparenleft.superior 207D Ps\nparenright.superior 207E Pe\nn.superior 207F Lm\nzero.inferior 2080 No\none.inferior 2081 No\ntwo.inferior 2082 No\nthree.inferior 2083 No\nfour.inferior 2084 No\nfive.inferior 2085 No\nsix.inferior 2086 No\nseven.inferior 2087 No\neight.inferior 2088 No\nnine.inferior 2089 No\nplus.inferior 208A Sm\nminus.inferior 208B Sm\nequal.inferior 208C Sm\nparenleft.inferior 208D Ps\nparenright.inferior 208E Pe\na.inferior 2090 Lm\ne.inferior 2091 Lm\no.inferior 2092 Lm\nx.inferior 2093 Lm\nschwa.inferior 2094 Lm\nh.inferior 2095 Lm\nk.inferior 2096 Lm\nl.inferior 2097 Lm\nm.inferior 2098 Lm\nn.inferior 2099 Lm\np.inferior 209A Lm\ns.inferior 209B Lm\nt.inferior 209C Lm\n# Currency Symbols\neuroarchaic 20A0 Sc\ncolonmonetary 20A1 Sc\ncruzeiro 20A2 Sc\nfranc 20A3 Sc\nlira 20A4 Sc\nmill 20A5 Sc\nnaira 20A6 Sc\npeseta 20A7 Sc\nrupee 20A8 Sc\nwon 20A9 Sc\nnewsheqel 20AA Sc\ndong 20AB Sc\nEuro 20AC Sc\nkip 20AD Sc\ntugrik 20AE Sc\ndrachma 20AF Sc\ngermanpenny 20B0 Sc\npeso 20B1 Sc\nguarani 20B2 Sc\naustral 20B3 Sc\nhryvnia 20B4 Sc\ncedi 20B5 Sc\nlivretournois 20B6 Sc\nspesmilo 20B7 Sc\ntenge 20B8 Sc\nindianrupee 20B9 Sc\nturkishlira 20BA Sc\nnordicmark 20BB Sc\nmanat 20BC Sc\nruble 20BD Sc\nlari 20BE Sc\nbitcoin 20BF Sc\n# Letterlike Symbols\naccountof 2100 So\naddressedsubject 2101 So\nCdblstruck 2102 Lu\ndegreecelsius 2103 So\ncentreline 2104 So\ncareof 2105 So\ncadauna 2106 So\neuler 2107 Lu\nscruple 2108 So\ndegreefahrenheit 2109 So\nlttr:gscript 210A Ll\nHscript 210B Lu\nHfraktur 210C Lu\nHdblstruck 210D Lu\nplanck 210E Ll\nplancktwopi 210F Ll\nIscript 2110 Lu\nIfraktur 2111 Lu\nLscript 2112 Lu\nlitre 2113 Ll\nlbbar 2114 So\nNdblstruck 2115 Lu\nnumero 2116 So\nsoundcopyright 2117 So\nweierstrass 2118 Sm\nPdblstruck 2119 Lu\nQdblstruck 211A Lu\nRscript 211B Lu\nRfraktur 211C Lu\nRdblstruck 211D Lu\nprescription 211E So\nresponse 211F So\nservicemark 2120 So\ntelephone 2121 So\ntrademark 2122 So\nversicle 2123 So\nZdblstruck 2124 Lu\nounce 2125 So\nohm 2126 Lu\nohminverted 2127 So\nZfraktur 2128 Lu\niotaturned 2129 So\nkelvin 212A Lu\nangstrom 212B Lu\nBscript 212C Lu\nCfraktur 212D Lu\nestimated 212E So\nescript 212F Ll\nEscript 2130 Lu\nFscript 2131 Lu\nFturned 2132 Lu\nMscript 2133 Lu\noscript 2134 Ll\naleph 2135 Lo\nbet 2136 Lo\ngimel 2137 Lo\ndalet 2138 Lo\ninformation 2139 Ll\nQrotated 213A So\nfacsimile 213B So\npidblstruck 213C Ll\ngammadblstruck 213D Ll\nGammadblstruck 213E Lu\nPidblstruck 213F Lu\nsummationdblstruck 2140 Sm\nGturnedsans 2141 Sm\nLturnedsans 2142 Sm\nLreversedsans 2143 Sm\nYturnedsans 2144 Sm\nDdblstruckitalic 2145 Lu\nddblstruckitalic 2146 Ll\nedblstruckitalic 2147 Ll\nidblstruckitalic 2148 Ll\njdblstruckitalic 2149 Ll\npropertyline 214A So\nampersandturned 214B Sm\nper 214C So\naktieselskab 214D So\nfturned 214E Ll\nforsamaritan 214F So\n# Number Forms\noneseventh 2150 No\noneninth 2151 No\nonetenth 2152 No\nonethird 2153 No\ntwothirds 2154 No\nonefifth 2155 No\ntwofifths 2156 No\nthreefifths 2157 No\nfourfifths 2158 No\nonesixth 2159 No\nfivesixths 215A No\noneeighth 215B No\nthreeeighths 215C No\nfiveeighths 215D No\nseveneighths 215E No\nonefraction 215F No\none.roman 2160 Nl\ntwo.roman 2161 Nl\nthree.roman 2162 Nl\nfour.roman 2163 Nl\nfive.roman 2164 Nl\nsix.roman 2165 Nl\nseven.roman 2166 Nl\neight.roman 2167 Nl\nnine.roman 2168 Nl\nten.roman 2169 Nl\neleven.roman 216A Nl\ntwelve.roman 216B Nl\nfifty.roman 216C Nl\nonehundred.roman 216D Nl\nfivehundred.roman 216E Nl\nonethousand.roman 216F Nl\none.romansmall 2170 Nl\ntwo.romansmall 2171 Nl\nthree.romansmall 2172 Nl\nfour.romansmall 2173 Nl\nfive.romansmall 2174 Nl\nsix.romansmall 2175 Nl\nseven.romansmall 2176 Nl\neight.romansmall 2177 Nl\nnine.romansmall 2178 Nl\nten.romansmall 2179 Nl\neleven.romansmall 217A Nl\ntwelve.romansmall 217B Nl\nfifty.romansmall 217C Nl\nonehundred.romansmall 217D Nl\nfivehundred.romansmall 217E Nl\nonethousand.romansmall 217F Nl\nonethousandcd.roman 2180 Nl\nfivethousand.roman 2181 Nl\ntenthousand.roman 2182 Nl\nreversedonehundred.roman 2183 Lu\ncreversed 2184 Ll\nsixlateform.roman 2185 Nl\nfiftyearlyform.roman 2186 Nl\nfiftythousand.roman 2187 Nl\nonehundredthousand.roman 2188 Nl\nzerothirds 2189 No\nturneddigittwo 218A So\nturneddigitthree 218B So\n# Arrows\narrowleft 2190 Sm\narrowup 2191 Sm\narrowright 2192 Sm\narrowdown 2193 Sm\narrowleftright 2194 Sm\narrowupdown 2195 So\narrowNW 2196 So\narrowNE 2197 So\narrowSE 2198 So\narrowSW 2199 So\narrowleftstroke 219A Sm\narrowrightstroke 219B Sm\narrowleftwave 219C So\narrowrightwave 219D So\narrowlefttwoheaded 219E So\narrowuptwoheaded 219F So\narrowrighttwoheaded 21A0 Sm\narrowdowntwoheaded 21A1 So\narrowlefttail 21A2 So\narrowrighttail 21A3 Sm\narrowleftfrombar 21A4 So\narrowupfrombar 21A5 So\narrowrightfrombar 21A6 Sm\narrowdownfrombar 21A7 So\narrowupdownwithbase 21A8 So\narrowlefthook 21A9 So\narrowrighthook 21AA So\narrowleftloop 21AB So\narrowrightloop 21AC So\narrowleftrightwave 21AD So\narrowleftrightstroke 21AE Sm\narrowdownzigzag 21AF So\narrowleftuptip 21B0 So\narrowuprighttip 21B1 So\narrowleftdowntip 21B2 So\narrowrightdowntip 21B3 So\narrowrightdowncorner 21B4 So\narrowleftdowncorner 21B5 So\narrowanticlockwisesemicircle 21B6 So\narrowclockwisesemicircle 21B7 So\narrowlongNWtobar 21B8 So\narrowleftoverrighttobar 21B9 So\narrowanticlockwiseopencircle 21BA So\narrowclockwiseopencircle 21BB So\nharpoonleftbarbup 21BC So\nharpoonleftbarbdown 21BD So\nharpoonupbarbright 21BE So\nharpoonupbarbleft 21BF So\nharpoonrightbarbup 21C0 So\nharpoonrightbarbdown 21C1 So\nharpoondownbarbright 21C2 So\nharpoondownbarbleft 21C3 So\nrightarrowoverleftarrow 21C4 So\nuparrowleftofdownarrow 21C5 So\nleftarrowoverrightarrow 21C6 So\narrowspairedleft 21C7 So\narrowspairedup 21C8 So\narrowspairedright 21C9 So\narrowspaireddown 21CA So\nleftharpoonoverrightharpoon 21CB So\nrightharpoonoverleftharpoon 21CC So\ndblarrowleftstroke 21CD So\ndblarrowleftrightstroke 21CE Sm\ndblarrowrightstroke 21CF Sm\ndblarrowleft 21D0 So\ndblarrowup 21D1 So\ndblarrowright 21D2 Sm\ndblarrowdown 21D3 So\ndblarrowleftright 21D4 Sm\ndblarrowupdown 21D5 So\ndblarrowNW 21D6 So\ndblarrowNE 21D7 So\ndblarrowSE 21D8 So\ndblarrowSW 21D9 So\ntriplearrowleft 21DA So\ntriplearrowright 21DB So\narrowleftsquiggle 21DC So\narrowrightsquiggle 21DD So\ndblstrokearrowup 21DE So\ndblstrokearrowdown 21DF So\narrowleftdashed 21E0 So\narrowupdashed 21E1 So\narrowrightdashed 21E2 So\narrowdowndashed 21E3 So\narrowlefttobar 21E4 So\narrowrighttobar 21E5 So\nwhitearrowleft 21E6 So\nwhitearrowup 21E7 So\nwhitearrowright 21E8 So\nwhitearrowdown 21E9 So\nwhitearrowupfrombar 21EA So\nwhitearrowonpedestalup 21EB So\nhorizontalbarwhitearrowonpedestalup 21EC So\nverticalbarwhitearrowonpedestalup 21ED So\nwhitedblarrowup 21EE So\nwhitedblarrowonpedestalup 21EF So\nwhitearrowfromwallright 21F0 So\ntocornerarrowNW 21F1 So\ntocornerarrowSE 21F2 So\nwhitearrowupdown 21F3 So\narrowrightsmallcircle 21F4 Sm\ndownwarrowleftofuparrow 21F5 Sm\nthreerightarrows 21F6 Sm\nverticalstrokearrowleft 21F7 Sm\nverticalstrokearrowright 21F8 Sm\nverticalstrokearrowleftright 21F9 Sm\nverticalsdbltrokearrowleft 21FA Sm\nverticalsdbltrokearrowright 21FB Sm\nverticalsdbltrokearrowleftright 21FC Sm\nopenheadarrowleft 21FD Sm\nopenheadarrowright 21FE Sm\nopenheadarrowleftright 21FF Sm\n# Mathematical Operators\nuniversal 2200 Sm\ncomplement 2201 Sm\npartialdiff 2202 Sm\nexistential 2203 Sm\nnotexistential 2204 Sm\nemptyset 2205 Sm\nincrement 2206 Sm\ngradient 2207 Sm\nelement 2208 Sm\nnotelement 2209 Sm\nelementsmall 220A Sm\nsuchthat 220B Sm\nnotcontains 220C Sm\ncontainsasmembersmall 220D Sm\nendpro 220E Sm\nproduct 220F Sm\ncoproductarray 2210 Sm\nsummation 2211 Sm\nminus 2212 Sm\nminusplus 2213 Sm\ndotplus 2214 Sm\ndivisionslash 2215 Sm\nsetminus 2216 Sm\nasteriskmath 2217 Sm\nringoperator 2218 Sm\nbulletoperator 2219 Sm\nradical 221A Sm\nmath:cuberoot 221B Sm\nmath:fourthroot 221C Sm\nproportional 221D Sm\ninfinity 221E Sm\northogonal 221F Sm\nangle 2220 Sm\nmeasuredangle 2221 Sm\nsphericalangle 2222 Sm\ndivides 2223 Sm\ndoesnotdivide 2224 Sm\nparallel 2225 Sm\nnotparallel 2226 Sm\nlogicaland 2227 Sm\nlogicalor 2228 Sm\nintersection 2229 Sm\nunion 222A Sm\nintegral 222B Sm\nintegraldbl 222C Sm\nintegraltpl 222D Sm\nintegralcontour 222E Sm\nintegralsurface 222F Sm\nintegralvolume 2230 Sm\nintegralclockwise 2231 Sm\nintegralcontourclockwise 2232 Sm\nintegralcontouranticlockwise 2233 Sm\ntherefore 2234 Sm\nbecause 2235 Sm\nratio 2236 Sm\nproportion 2237 Sm\ndotminus 2238 Sm\nexcess 2239 Sm\ngeometricproportion 223A Sm\nhomotic 223B Sm\nsimilar 223C Sm\ntildereversed 223D Sm\nlazysinverted 223E Sm\nsinewave 223F Sm\nwreathproduct 2240 Sm\nnottilde 2241 Sm\nminustilde 2242 Sm\nasympticallyequal 2243 Sm\nnotasympticallyequal 2244 Sm\ncongruent 2245 Sm\napproximatelybutnotactuallyequal 2246 Sm\nneirapproximatelynoractuallyequal 2247 Sm\napproxequal 2248 Sm\nnotalmostequal 2249 Sm\nalmostequalorequal 224A Sm\ntildetpl 224B Sm\nallequal 224C Sm\nequivalent 224D Sm\ngeometricallyequivalent 224E Sm\ndifferencebetween 224F Sm\napproacheslimit 2250 Sm\ngeometricallyequal 2251 Sm\napproximatelyequalorimage 2252 Sm\nimageorapproximatelyequal 2253 Sm\ncolonequals 2254 Sm\nequalscolon 2255 Sm\nringinequal 2256 Sm\nringequal 2257 Sm\ncorresponds 2258 Sm\nestimates 2259 Sm\nequiangular 225A Sm\nstarequals 225B Sm\ndeltaequal 225C Sm\nequalbydefinition 225D Sm\nmeasuredby 225E Sm\nquestionedequal 225F Sm\nnotequal 2260 Sm\nequivalence 2261 Sm\nnotidentical 2262 Sm\nstrictlyequivalent 2263 Sm\nlessequal 2264 Sm\ngreaterequal 2265 Sm\nlessoverequal 2266 Sm\ngreateroverequal 2267 Sm\nlessbutnotequal 2268 Sm\ngreaterbutnotequal 2269 Sm\nmuchless 226A Sm\nmuchgreater 226B Sm\nbetween 226C Sm\nnotequivalent 226D Sm\nnotless 226E Sm\nnotgreater 226F Sm\nneirlessnorequal 2270 Sm\nneirgreaternorequal 2271 Sm\nlessorequivalent 2272 Sm\ngreaterorequivalent 2273 Sm\nneirlessnorequivalent 2274 Sm\nneirgreaternorequivalent 2275 Sm\nlessorgreater 2276 Sm\ngreaterorless 2277 Sm\nneirlessnorgreater 2278 Sm\nneirgreaternorless 2279 Sm\nprecedes 227A Sm\nsucceeds 227B Sm\nprecedesorequal 227C Sm\nsucceedsorequal 227D Sm\nprecedesorequivalent 227E Sm\nsucceedsorequivalent 227F Sm\ndoesnotprecede 2280 Sm\ndoesnotsucceed 2281 Sm\npropersubset 2282 Sm\npropersuperset 2283 Sm\nnotsubset 2284 Sm\nnotasersetup 2285 Sm\nreflexsubset 2286 Sm\nreflexsuperset 2287 Sm\nneirasubsetnorequal 2288 Sm\nneirasersetnorequalup 2289 Sm\nsubsetnotequal 228A Sm\nsersetnotequalup 228B Sm\nmultiset 228C Sm\nmultisetmultiplication 228D Sm\nmultisetunion 228E Sm\nsquareimage 228F Sm\nsquareoriginal 2290 Sm\nsquareimageorequal 2291 Sm\nsquareoriginalorequal 2292 Sm\nsquarecap 2293 Sm\nsquarecup 2294 Sm\ncircleplus 2295 Sm\ncircledminus 2296 Sm\ncirclemultiply 2297 Sm\ncircleddivisionslash 2298 Sm\ncircleddotoperator 2299 Sm\ncircledringoperator 229A Sm\ncircledasteriskoperator 229B Sm\ncircledequals 229C Sm\ncircleddash 229D Sm\nsquaredplus 229E Sm\nsquaredminus 229F Sm\nsquaredtimes 22A0 Sm\nsquareddotoperator 22A1 Sm\ntackright 22A2 Sm\ntackleft 22A3 Sm\ntackdown 22A4 Sm\ntackup 22A5 Sm\nassertion 22A6 Sm\nmodels 22A7 Sm\ntrue 22A8 Sm\nforces 22A9 Sm\nturnstiletplverticalbarright 22AA Sm\nturnstiledblverticalbarright 22AB Sm\ndoesnotprove 22AC Sm\nnottrue 22AD Sm\ndoesnotforce 22AE Sm\nnegatedturnstiledblverticalbarright 22AF Sm\nprecedesunderrelation 22B0 Sm\nsucceedsunderrelation 22B1 Sm\nnormalsubgroup 22B2 Sm\ncontainsasnormalsubgroup 22B3 Sm\nnormalsubgroorequalup 22B4 Sm\ncontainsasnormalsubgroorequalup 22B5 Sm\noriginal 22B6 Sm\nimage 22B7 Sm\nmultimap 22B8 Sm\nhermitianconjugatematrix 22B9 Sm\nintercalate 22BA Sm\nxor 22BB Sm\nnand 22BC Sm\nnor 22BD Sm\nanglearcright 22BE Sm\ntriangleright 22BF Sm\nlogicalandarray 22C0 Sm\nlogicalorarray 22C1 Sm\nintersectionarray 22C2 Sm\nunionarray 22C3 Sm\ndiamondoperator 22C4 Sm\ndotmath 22C5 Sm\nstaroperator 22C6 Sm\ndivisiontimes 22C7 Sm\nmath:bowtie 22C8 Sm\nnormalfacrsemidirectproductleft 22C9 Sm\nnormalfacrsemidirectproductright 22CA Sm\nsemidirectproductleft 22CB Sm\nsemidirectproductright 22CC Sm\ntildeequalsreversed 22CD Sm\ncurlylogicalor 22CE Sm\ncurlylogicaland 22CF Sm\nsubsetdbl 22D0 Sm\nsersetdblup 22D1 Sm\nintersectiondbl 22D2 Sm\nuniondbl 22D3 Sm\npitchfork 22D4 Sm\nequalandparallel 22D5 Sm\nlessdot 22D6 Sm\ngreaterdot 22D7 Sm\nverymuchless 22D8 Sm\nverymuchgreater 22D9 Sm\nlessequalorgreater 22DA Sm\ngreaterequalorless 22DB Sm\nequalorless 22DC Sm\nequalorgreater 22DD Sm\nequalorprecedes 22DE Sm\nequalorsucceeds 22DF Sm\ndoesnotprecedeorequal 22E0 Sm\ndoesnotsucceedorequal 22E1 Sm\nnotsquareimageorequal 22E2 Sm\nnotsquareoriginalorequal 22E3 Sm\nsquareimageornotequal 22E4 Sm\nsquareoriginalornotequal 22E5 Sm\nlessbutnotequivalent 22E6 Sm\ngreaterbutnotequivalent 22E7 Sm\nprecedesbutnotequivalent 22E8 Sm\nsucceedsbutnotequivalent 22E9 Sm\nnotnormalsubgroup 22EA Sm\ndoesnotcontainasnormalsubgroup 22EB Sm\nnotnormalsubgroorequalup 22EC Sm\ndoesnotcontainasnormalsubgroorequalup 22ED Sm\nellipsisvertical 22EE Sm\nellipsismidhorizontal 22EF Sm\nellipsisdiagonalupright 22F0 Sm\nellipsisdiagonaldownright 22F1 Sm\nelementlonghorizontalstroke 22F2 Sm\nelementverticalbarhorizontalstroke 22F3 Sm\nelementsmallverticalbarhorizontalstroke 22F4 Sm\nelementdotabove 22F5 Sm\nelementoverbar 22F6 Sm\nelementoverbarsmall 22F7 Sm\nelementunderbar 22F8 Sm\nelementtwoshorizontalstroke 22F9 Sm\ncontainslonghorizontalstroke 22FA Sm\ncontainsverticalbarhorizontalstroke 22FB Sm\ncontainssmallverticalbarhorizontalstroke 22FC Sm\ncontainsoverbar 22FD Sm\ncontainsoverbarsmall 22FE Sm\nznotationbagmembership 22FF Sm\n# Miscellaneous Technical\ndiametersign 2300 So\nelectricarrow 2301 So\nhouse 2302 So\narrowheadup 2303 So\narrowheaddown 2304 So\nprojective 2305 So\nperspective 2306 So\nwavyline 2307 So\nceilingleft 2308 Ps\nceilingright 2309 Pe\nfloorleft 230A Ps\nfloorright 230B Pe\ncropbottomright 230C So\ncropbottomleft 230D So\ncroptopright 230E So\ncroptopleft 230F So\nrevlogicalnot 2310 So\nlozengesquare 2311 So\narc 2312 So\nsegment 2313 So\nsector 2314 So\ntelephonerecorder 2315 So\npositionindicator 2316 So\nviewdatasquare 2317 So\nplaceofinterestsign 2318 So\nnotsignturned 2319 So\nwatch 231A So\nhourglass 231B So\ncornertopleft 231C So\ncornertopright 231D So\ncornerbottomleft 231E So\ncornerbottomright 231F So\nintegraltp 2320 Sm\nintegralbt 2321 Sm\nfrown 2322 So\nsmile 2323 So\narrowheadtwobarsuphorizontal 2324 So\noption 2325 So\neraseright 2326 So\nclear 2327 So\nboard 2328 So\nangleleft 2329 Ps\nangleright 232A Pe\neraseleft 232B So\nbenzenering 232C So\ncylindricity 232D So\nallaroundprofile 232E So\nsymmetry 232F So\ntotalrunout 2330 So\ndimensionorigin 2331 So\nconicaltaper 2332 So\nslope 2333 So\ncounterbore 2334 So\ncountersink 2335 So\nbeamfunc 2336 So\nsquishquadfunc 2337 So\nquadequalfunc 2338 So\nquaddividefunc 2339 So\nquaddiamondfunc 233A So\nquadjotfunc 233B So\nquadcirclefunc 233C So\ncirclestilefunc 233D So\ncirclejotfunc 233E So\nslashbarfunc 233F So\nbackslashbarfunc 2340 So\nquadslashfunc 2341 So\nquadbackslashfunc 2342 So\nquadlessfunc 2343 So\nquadgreaterfunc 2344 So\nvaneleftfunc 2345 So\nvanerightfunc 2346 So\nquadarrowleftfunc 2347 So\nquadarrowrightfunc 2348 So\ncirclebackslashfunc 2349 So\ntackunderlinedownfunc 234A So\ndeltastilefunc 234B So\nquadcaretdownfunc 234C So\nquaddeltafunc 234D So\ntackjotdownfunc 234E So\nvaneupfunc 234F So\nquadarrowupfunc 2350 So\ntackoverbarupfunc 2351 So\ndelstilefunc 2352 So\nquadcaretupfunc 2353 So\nquaddelfunc 2354 So\ntackjotupfunc 2355 So\nvanedownfunc 2356 So\nquadarrowdownfunc 2357 So\nquoteunderlinefunc 2358 So\ndeltaunderlinefunc 2359 So\ndiamondunderlinefunc 235A So\njotunderlinefunc 235B So\ncircleunderlinefunc 235C So\nshoejotupfunc 235D So\nquotequadfunc 235E So\ncirclestarfunc 235F So\nquadcolonfunc 2360 So\ntackdiaeresisupfunc 2361 So\ndeldiaeresisfunc 2362 So\nstardiaeresisfunc 2363 So\njotdiaeresisfunc 2364 So\ncirclediaeresisfunc 2365 So\nshoestiledownfunc 2366 So\nshoestileleftfunc 2367 So\ntildediaeresisfunc 2368 So\ndiaeresisgreaterfunc 2369 So\ncommabarfunc 236A So\ndeltildefunc 236B So\nzildefunc 236C So\nstiletildefunc 236D So\nsemicolonunderlinefunc 236E So\nquadnotequalfunc 236F So\nquadquestionfunc 2370 So\ncarettildedownfunc 2371 So\ncarettildeupfunc 2372 So\niotafunc 2373 So\nrhofunc 2374 So\nomegafunc 2375 So\nalphaunderlinefunc 2376 So\nepsilonunderlinefunc 2377 So\niotaunderlinefunc 2378 So\nomegaunderlinefunc 2379 So\nalphafunc 237A So\nnotcheckmark 237B So\nanglezigzagarrowdownright 237C Sm\nshoulderedopenbox 237D So\nmisc:bell 237E So\nlinemiddledotvertical 237F So\ninsertion 2380 So\ncontinuousunderline 2381 So\ndiscontinuousunderline 2382 So\nemphasis 2383 So\ncomposition 2384 So\ncentrelineverticalsquarewhite 2385 So\nenter 2386 So\nalternative 2387 So\nhelm 2388 So\ncircledbarnotchhorizontal 2389 So\ncircledtriangledown 238A So\nbrokencirclenorthwestarrow 238B So\nundo 238C So\nmonostable 238D So\nhysteresis 238E So\nhtypeopencircuit 238F So\nltypeopencircuit 2390 So\npassivedown 2391 So\noutputpassiveup 2392 So\ndirectcurrentformtwo 2393 So\nsoftwarefunction 2394 So\nquadfunc 2395 So\nmisc:decimalseparator 2396 So\npreviouspage 2397 So\nnextpage 2398 So\nprintscreen 2399 So\nclearscreen 239A So\nparenhookupleft 239B Sm\nparenextensionleft 239C Sm\nparenlowerhookleft 239D Sm\nparenhookupright 239E Sm\nparenextensionright 239F Sm\nparenlowerhookright 23A0 Sm\nbracketcornerupleftsquare 23A1 Sm\nbracketextensionleftsquare 23A2 Sm\nbracketlowercornerleftsquare 23A3 Sm\nbracketcorneruprightsquare 23A4 Sm\nbracketextensionrightsquare 23A5 Sm\nbracketlowercornerrightsquare 23A6 Sm\nbrackethookupleftcurly 23A7 Sm\nbracketmiddlepieceleftcurly 23A8 Sm\nbracketlowerhookleftcurly 23A9 Sm\nbracketextensioncurly 23AA Sm\nbrackethookuprightcurly 23AB Sm\nbracketmiddlepiecerightcurly 23AC Sm\nbracketlowerhookrightcurly 23AD Sm\nintegralextension 23AE Sm\nlineextensionhorizontal 23AF Sm\nbracketsectionupleftlowerrightcurly 23B0 Sm\nbracketsectionuprightlowerleftcurly 23B1 Sm\nsummationtop 23B2 Sm\nsummationbottom 23B3 Sm\nbrackettopsquare 23B4 So\nbracketbottomsquare 23B5 So\nbracketoverbrackettopbottomsquare 23B6 So\nradicalbottom 23B7 So\nboxlineverticalleft 23B8 So\nboxlineverticalright 23B9 So\nscanonehorizontal 23BA So\nscanthreehorizontal 23BB So\nscansevenhorizontal 23BC So\nscanninehorizontal 23BD So\ndentistrytopverticalright 23BE So\ndentistrybottomverticalright 23BF So\ndentistrycirclevertical 23C0 So\ndentistrycircledownhorizontal 23C1 So\ndentistrycircleuphorizontal 23C2 So\ndentistrytrianglevertical 23C3 So\ndentistrytriangledownhorizontal 23C4 So\ndentistrytriangleuphorizontal 23C5 So\ndentistrywavevertical 23C6 So\ndentistrywavedownhorizontal 23C7 So\ndentistrywaveuphorizontal 23C8 So\ndentistrydownhorizontal 23C9 So\ndentistryuphorizontal 23CA So\ndentistrytopverticalleft 23CB So\ndentistrybottomverticalleft 23CC So\nfootsquare 23CD So\nreturn 23CE So\neject 23CF So\nlineextensionvertical 23D0 So\nbrevemetrical 23D1 So\nlongovershortmetrical 23D2 So\nshortoverlongmetrical 23D3 So\nlongovertwoshortsmetrical 23D4 So\ntwoshortsoverlongmetrical 23D5 So\ntwoshortsjoinedmetrical 23D6 So\ntrisememetrical 23D7 So\ntetrasememetrical 23D8 So\npentasememetrical 23D9 So\nearthground 23DA So\nfuse 23DB So\nparentop 23DC Sm\nparenbottom 23DD Sm\nbrackettopcurly 23DE Sm\nbracketbottomcurly 23DF Sm\nbracketshelltop 23E0 Sm\nbracketshellbottom 23E1 Sm\ntrapeziumwhite 23E2 So\nbenzeneringcircle 23E3 So\nstraightness 23E4 So\nflatness 23E5 So\naccurrent 23E6 So\nelectricalintersection 23E7 So\ndecimalexponent 23E8 So\nblackpointingdoubletriangleright 23E9 So\nblackpointingdoubletriangleleft 23EA So\nblackpointingdoubletriangleup 23EB So\nblackpointingdoubletriangledown 23EC So\nblackpointingdoubletrianglebarverticalright 23ED So\nblackpointingdoubletrianglebarverticalleft 23EE So\nblackpointingtriangledoublebarverticalright 23EF So\nalarmclock 23F0 So\nswatchtop 23F1 So\ntimerclock 23F2 So\nhourglassflowings 23F3 So\nblackmediumpointingtriangleleft 23F4 So\nblackmediumpointingtriangleright 23F5 So\nblackmediumpointingtriangleup 23F6 So\nblackmediumpointingtriangledown 23F7 So\ndoublebarvertical 23F8 So\nblackforstopsquare 23F9 So\nblackcircleforrecord 23FA So\npower 23FB So\npoweronoff 23FC So\npoweron 23FD So\npowersleep 23FE So\nobservereye 23FF So\n# Control Pictures\ncntr:null 2400 So\ncntr:startofheading 2401 So\ncntr:startoftext 2402 So\ncntr:endoftext 2403 So\ncntr:endoftransmission 2404 So\ncntr:enquiry 2405 So\ncntr:acknowledge 2406 So\ncntr:bell 2407 So\ncntr:backspace 2408 So\ncntr:horizontaltab 2409 So\ncntr:linefeed 240A So\ncntr:verticaltab 240B So\ncntr:formfeed 240C So\ncntr:carriagereturn 240D So\ncntr:shiftout 240E So\ncntr:shiftin 240F So\ncntr:datalinkescape 2410 So\ncntr:devicecontrolone 2411 So\ncntr:devicecontroltwo 2412 So\ncntr:devicecontrolthree 2413 So\ncntr:devicecontrolfour 2414 So\ncntr:negativeacknowledge 2415 So\ncntr:synchronousidle 2416 So\ncntr:endoftransmissionblock 2417 So\ncntr:cancel 2418 So\ncntr:endofmedium 2419 So\ncntr:substitute 241A So\ncntr:escape 241B So\ncntr:fileseparator 241C So\ncntr:groupseparator 241D So\ncntr:recordseparator 241E So\ncntr:unitseparator 241F So\ncntr:space 2420 So\ncntr:delete 2421 So\ncntr:blank 2422 So\ncntr:openbox 2423 So\ncntr:newline 2424 So\ncntr:deleteformtwo 2425 So\ncntr:substituteformtwo 2426 So\n# Optical Character Recognition\nhook 2440 So\nocr:chair 2441 So\nfork 2442 So\ninvertedfork 2443 So\nbeltbuckle 2444 So\nocr:bowtie 2445 So\nbranchbankidentification 2446 So\namountofcheck 2447 So\nocr:dash 2448 So\ncustomeraccountnumber 2449 So\nbackslashdbl 244A So\n# Enclosed Alphanumerics\nonecircle 2460 No\ntwocircle 2461 No\nthreecircle 2462 No\nfourcircle 2463 No\nfivecircle 2464 No\nsixcircle 2465 No\nsevencircle 2466 No\neightcircle 2467 No\nninecircle 2468 No\ntencircle 2469 No\nelevencircle 246A No\ntwelvecircle 246B No\nthirteencircle 246C No\nfourteencircle 246D No\nfifteencircle 246E No\nsixteencircle 246F No\nseventeencircle 2470 No\neighteencircle 2471 No\nnineteencircle 2472 No\ntwentycircle 2473 No\noneparenthesized 2474 No\ntwoparenthesized 2475 No\nthreeparenthesized 2476 No\nfourparenthesized 2477 No\nfiveparenthesized 2478 No\nsixparenthesized 2479 No\nsevenparenthesized 247A No\neightparenthesized 247B No\nnineparenthesized 247C No\ntenparenthesized 247D No\nelevenparenthesized 247E No\ntwelveparenthesized 247F No\nthirteenparenthesized 2480 No\nfourteenparenthesized 2481 No\nfifteenparenthesized 2482 No\nsixteenparenthesized 2483 No\nseventeenparenthesized 2484 No\neighteenparenthesized 2485 No\nnineteenparenthesized 2486 No\ntwentyparenthesized 2487 No\noneperiod 2488 No\ntwoperiod 2489 No\nthreeperiod 248A No\nfourperiod 248B No\nfiveperiod 248C No\nsixperiod 248D No\nsevenperiod 248E No\neightperiod 248F No\nnineperiod 2490 No\ntenperiod 2491 No\nelevenperiod 2492 No\ntwelveperiod 2493 No\nthirteenperiod 2494 No\nfourteenperiod 2495 No\nfifteenperiod 2496 No\nsixteenperiod 2497 No\nseventeenperiod 2498 No\neighteenperiod 2499 No\nnineteenperiod 249A No\ntwentyperiod 249B No\naparenthesized 249C So\nbparenthesized 249D So\ncparenthesized 249E So\ndparenthesized 249F So\neparenthesized 24A0 So\nfparenthesized 24A1 So\ngparenthesized 24A2 So\nhparenthesized 24A3 So\niparenthesized 24A4 So\njparenthesized 24A5 So\nkparenthesized 24A6 So\nlparenthesized 24A7 So\nmparenthesized 24A8 So\nnparenthesized 24A9 So\noparenthesized 24AA So\npparenthesized 24AB So\nqparenthesized 24AC So\nrparenthesized 24AD So\nsparenthesized 24AE So\ntparenthesized 24AF So\nuparenthesized 24B0 So\nvparenthesized 24B1 So\nwparenthesized 24B2 So\nxparenthesized 24B3 So\nyparenthesized 24B4 So\nzparenthesized 24B5 So\nAcircle 24B6 So\nBcircle 24B7 So\nCcircle 24B8 So\nDcircle 24B9 So\nEcircle 24BA So\nFcircle 24BB So\nGcircle 24BC So\nHcircle 24BD So\nIcircle 24BE So\nJcircle 24BF So\nKcircle 24C0 So\nLcircle 24C1 So\nMcircle 24C2 So\nNcircle 24C3 So\nOcircle 24C4 So\nPcircle 24C5 So\nQcircle 24C6 So\nRcircle 24C7 So\nScircle 24C8 So\nTcircle 24C9 So\nUcircle 24CA So\nVcircle 24CB So\nWcircle 24CC So\nXcircle 24CD So\nYcircle 24CE So\nZcircle 24CF So\nacircle 24D0 So\nbcircle 24D1 So\nccircle 24D2 So\ndcircle 24D3 So\necircle 24D4 So\nfcircle 24D5 So\ngcircle 24D6 So\nhcircle 24D7 So\nicircle 24D8 So\njcircle 24D9 So\nkcircle 24DA So\nlcircle 24DB So\nmcircle 24DC So\nncircle 24DD So\nocircle 24DE So\npcircle 24DF So\nqcircle 24E0 So\nrcircle 24E1 So\nscircle 24E2 So\ntcircle 24E3 So\nucircle 24E4 So\nvcircle 24E5 So\nwcircle 24E6 So\nxcircle 24E7 So\nycircle 24E8 So\nzcircle 24E9 So\nzerocircle 24EA No\nelevencircleblack 24EB No\ntwelvecircleblack 24EC No\nthirteencircleblack 24ED No\nfourteencircleblack 24EE No\nfifteencircleblack 24EF No\nsixteencircleblack 24F0 No\nseventeencircleblack 24F1 No\neighteencircleblack 24F2 No\nnineteencircleblack 24F3 No\ntwentycircleblack 24F4 No\nonecircledbl 24F5 No\ntwocircledbl 24F6 No\nthreecircledbl 24F7 No\nfourcircledbl 24F8 No\nfivecircledbl 24F9 No\nsixcircledbl 24FA No\nsevencircledbl 24FB No\neightcircledbl 24FC No\nninecircledbl 24FD No\ntencircledbl 24FE No\nzerocircleblack 24FF No\n# Box Drawing\nlighthorz 2500 So\nheavyhorz 2501 So\nlightvert 2502 So\nheavyvert 2503 So\nlighttrpldashhorz 2504 So\nheavytrpldashhorz 2505 So\nlighttrpldashvert 2506 So\nheavytrpldashvert 2507 So\nlightquaddashhorz 2508 So\nheavyquaddashhorz 2509 So\nlightquaddashvert 250A So\nheavyquaddashvert 250B So\nlightdnright 250C So\ndnlightrightheavy 250D So\ndnheavyrightlight 250E So\nheavydnright 250F So\nlightdnleft 2510 So\ndnlightleftheavy 2511 So\ndnheavyleftlight 2512 So\nheavydnleft 2513 So\nlightupright 2514 So\nuplightrightheavy 2515 So\nupheavyrightlight 2516 So\nheavyupright 2517 So\nlightupleft 2518 So\nuplightleftheavy 2519 So\nupheavyleftlight 251A So\nheavyupleft 251B So\nlightvertright 251C So\nvertlightrightheavy 251D So\nupheavyrightdnlight 251E So\ndnheavyrightuplight 251F So\nvertheavyrightlight 2520 So\ndnlightrightupheavy 2521 So\nuplightrightdnheavy 2522 So\nheavyvertright 2523 So\nlightvertleft 2524 So\nvertlightleftheavy 2525 So\nupheavyleftdnlight 2526 So\ndnheavyleftuplight 2527 So\nvertheavyleftlight 2528 So\ndnlightleftupheavy 2529 So\nuplightleftdnheavy 252A So\nheavyvertleft 252B So\nlightdnhorz 252C So\nleftheavyrightdnlight 252D So\nrightheavyleftdnlight 252E So\ndnlighthorzheavy 252F So\ndnheavyhorzlight 2530 So\nrightlightleftdnheavy 2531 So\nleftlightrightdnheavy 2532 So\nheavydnhorz 2533 So\nlightuphorz 2534 So\nleftheavyrightuplight 2535 So\nrightheavyleftuplight 2536 So\nuplighthorzheavy 2537 So\nupheavyhorzlight 2538 So\nrightlightleftupheavy 2539 So\nleftlightrightupheavy 253A So\nheavyuphorz 253B So\nlightverthorz 253C So\nleftheavyrightvertlight 253D So\nrightheavyleftvertlight 253E So\nvertlighthorzheavy 253F So\nupheavydnhorzlight 2540 So\ndnheavyuphorzlight 2541 So\nvertheavyhorzlight 2542 So\nleftupheavyrightdnlight 2543 So\nrightupheavyleftdnlight 2544 So\nleftdnheavyrightuplight 2545 So\nrightdnheavyleftuplight 2546 So\ndnlightuphorzheavy 2547 So\nuplightdnhorzheavy 2548 So\nrightlightleftvertheavy 2549 So\nleftlightrightvertheavy 254A So\nheavyverthorz 254B So\nlightdbldashhorz 254C So\nheavydbldashhorz 254D So\nlightdbldashvert 254E So\nheavydbldashvert 254F So\ndblhorz 2550 So\ndblvert 2551 So\ndnsngrightdbl 2552 So\ndndblrightsng 2553 So\ndbldnright 2554 So\ndnsngleftdbl 2555 So\ndndblleftsng 2556 So\ndbldnleft 2557 So\nupsngrightdbl 2558 So\nupdblrightsng 2559 So\ndblupright 255A So\nupsngleftdbl 255B So\nupdblleftsng 255C So\ndblupleft 255D So\nvertsngrightdbl 255E So\nvertdblrightsng 255F So\ndblvertright 2560 So\nvertsngleftdbl 2561 So\nvertdblleftsng 2562 So\ndblvertleft 2563 So\ndnsnghorzdbl 2564 So\ndndblhorzsng 2565 So\ndbldnhorz 2566 So\nupsnghorzdbl 2567 So\nupdblhorzsng 2568 So\ndbluphorz 2569 So\nvertsnghorzdbl 256A So\nvertdblhorzsng 256B So\ndblverthorz 256C So\nlightarcdnright 256D So\nlightarcdnleft 256E So\nlightarcupleft 256F So\nlightarcupright 2570 So\nlightdiaguprightdnleft 2571 So\nlightdiagupleftdnright 2572 So\nlightdiagcross 2573 So\nlightleft 2574 So\nlightup 2575 So\nlightright 2576 So\nlightdn 2577 So\nheavyleft 2578 So\nheavyup 2579 So\nheavyright 257A So\nheavydn 257B So\nlightleftheavyright 257C So\nlightupheavydn 257D So\nheavyleftlightright 257E So\nheavyuplightdn 257F So\n# Block Elements\nupperHalfBlock 2580 So\nlowerOneEighthBlock 2581 So\nlowerOneQuarterBlock 2582 So\nlowerThreeEighthsBlock 2583 So\nlowerHalfBlock 2584 So\nlowerFiveEighthsBlock 2585 So\nlowerThreeQuartersBlock 2586 So\nlowerSevenEighthsBlock 2587 So\nfullBlock 2588 So\nleftSevenEighthsBlock 2589 So\nleftThreeQuartersBlock 258A So\nleftFiveEighthsBlock 258B So\nleftHalfBlock 258C So\nleftThreeEighthsBlock 258D So\nleftOneQuarterBlock 258E So\nleftOneEighthBlock 258F So\nrightHalfBlock 2590 So\nlightShade 2591 So\nmediumShade 2592 So\ndarkShade 2593 So\nupperOneEighthBlock 2594 So\nrightOneEighthBlock 2595 So\nquadrantLowerLeft 2596 So\nquadrantLowerRight 2597 So\nquadrantUpperLeft 2598 So\nquadrantUpperLeftAndLowerLeftAndLowerRight 2599 So\nquadrantUpperLeftAndLowerRight 259A So\nquadrantUpperLeftAndUpperRightAndLowerLeft 259B So\nquadrantUpperLeftAndUpperRightAndLowerRight 259C So\nquadrantUpperRight 259D So\nquadrantUpperRightAndLowerLeft 259E So\nquadrantUpperRightAndLowerLeftAndLowerRight 259F So\n# Geometric Shapes\nsquareblack 25A0 So\nsquarewhite 25A1 So\nsquarewhiteround 25A2 So\nsquarewhitewithsquaresmallblack 25A3 So\nsquarehorizontalfill 25A4 So\nsquareverticalfill 25A5 So\nsquareorthogonalcrosshatchfill 25A6 So\nsquareupperlefttolowerrightfill 25A7 So\nsquareupperrighttolowerleftfill 25A8 So\nsquarediagonalcrosshatchfill 25A9 So\nsquaresmallblack 25AA So\nsquaresmallwhite 25AB So\nrectangleblack 25AC So\nrectanglewhite 25AD So\nrectangleverticalblack 25AE So\nrectangleverticalwhite 25AF So\nparallelogramblack 25B0 So\nparallelogramwhite 25B1 So\ntriangleupblack 25B2 So\ntriangleupwhite 25B3 So\ntriangleupsmallblack 25B4 So\ntriangleupsmallwhite 25B5 So\ntrianglerightblack 25B6 So\ntrianglerightwhite 25B7 Sm\ntrianglerightsmallblack 25B8 So\ntrianglerightsmallwhite 25B9 So\npointerrightblack 25BA So\npointerrightwhite 25BB So\ntriangledownblack 25BC So\ntriangledownwhite 25BD So\ntriangledownsmallblack 25BE So\ntriangledownsmallwhite 25BF So\ntriangleleftblack 25C0 So\ntriangleleftwhite 25C1 Sm\ntriangleleftsmallblack 25C2 So\ntriangleleftsmallwhite 25C3 So\npointerleftblack 25C4 So\npointerleftwhite 25C5 So\ngmtr:diamondblack 25C6 So\ngmtr:diamondwhite 25C7 So\ndiamondwhitewithdiamondsmallblack 25C8 So\nfisheye 25C9 So\nlozenge 25CA So\ncirclewhite 25CB So\ncircledotted 25CC So\ncircleverticalfill 25CD So\nbullseye 25CE So\ncircleblack 25CF So\ncirclehalfleftblack 25D0 So\ncirclehalfrightblack 25D1 So\ncirclelowerhalfblack 25D2 So\ncircleupperhalfblack 25D3 So\ncircleupperquadrantrightblack 25D4 So\ncircleallbutupperquadrantleftblack 25D5 So\nhalfcircleleftblack 25D6 So\nhalfcirclerightblack 25D7 So\nbulletinverse 25D8 So\ncircleinversewhite 25D9 So\nupperhalfcircleinversewhite 25DA So\nlowerhalfcircleinversewhite 25DB So\nupperquadrantcirculararcleft 25DC So\nupperquadrantcirculararcright 25DD So\nlowerquadrantcirculararcright 25DE So\nlowerquadrantcirculararcleft 25DF So\nupperhalfcircle 25E0 So\nlowerhalfcircle 25E1 So\nlowertrianglerightblack 25E2 So\nlowertriangleleftblack 25E3 So\nuppertriangleleftblack 25E4 So\nuppertrianglerightblack 25E5 So\nopenbullet 25E6 So\nsquarehalfleftblack 25E7 So\nsquarehalfrightblack 25E8 So\nsquareupperdiagonalhalfleftblack 25E9 So\nsquarelowerdiagonalhalfrightblack 25EA So\nsquarewhitebisectinglinevertical 25EB So\ntriangledotupwhite 25EC So\ntrianglehalfupleftblack 25ED So\ntrianglehalfuprightblack 25EE So\nlargecircle 25EF So\nsquarewhiteupperquadrantleft 25F0 So\nsquarewhitelowerquadrantleft 25F1 So\nsquarewhitelowerquadrantright 25F2 So\nsquarewhiteupperquadrantright 25F3 So\ncircleupperquadrantleftwhite 25F4 So\ncirclelowerquadrantleftwhite 25F5 So\ncirclelowerquadrantrightwhite 25F6 So\ncircleupperquadrantrightwhite 25F7 So\nuppertriangleleft 25F8 Sm\nuppertriangleright 25F9 Sm\nlowertriangleleft 25FA Sm\nsquaremediumwhite 25FB Sm\nsquaremediumblack 25FC Sm\nsquaresmallmediumwhite 25FD Sm\nsquaresmallmediumblack 25FE Sm\nlowertriangleright 25FF Sm\n# Miscellaneous Symbols\nsunraysblack 2600 So\ncloud 2601 So\numbrella 2602 So\nsnowman 2603 So\ncomet 2604 So\nstarblack 2605 So\nstarwhite 2606 So\nlightning 2607 So\nthunderstorm 2608 So\nsun 2609 So\nnodeascending 260A So\nnodedescending 260B So\nconjunction 260C So\nopposition 260D So\ntelephoneblack 260E So\ntelephonewhite 260F So\ncheckbox 2610 So\ncheckboxchecked 2611 So\ncheckboxx 2612 So\nsaltire 2613 So\numbrellaraindrops 2614 So\nhotbeverage 2615 So\nshogipiecewhite 2616 So\nshogipieceblack 2617 So\nshamrock 2618 So\nfloralheartbulletreversedrotated 2619 So\npointingindexleftblack 261A So\npointingindexrightblack 261B So\npointingindexleftwhite 261C So\npointingindexupwhite 261D So\npointingindexrightwhite 261E So\npointingindexdownwhite 261F So\nskullcrossbones 2620 So\ncaution 2621 So\nradioactive 2622 So\nbiohazard 2623 So\ncaduceus 2624 So\nankh 2625 So\northodoxcross 2626 So\nchirho 2627 So\ncrossoflorraine 2628 So\ncrossofjerusalem 2629 So\nstarcrescent 262A So\nfarsi 262B So\nadishakti 262C So\nhammersickle 262D So\npeace 262E So\nyinyang 262F So\ntrigramheaven 2630 So\ntrigramlake 2631 So\ntrigramfire 2632 So\ntrigramthunder 2633 So\ntrigramwind 2634 So\ntrigramwater 2635 So\ntrigrammountain 2636 So\ntrigramearth 2637 So\nwheelofdharma 2638 So\nfrowningfacewhite 2639 So\nsmilingfacewhite 263A So\nsmilingfaceblack 263B So\nsunrayswhite 263C So\nfirstquartermoon 263D So\nlastquartermoon 263E So\nmercury 263F So\nfemale 2640 So\nearth 2641 So\nmale 2642 So\njiterup 2643 So\nsaturn 2644 So\nuranus 2645 So\nneptune 2646 So\npluto 2647 So\naries 2648 So\ntaurus 2649 So\ngemini 264A So\ncancer 264B So\nleo 264C So\nvirgo 264D So\nlibra 264E So\nscorpius 264F So\nsagittarius 2650 So\ncapricorn 2651 So\naquarius 2652 So\npisces 2653 So\nkingwhite 2654 So\nqueenwhite 2655 So\nrookwhite 2656 So\nbishopwhite 2657 So\nknightwhite 2658 So\npawnwhite 2659 So\nkingblack 265A So\nqueenblack 265B So\nrookblack 265C So\nbishopblack 265D So\nknightblack 265E So\npawnblack 265F So\nspadeblack 2660 So\nheartwhite 2661 So\nmisc:diamondwhite 2662 So\nclubblack 2663 So\nspadewhite 2664 So\nheartblack 2665 So\nmisc:diamondblack 2666 So\nclubwhite 2667 So\nhotsprings 2668 So\nquarternote 2669 So\neighthnote 266A So\nbeamedeighthnotes 266B So\nbeamedsixteenthnotes 266C So\nmusicflat 266D So\nmusicnatural 266E So\nmusicsharp 266F Sm\nwestsyriaccross 2670 So\neastsyriaccross 2671 So\nrecycleuniversal 2672 So\nrecycleoneplastics 2673 So\nrecycletwoplastics 2674 So\nrecyclethreeplastics 2675 So\nrecyclefourplastics 2676 So\nrecyclefiveplastics 2677 So\nrecyclesixplastics 2678 So\nrecyclesevenplastics 2679 So\nrecyclegeneric 267A So\nrecycleuniversalblack 267B So\nrecycledpaper 267C So\nrecyclepartiallypaper 267D So\npermanentpaper 267E So\nwheelchair 267F So\ndieone 2680 So\ndietwo 2681 So\ndiethree 2682 So\ndiefour 2683 So\ndiefive 2684 So\ndiesix 2685 So\ncircledotrightwhite 2686 So\ncircletwodotswhite 2687 So\ncirclewhitedotrightblack 2688 So\ncircletwodotsblackwhite 2689 So\nmonogramyang 268A So\nmonogramyin 268B So\ndigramgreateryang 268C So\ndigramlesseryin 268D So\ndigramlesseryang 268E So\ndigramgreateryin 268F So\nflagwhite 2690 So\nflagblack 2691 So\nhammerpick 2692 So\nanchor 2693 So\ncrossedswords 2694 So\nstaffofaesculapius 2695 So\nscales 2696 So\nalembic 2697 So\nflower 2698 So\ngear 2699 So\nstaffofhermes 269A So\natom 269B So\nfleurdelis 269C So\nstaroutlinedwhite 269D So\nthreelinesconvergingright 269E So\nthreelinesconvergingleft 269F So\nwarning 26A0 So\nhighvoltage 26A1 So\ndfemaledbl 26A2 So\ndmaledbl 26A3 So\ninterlockedfemalemale 26A4 So\nmalefemale 26A5 So\nmalestroke 26A6 So\nmalestrokemalefemale 26A7 So\nverticalmalestroke 26A8 So\nhorizontalmalestroke 26A9 So\nmediumcirclewhite 26AA So\nmediumcircleblack 26AB So\nmediumsmallcirclewhite 26AC So\nmarriage 26AD So\ndivorce 26AE So\nunmarriedpartnership 26AF So\ncoffin 26B0 So\nfuneralurn 26B1 So\nneuter 26B2 So\nceres 26B3 So\npallas 26B4 So\njuno 26B5 So\nvesta 26B6 So\nchiron 26B7 So\nmoonlilithblack 26B8 So\nsextile 26B9 So\nsemisextile 26BA So\nquincunx 26BB So\nsesquiquadrate 26BC So\nsoccerball 26BD So\nbaseball 26BE So\nsquaredkey 26BF So\ndraughtsmanwhite 26C0 So\ndraughtskingwhite 26C1 So\ndraughtsmanblack 26C2 So\ndraughtskingblack 26C3 So\nsnowmanoutsnow 26C4 So\nsunbehindcloud 26C5 So\nrain 26C6 So\nsnowmanblack 26C7 So\nthundercloudrain 26C8 So\nturnedshogipiecewhite 26C9 So\nturnedshogipieceblack 26CA So\ndiamondinsquarewhite 26CB So\ncrossinglanes 26CC So\ndisabledcar 26CD So\nophiuchus 26CE So\npick 26CF So\ncarsliding 26D0 So\nhelmetcrosswhite 26D1 So\ncircledcrossinglanes 26D2 So\nchains 26D3 So\nnoentry 26D4 So\nalternateonewayleftwaytraffic 26D5 So\ntwowayleftwaytrafficblack 26D6 So\ntwowayleftwaytrafficwhite 26D7 So\nlanemergeleftblack 26D8 So\nlanemergeleftwhite 26D9 So\ndriveslow 26DA So\npointingtriangledownheavywhite 26DB So\nclosedentryleft 26DC So\nsquaredsaltire 26DD So\nfallingdiagonalincircleinsquareblackwhite 26DE So\ntruckblack 26DF So\nrestrictedentryoneleft 26E0 So\nrestrictedentrytwoleft 26E1 So\nastronomicaluranus 26E2 So\ncirclestroketwodotsaboveheavy 26E3 So\npentagram 26E4 So\nhedinterlacedpentagramright 26E5 So\nhedinterlacedpentagramleft 26E6 So\ninvertedpentagram 26E7 So\ncrossonshieldblack 26E8 So\nshintoshrine 26E9 So\nchurch 26EA So\ncastle 26EB So\nhistoricsite 26EC So\ngearouthub 26ED So\ngearhles 26EE So\nmaplighthouse 26EF So\nmountain 26F0 So\numbrellaonground 26F1 So\nfountain 26F2 So\nflaginhole 26F3 So\nferry 26F4 So\nsailboat 26F5 So\nsquarefourcorners 26F6 So\nskier 26F7 So\niceskate 26F8 So\npersonball 26F9 So\ntent 26FA So\njapanesebank 26FB So\nheadstonegraveyard 26FC So\nfuelpump 26FD So\nconsquareupblack 26FE So\nflaghorizontalmiddlestripeblackwhite 26FF So\n# Dingbats\nsafetyscissorsblack 2700 So\nscissorsupperblade 2701 So\nscissorsblack 2702 So\nscissorslowerblade 2703 So\nscissorswhite 2704 So\ncheckwhiteheavy 2705 So\ntelephonelocationsign 2706 So\ntapedrive 2707 So\nairplane 2708 So\nenvelope 2709 So\nraisedfist 270A So\nraisedh 270B So\nhvictory 270C So\nhwriting 270D So\npencillowerright 270E So\npencil 270F So\npencilupperright 2710 So\nnibwhite 2711 So\nnibblack 2712 So\ncheck 2713 So\ncheckheavy 2714 So\nmultiplicationx 2715 So\nmultiplicationxheavy 2716 So\nballotx 2717 So\nballotxheavy 2718 So\ngreekcrossoutlined 2719 So\ngreekcrossheavy 271A So\ncrosscentreopen 271B So\ncrosscentreopenheavy 271C So\nlatincross 271D So\nlatincrossshadowedwhite 271E So\nlatincrossoutlined 271F So\nmaltesecross 2720 So\nstarofdavid 2721 So\nasteriskteardropfour 2722 So\nasteriskballoonfour 2723 So\nasteriskballoonheavyfour 2724 So\nasteriskclubfour 2725 So\nstarpointedblackfour 2726 So\nstarpointedwhitefour 2727 So\nsparkles 2728 So\nstaroutlinedstresswhite 2729 So\nstarcircledwhite 272A So\nstarcentreopenblack 272B So\nstarcentreblackwhite 272C So\nstaroutlinedblack 272D So\nstaroutlinedblackheavy 272E So\nstarpinwheel 272F So\nstarshadowedwhite 2730 So\nasteriskheavy 2731 So\nasteriskcentreopen 2732 So\nspokedasteriskeight 2733 So\nstarpointedblackeight 2734 So\nstarpointedpinwheeleight 2735 So\nstarpointedblacksix 2736 So\ncompasstarpointedblackeight 2737 So\ncompasstarpointedblackheavyeight 2738 So\nstarpointedblacktwelve 2739 So\nasteriskpointedsixteen 273A So\nasteriskteardrop 273B So\nasteriskteardropcentreopen 273C So\nasteriskteardropheavy 273D So\nflorettepetalledblackwhitesix 273E So\nfloretteblack 273F So\nflorettewhite 2740 So\nfloretteoutlinedpetalledblackeight 2741 So\nstarcentreopenpointedcircledeight 2742 So\nasteriskteardroppinwheelheavy 2743 So\nsnowflake 2744 So\nsnowflaketight 2745 So\nchevronsnowflakeheavy 2746 So\nsparkle 2747 So\nsparkleheavy 2748 So\nasteriskballoon 2749 So\nasteriskteardroppropellereight 274A So\nasteriskteardroppropellerheavyeight 274B So\ncross 274C So\ncircleshadowedwhite 274D So\nsquaredcrossnegative 274E So\nsquareshadowlowerrightwhite 274F So\nsquareshadowupperrightwhite 2750 So\nsquarelowerrightshadowedwhite 2751 So\nsquareupperrightshadowedwhite 2752 So\nquestionblackornament 2753 So\nquestionwhiteornament 2754 So\nexclamationwhiteornament 2755 So\ndiamondminusxblackwhite 2756 So\nexclamationheavy 2757 So\nverticalbarlight 2758 So\nverticalbarmedium 2759 So\nverticalbarheavy 275A So\ncommaheavyturnedornament 275B So\ncommaheavyornament 275C So\ncommaheavydoubleturnedornament 275D So\ncommaheavydoubleornament 275E So\nlowcommaheavyornament 275F So\nlowcommaheavydoubleornament 2760 So\ncurvedstemparagraphsignornament 2761 So\nexclamationheavyornament 2762 So\nheartexclamationheavyornament 2763 So\nheartblackheavy 2764 So\nheartbulletrotatedblackheavy 2765 So\nfloralheart 2766 So\nfloralheartbulletrotated 2767 So\nparenthesisleftmediumornament 2768 Ps\nparenthesisrightmediumornament 2769 Pe\nparenthesisleftflattenedmediumornament 276A Ps\nparenthesisrightflattenedmediumornament 276B Pe\nbracketleftpointedanglemediumornament 276C Ps\nbracketrightpointedanglemediumornament 276D Pe\nquotationleftpointedangleheavyornament 276E Ps\nquotationrightpointedangleheavyornament 276F Pe\nbracketleftpointedangleheavyornament 2770 Ps\nbracketrightpointedangleheavyornament 2771 Pe\nbracketshellleftlightornament 2772 Ps\nbracketshellrightlightornament 2773 Pe\ncurlybracketleftmediumornament 2774 Ps\ncurlybracketrightmediumornament 2775 Pe\nonenegativecircled 2776 No\ntwonegativecircled 2777 No\nthreenegativecircled 2778 No\nfournegativecircled 2779 No\nfivenegativecircled 277A No\nsixnegativecircled 277B No\nsevennegativecircled 277C No\neightnegativecircled 277D No\nninenegativecircled 277E No\ntennegativecircled 277F No\nonesanscircled 2780 No\ntwosanscircled 2781 No\nthreesanscircled 2782 No\nfoursanscircled 2783 No\nfivesanscircled 2784 No\nsixsanscircled 2785 No\nsevensanscircled 2786 No\neightsanscircled 2787 No\nninesanscircled 2788 No\ntensanscircled 2789 No\nonesansnegativecircled 278A No\ntwosansnegativecircled 278B No\nthreesansnegativecircled 278C No\nfoursansnegativecircled 278D No\nfivesansnegativecircled 278E No\nsixsansnegativecircled 278F No\nsevensansnegativecircled 2790 No\neightsansnegativecircled 2791 No\nninesansnegativecircled 2792 No\ntensansnegativecircled 2793 No\narrowrightwideheavy 2794 So\nplussignheavy 2795 So\nminussignheavy 2796 So\ndivisionsignheavy 2797 So\narrowheavySE 2798 So\narrowrightheavy 2799 So\narrowheavyNE 279A So\narrowrightpointed 279B So\narrowrightroundheavy 279C So\narrowrighttriangle 279D So\narrowrighttriangleheavy 279E So\narrowrighttriangledashed 279F So\narrowrighttriangledashedheavy 27A0 So\narrowrightblack 27A1 So\narrowheadrightthreeDtoplight 27A2 So\narrowheadrightthreeDbottomlight 27A3 So\narrowheadrightblack 27A4 So\narrowrightcurvedownblackheavy 27A5 So\narrowrightcurveupblackheavy 27A6 So\narrowrightsquatblack 27A7 So\narrowrightpointedblackheavy 27A8 So\narrowrightrightshadedwhite 27A9 So\narrowrightleftshadedwhite 27AA So\narrowrightbacktiltedshadowedwhite 27AB So\narrowrightfronttiltedshadowedwhite 27AC So\narrowshadowrightlowerwhiteheavy 27AD So\narrowshadowrightupperwhiteheavy 27AE So\narrowshadowrightnotchedlowerwhite 27AF So\ncurlyloop 27B0 So\narrowshadowrightnotchedupperwhite 27B1 So\narrowrightcircledwhiteheavy 27B2 So\narrowrightfeatheredwhite 27B3 So\narrowfeatheredblackSE 27B4 So\narrowrightfeatheredblack 27B5 So\narrowfeatheredblackNE 27B6 So\narrowfeatheredblackheavySE 27B7 So\narrowrightfeatheredblackheavy 27B8 So\narrowfeatheredblackheavyNE 27B9 So\narrowteardropright 27BA So\narrowteardroprightheavy 27BB So\narrowrightwedge 27BC So\narrowrightwedgeheavy 27BD So\narrowrightoutlinedopen 27BE So\ncurlyloopdouble 27BF So\n# Miscellaneous Mathematical Symbols-A\nthreedimensionalangle 27C0 Sm\ntricontainingtriwhiteanglesmall 27C1 Sm\nperpendicular 27C2 Sm\nopensubset 27C3 Sm\nopensuperset 27C4 Sm\nbagdelimitersshapeleft 27C5 Ps\nbagdelimitersshaperight 27C6 Pe\nordotinside 27C7 Sm\nsolidussubsetreversepreceding 27C8 Sm\nsolidussupersetpreceding 27C9 Sm\nverticalbarhorizontalstroke 27CA Sm\nrisingdiagonal 27CB Sm\nlongdivision 27CC Sm\nfallingdiagonal 27CD Sm\ndlogicalsquare 27CE Sm\ndlogicalorsquare 27CF Sm\ncentreddotwhitediamond 27D0 Sm\ndot 27D1 Sm\nelementopeningup 27D2 Sm\nlowercornerdotright 27D3 Sm\ncornerdotupleft 27D4 Sm\nouterjoinleft 27D5 Sm\nouterjoinright 27D6 Sm\nouterjoinfull 27D7 Sm\nlargetackup 27D8 Sm\nlargetackdown 27D9 Sm\nturnstileleftrightdbl 27DA Sm\ntackleftright 27DB Sm\nmultimapleft 27DC Sm\nlongtackright 27DD Sm\nlongtackleft 27DE Sm\ntackcircleaboveup 27DF Sm\nlozengedividedbyrulehorizontal 27E0 Sm\nconvavediamondwhite 27E1 Sm\ntickconvavediamondleftwhite 27E2 Sm\ntickconvavediamondrightwhite 27E3 Sm\ntickleftwhitesquare 27E4 Sm\ntickrightwhitesquare 27E5 Sm\nbracketwhitesquareleft 27E6 Ps\nbracketwhitesquareright 27E7 Pe\nbracketangleleft 27E8 Ps\nbracketangleright 27E9 Pe\nbracketangledblleft 27EA Ps\nbracketangledblright 27EB Pe\nbracketshellwhiteleft 27EC Ps\nbracketshellwhiteright 27ED Pe\nparenflatleft 27EE Ps\nparenflatright 27EF Pe\n# Braille Patterns\nbrblank 2800 So\ndots1 2801 So\ndots2 2802 So\ndots12 2803 So\ndots3 2804 So\ndots13 2805 So\ndots23 2806 So\ndots123 2807 So\ndots4 2808 So\ndots14 2809 So\ndots24 280A So\ndots124 280B So\ndots34 280C So\ndots134 280D So\ndots234 280E So\ndots1234 280F So\ndots5 2810 So\ndots15 2811 So\ndots25 2812 So\ndots125 2813 So\ndots35 2814 So\ndots135 2815 So\ndots235 2816 So\ndots1235 2817 So\ndots45 2818 So\ndots145 2819 So\ndots245 281A So\ndots1245 281B So\ndots345 281C So\ndots1345 281D So\ndots2345 281E So\ndots12345 281F So\ndots6 2820 So\ndots16 2821 So\ndots26 2822 So\ndots126 2823 So\ndots36 2824 So\ndots136 2825 So\ndots236 2826 So\ndots1236 2827 So\ndots46 2828 So\ndots146 2829 So\ndots246 282A So\ndots1246 282B So\ndots346 282C So\ndots1346 282D So\ndots2346 282E So\ndots12346 282F So\ndots56 2830 So\ndots156 2831 So\ndots256 2832 So\ndots1256 2833 So\ndots356 2834 So\ndots1356 2835 So\ndots2356 2836 So\ndots12356 2837 So\ndots456 2838 So\ndots1456 2839 So\ndots2456 283A So\ndots12456 283B So\ndots3456 283C So\ndots13456 283D So\ndots23456 283E So\ndots123456 283F So\ndots7 2840 So\ndots17 2841 So\ndots27 2842 So\ndots127 2843 So\ndots37 2844 So\ndots137 2845 So\ndots237 2846 So\ndots1237 2847 So\ndots47 2848 So\ndots147 2849 So\ndots247 284A So\ndots1247 284B So\ndots347 284C So\ndots1347 284D So\ndots2347 284E So\ndots12347 284F So\ndots57 2850 So\ndots157 2851 So\ndots257 2852 So\ndots1257 2853 So\ndots357 2854 So\ndots1357 2855 So\ndots2357 2856 So\ndots12357 2857 So\ndots457 2858 So\ndots1457 2859 So\ndots2457 285A So\ndots12457 285B So\ndots3457 285C So\ndots13457 285D So\ndots23457 285E So\ndots123457 285F So\ndots67 2860 So\ndots167 2861 So\ndots267 2862 So\ndots1267 2863 So\ndots367 2864 So\ndots1367 2865 So\ndots2367 2866 So\ndots12367 2867 So\ndots467 2868 So\ndots1467 2869 So\ndots2467 286A So\ndots12467 286B So\ndots3467 286C So\ndots13467 286D So\ndots23467 286E So\ndots123467 286F So\ndots567 2870 So\ndots1567 2871 So\ndots2567 2872 So\ndots12567 2873 So\ndots3567 2874 So\ndots13567 2875 So\ndots23567 2876 So\ndots123567 2877 So\ndots4567 2878 So\ndots14567 2879 So\ndots24567 287A So\ndots124567 287B So\ndots34567 287C So\ndots134567 287D So\ndots234567 287E So\ndots1234567 287F So\ndots8 2880 So\ndots18 2881 So\ndots28 2882 So\ndots128 2883 So\ndots38 2884 So\ndots138 2885 So\ndots238 2886 So\ndots1238 2887 So\ndots48 2888 So\ndots148 2889 So\ndots248 288A So\ndots1248 288B So\ndots348 288C So\ndots1348 288D So\ndots2348 288E So\ndots12348 288F So\ndots58 2890 So\ndots158 2891 So\ndots258 2892 So\ndots1258 2893 So\ndots358 2894 So\ndots1358 2895 So\ndots2358 2896 So\ndots12358 2897 So\ndots458 2898 So\ndots1458 2899 So\ndots2458 289A So\ndots12458 289B So\ndots3458 289C So\ndots13458 289D So\ndots23458 289E So\ndots123458 289F So\ndots68 28A0 So\ndots168 28A1 So\ndots268 28A2 So\ndots1268 28A3 So\ndots368 28A4 So\ndots1368 28A5 So\ndots2368 28A6 So\ndots12368 28A7 So\ndots468 28A8 So\ndots1468 28A9 So\ndots2468 28AA So\ndots12468 28AB So\ndots3468 28AC So\ndots13468 28AD So\ndots23468 28AE So\ndots123468 28AF So\ndots568 28B0 So\ndots1568 28B1 So\ndots2568 28B2 So\ndots12568 28B3 So\ndots3568 28B4 So\ndots13568 28B5 So\ndots23568 28B6 So\ndots123568 28B7 So\ndots4568 28B8 So\ndots14568 28B9 So\ndots24568 28BA So\ndots124568 28BB So\ndots34568 28BC So\ndots134568 28BD So\ndots234568 28BE So\ndots1234568 28BF So\ndots78 28C0 So\ndots178 28C1 So\ndots278 28C2 So\ndots1278 28C3 So\ndots378 28C4 So\ndots1378 28C5 So\ndots2378 28C6 So\ndots12378 28C7 So\ndots478 28C8 So\ndots1478 28C9 So\ndots2478 28CA So\ndots12478 28CB So\ndots3478 28CC So\ndots13478 28CD So\ndots23478 28CE So\ndots123478 28CF So\ndots578 28D0 So\ndots1578 28D1 So\ndots2578 28D2 So\ndots12578 28D3 So\ndots3578 28D4 So\ndots13578 28D5 So\ndots23578 28D6 So\ndots123578 28D7 So\ndots4578 28D8 So\ndots14578 28D9 So\ndots24578 28DA So\ndots124578 28DB So\ndots34578 28DC So\ndots134578 28DD So\ndots234578 28DE So\ndots1234578 28DF So\ndots678 28E0 So\ndots1678 28E1 So\ndots2678 28E2 So\ndots12678 28E3 So\ndots3678 28E4 So\ndots13678 28E5 So\ndots23678 28E6 So\ndots123678 28E7 So\ndots4678 28E8 So\ndots14678 28E9 So\ndots24678 28EA So\ndots124678 28EB So\ndots34678 28EC So\ndots134678 28ED So\ndots234678 28EE So\ndots1234678 28EF So\ndots5678 28F0 So\ndots15678 28F1 So\ndots25678 28F2 So\ndots125678 28F3 So\ndots35678 28F4 So\ndots135678 28F5 So\ndots235678 28F6 So\ndots1235678 28F7 So\ndots45678 28F8 So\ndots145678 28F9 So\ndots245678 28FA So\ndots1245678 28FB So\ndots345678 28FC So\ndots1345678 28FD So\ndots2345678 28FE So\ndots12345678 28FF So\n# Glagolitic\nAzu 2C00 Lu\nBuky 2C01 Lu\nVede 2C02 Lu\nGlagoli 2C03 Lu\nDobro 2C04 Lu\nYestu 2C05 Lu\nZhivete 2C06 Lu\nDzelo 2C07 Lu\nZemlja 2C08 Lu\nIzhe 2C09 Lu\nInitializhe 2C0A Lu\nglag:I 2C0B Lu\nDjervi 2C0C Lu\nKako 2C0D Lu\nLjudije 2C0E Lu\nMyslite 2C0F Lu\nNashi 2C10 Lu\nOnu 2C11 Lu\nPokoji 2C12 Lu\nRitsi 2C13 Lu\nSlovo 2C14 Lu\nTvrido 2C15 Lu\nUku 2C16 Lu\nFritu 2C17 Lu\nHeru 2C18 Lu\nOtu 2C19 Lu\nPe 2C1A Lu\nShta 2C1B Lu\nTsi 2C1C Lu\nChrivi 2C1D Lu\nSha 2C1E Lu\nYeru 2C1F Lu\nYeri 2C20 Lu\nYati 2C21 Lu\nSpideryha 2C22 Lu\nYu 2C23 Lu\nSmallyus 2C24 Lu\nSmallyuswithtail 2C25 Lu\nYo 2C26 Lu\nIotatedsmallyus 2C27 Lu\nBigyus 2C28 Lu\nIotatedbigyus 2C29 Lu\nFita 2C2A Lu\nIzhitsa 2C2B Lu\nShtapic 2C2C Lu\nTrokutastia 2C2D Lu\nLatinatemyslite 2C2E Lu\nazu 2C30 Ll\nbuky 2C31 Ll\nvede 2C32 Ll\nglagoli 2C33 Ll\ndobro 2C34 Ll\nyestu 2C35 Ll\nzhivete 2C36 Ll\ndzelo 2C37 Ll\nzemlja 2C38 Ll\nizhe 2C39 Ll\ninitializhe 2C3A Ll\nglag:i 2C3B Ll\ndjervi 2C3C Ll\nkako 2C3D Ll\nljudije 2C3E Ll\nmyslite 2C3F Ll\nnashi 2C40 Ll\nonu 2C41 Ll\npokoji 2C42 Ll\nritsi 2C43 Ll\nslovo 2C44 Ll\ntvrido 2C45 Ll\nuku 2C46 Ll\nfritu 2C47 Ll\nheru 2C48 Ll\notu 2C49 Ll\npe 2C4A Ll\nshta 2C4B Ll\ntsi 2C4C Ll\nchrivi 2C4D Ll\nsha 2C4E Ll\nyeru 2C4F Ll\nyeri 2C50 Ll\nyati 2C51 Ll\nspideryha 2C52 Ll\nglag:yu 2C53 Ll\nsmallyus 2C54 Ll\nsmallyuswithtail 2C55 Ll\nyo 2C56 Ll\niotatedsmallyus 2C57 Ll\nbigyus 2C58 Ll\niotatedbigyus 2C59 Ll\nfita 2C5A Ll\nizhitsa 2C5B Ll\nshtapic 2C5C Ll\ntrokutastia 2C5D Ll\nlatinatemyslite 2C5E Ll\n# Latin Extended-C\nLdblbar 2C60 Lu\nldblbar 2C61 Ll\nLmiddletilde 2C62 Lu\nPstroke 2C63 Lu\nRtail 2C64 Lu\nastroke 2C65 Ll\ntstroke 2C66 Ll\nHdescender 2C67 Lu\nhdescender 2C68 Ll\nKdescender 2C69 Lu\nkdescender 2C6A Ll\nZdescender 2C6B Lu\nzdescender 2C6C Ll\nlt:Alpha 2C6D Lu\nMhook 2C6E Lu\nAturned 2C6F Lu\nlt:Alphaturned 2C70 Lu\nvrighthook 2C71 Ll\nWhook 2C72 Lu\nwhook 2C73 Ll\nvcurl 2C74 Ll\nHhalf 2C75 Lu\nhhalf 2C76 Ll\nphitailless 2C77 Ll\nenotch 2C78 Ll\nrtailturned 2C79 Ll\nolowringinside 2C7A Ll\nEsmallturned 2C7B Ll\nj.inferior 2C7C Lm\nVmod 2C7D Lm\nSswashtail 2C7E Lu\nZswashtail 2C7F Lu\n# Georgian Supplement\nanGeok 2D00 Ll\nbanGeok 2D01 Ll\nganGeok 2D02 Ll\ndonGeok 2D03 Ll\nenGeok 2D04 Ll\nvinGeok 2D05 Ll\nzenGeok 2D06 Ll\ntanGeok 2D07 Ll\ninGeok 2D08 Ll\nkanGeok 2D09 Ll\nlasGeok 2D0A Ll\nmanGeok 2D0B Ll\nnarGeok 2D0C Ll\nonGeok 2D0D Ll\nparGeok 2D0E Ll\nzharGeok 2D0F Ll\nraeGeok 2D10 Ll\nsanGeok 2D11 Ll\ntarGeok 2D12 Ll\nunGeok 2D13 Ll\npharGeok 2D14 Ll\nkharGeok 2D15 Ll\nghanGeok 2D16 Ll\nqarGeok 2D17 Ll\nshinGeok 2D18 Ll\nchinGeok 2D19 Ll\ncanGeok 2D1A Ll\njilGeok 2D1B Ll\ncilGeok 2D1C Ll\ncharGeok 2D1D Ll\nxanGeok 2D1E Ll\njhanGeok 2D1F Ll\nhaeGeok 2D20 Ll\nheGeok 2D21 Ll\nhieGeok 2D22 Ll\nweGeok 2D23 Ll\nharGeok 2D24 Ll\nhoeGeok 2D25 Ll\nynGeok 2D27 Ll\naenGeok 2D2D Ll\n# Supplemental Punctuation\nanglemarkersubstitutionright 2E00 Po\nanglemarkerdottedsubstitutionright 2E01 Po\nbracketsubstitutionleft 2E02 Pi\nbracketsubstitutionright 2E03 Pf\nbracketdottedsubstitutionleft 2E04 Pi\nbracketdottedsubstitutionright 2E05 Pf\nmarkerraisedinterpolation 2E06 Po\nmarkerdottedraisedinterpolation 2E07 Po\nmarkerdottedtransposition 2E08 Po\nbrackettranspositionleft 2E09 Pi\nbrackettranspositionright 2E0A Pf\nsquareraised 2E0B Po\nbracketraisedleft 2E0C Pi\nbracketraisedright 2E0D Pf\ncoroniseditorial 2E0E Po\nparagraphos 2E0F Po\nparagraphosforked 2E10 Po\nparagraphosforkedreversed 2E11 Po\nhypodiastole 2E12 Po\nobelosdotted 2E13 Po\nancoradown 2E14 Po\nancoraup 2E15 Po\nangledottedright 2E16 Po\nhyphendbloblique 2E17 Pd\ninterrobanginverted 2E18 Po\npalmbranch 2E19 Po\nhyphendieresis 2E1A Pd\ntildering 2E1B Po\nbracketparaphraselowleft 2E1C Pi\nbracketparaphraselowright 2E1D Pf\ntildedotaccent 2E1E Po\ntildedotbelow 2E1F Po\nbarquillverticalleft 2E20 Pi\nbarquillverticalright 2E21 Pf\nbrackethalftopleft 2E22 Ps\nbrackethalftopright 2E23 Pe\nbrackethalfbottomleft 2E24 Ps\nbrackethalfbottomright 2E25 Pe\nubracketleft 2E26 Ps\nubracketright 2E27 Pe\nparendblleft 2E28 Ps\nparendblright 2E29 Pe\ntwodotsoveronedot 2E2A Po\nonedotovertwodots 2E2B Po\ndotsquarefour 2E2C Po\nfivedot 2E2D Po\nquestionreversed 2E2E Po\ntildevertical 2E2F Lm\npointring 2E30 Po\nwordseparatormiddledot 2E31 Po\nturnedcomma 2E32 Po\ndotraised 2E33 Po\ncommaraised 2E34 Po\nturnedsemicolon 2E35 Po\ndaggerwithguardleft 2E36 Po\ndaggerwithguardright 2E37 Po\nturneddagger 2E38 Po\nsectionsignhalftop 2E39 Po\nemdashdbl 2E3A Pd\nemdashtpl 2E3B Pd\nstenographicfullstop 2E3C Po\nsixdotsvertical 2E3D Po\nwigglylinevertical 2E3E Po\ncapitulum 2E3F Po\nhyphendbl 2E40 Pd\ncommareversed 2E41 Po\nquotedbllowreversed 2E42 Ps\ndashwithupturnleft 2E43 Po\nsuspensiondbl 2E44 Po\nkavykainvertedlow 2E45 Po\nkavykawithkavykaaboveinvertedlow 2E46 Po\nkavykalow 2E47 Po\nkavykawithdotlow 2E48 Po\nstackedcommadbl 2E49 Po\nsolidusdotted 2E4A Po\ntripledagger 2E4B Po\nmedievalcomma 2E4C Po\nparagraphus 2E4D Po\npunctuselevatus 2E4E Po\ncornishversedivider 2E4F Po\n# CJK Symbols and Punctuation\nideographicspace 3000 Zs\nideographiccomma 3001 Po\nideographicperiod 3002 Po\ndittomark 3003 Po\njis 3004 So\nideographiciterationmark 3005 Lm\nideographicclose 3006 Lo\nideographiczero 3007 Nl\nanglebracketleft 3008 Ps\nanglebracketright 3009 Pe\ndblanglebracketleft 300A Ps\ndblanglebracketright 300B Pe\ncornerbracketleft 300C Ps\ncornerbracketright 300D Pe\nwhitecornerbracketleft 300E Ps\nwhitecornerbracketright 300F Pe\nblacklenticularbracketleft 3010 Ps\nblacklenticularbracketright 3011 Pe\npostalmark 3012 So\ngetamark 3013 So\ntortoiseshellbracketleft 3014 Ps\ntortoiseshellbracketright 3015 Pe\nwhitelenticularbracketleft 3016 Ps\nwhitelenticularbracketright 3017 Pe\nwhitetortoiseshellbracketleft 3018 Ps\nwhitetortoiseshellbracketright 3019 Pe\nwhitesquarebracketleft 301A Ps\nwhitesquarebracketright 301B Pe\nwavedash 301C Pd\nquotedblprimereversed 301D Ps\nquotedblprime 301E Pe\nlowquotedblprime 301F Pe\npostalmarkface 3020 So\nonehangzhou 3021 Nl\ntwohangzhou 3022 Nl\nthreehangzhou 3023 Nl\nfourhangzhou 3024 Nl\nfivehangzhou 3025 Nl\nsixhangzhou 3026 Nl\nsevenhangzhou 3027 Nl\neighthangzhou 3028 Nl\nninehangzhou 3029 Nl\nideographicleveltonemark 302A Mn\nideographicrisingtonemark 302B Mn\nideographicdepartingtonemark 302C Mn\nideographicenteringtonemark 302D Mn\nhangulsingledottonemark 302E Mc\nhanguldottonemarkdbl 302F Mc\nwavydash 3030 Pd\nverticalkanarepeatmark 3031 Lm\nverticalkanarepeatwithvoicedsoundmark 3032 Lm\nverticalkanarepeatmarkupperhalf 3033 Lm\nverticalkanarepeatwithvoicedsoundmarkupperhalf 3034 Lm\nverticalkanarepeatmarklowerhalf 3035 Lm\ncirclepostalmark 3036 So\nideographictelegraphlinefeedseparatorsymbol 3037 So\ntenhangzhou 3038 Nl\ntwentyhangzhou 3039 Nl\nthirtyhangzhou 303A Nl\nverticalideographiciterationmark 303B Lm\nmasumark 303C Lo\npartalternationmark 303D Po\nideographicvariationindicator 303E So\nideographichalffillspace 303F So\n# Hiragana\nhira:asmall 3041 Lo\nhira:a 3042 Lo\nhira:ismall 3043 Lo\nhira:i 3044 Lo\nhira:usmall 3045 Lo\nhira:u 3046 Lo\nhira:esmall 3047 Lo\nhira:e 3048 Lo\nhira:osmall 3049 Lo\nhira:o 304A Lo\nhira:ka 304B Lo\nhira:ga 304C Lo\nhira:ki 304D Lo\nhira:gi 304E Lo\nhira:ku 304F Lo\nhira:gu 3050 Lo\nhira:ke 3051 Lo\nhira:ge 3052 Lo\nhira:ko 3053 Lo\nhira:go 3054 Lo\nhira:sa 3055 Lo\nhira:za 3056 Lo\nhira:si 3057 Lo\nhira:zi 3058 Lo\nhira:su 3059 Lo\nhira:zu 305A Lo\nhira:se 305B Lo\nhira:ze 305C Lo\nhira:so 305D Lo\nhira:zo 305E Lo\nhira:ta 305F Lo\nhira:da 3060 Lo\nhira:ti 3061 Lo\nhira:di 3062 Lo\nhira:tusmall 3063 Lo\nhira:tu 3064 Lo\nhira:du 3065 Lo\nhira:te 3066 Lo\nhira:de 3067 Lo\nhira:to 3068 Lo\nhira:do 3069 Lo\nhira:na 306A Lo\nhira:ni 306B Lo\nhira:nu 306C Lo\nhira:ne 306D Lo\nhira:no 306E Lo\nhira:ha 306F Lo\nhira:ba 3070 Lo\nhira:pa 3071 Lo\nhira:hi 3072 Lo\nhira:bi 3073 Lo\nhira:pi 3074 Lo\nhira:hu 3075 Lo\nhira:bu 3076 Lo\nhira:pu 3077 Lo\nhira:he 3078 Lo\nhira:be 3079 Lo\nhira:pe 307A Lo\nhira:ho 307B Lo\nhira:bo 307C Lo\nhira:po 307D Lo\nhira:ma 307E Lo\nhira:mi 307F Lo\nhira:mu 3080 Lo\nhira:me 3081 Lo\nhira:mo 3082 Lo\nhira:yasmall 3083 Lo\nhira:ya 3084 Lo\nhira:yusmall 3085 Lo\nhira:yu 3086 Lo\nhira:yosmall 3087 Lo\nhira:yo 3088 Lo\nhira:ra 3089 Lo\nhira:ri 308A Lo\nhira:ru 308B Lo\nhira:re 308C Lo\nhira:ro 308D Lo\nhira:wasmall 308E Lo\nhira:wa 308F Lo\nhira:wi 3090 Lo\nhira:we 3091 Lo\nhira:wo 3092 Lo\nhira:n 3093 Lo\nhira:vu 3094 Lo\nhira:kasmall 3095 Lo\nhira:kesmall 3096 Lo\nhira:voicedmarkkanacmb 3099 Mn\nhira:semivoicedmarkkanacmb 309A Mn\nhira:voicedmarkkana 309B Sk\nhira:semivoicedmarkkana 309C Sk\nhira:iterationhiragana 309D Lm\nhira:voicediterationhiragana 309E Lm\nhira:digraphyori 309F Lo\n# Katakana\nkata:doublehyphenkana 30A0 Pd\nkata:asmall 30A1 Lo\nkata:a 30A2 Lo\nkata:ismall 30A3 Lo\nkata:i 30A4 Lo\nkata:usmall 30A5 Lo\nkata:u 30A6 Lo\nkata:esmall 30A7 Lo\nkata:e 30A8 Lo\nkata:osmall 30A9 Lo\nkata:o 30AA Lo\nkata:ka 30AB Lo\nkata:ga 30AC Lo\nkata:ki 30AD Lo\nkata:gi 30AE Lo\nkata:ku 30AF Lo\nkata:gu 30B0 Lo\nkata:ke 30B1 Lo\nkata:ge 30B2 Lo\nkata:ko 30B3 Lo\nkata:go 30B4 Lo\nkata:sa 30B5 Lo\nkata:za 30B6 Lo\nkata:si 30B7 Lo\nkata:zi 30B8 Lo\nkata:su 30B9 Lo\nkata:zu 30BA Lo\nkata:se 30BB Lo\nkata:ze 30BC Lo\nkata:so 30BD Lo\nkata:zo 30BE Lo\nkata:ta 30BF Lo\nkata:da 30C0 Lo\nkata:ti 30C1 Lo\nkata:di 30C2 Lo\nkata:tusmall 30C3 Lo\nkata:tu 30C4 Lo\nkata:du 30C5 Lo\nkata:te 30C6 Lo\nkata:de 30C7 Lo\nkata:to 30C8 Lo\nkata:do 30C9 Lo\nkata:na 30CA Lo\nkata:ni 30CB Lo\nkata:nu 30CC Lo\nkata:ne 30CD Lo\nkata:no 30CE Lo\nkata:ha 30CF Lo\nkata:ba 30D0 Lo\nkata:pa 30D1 Lo\nkata:hi 30D2 Lo\nkata:bi 30D3 Lo\nkata:pi 30D4 Lo\nkata:hu 30D5 Lo\nkata:bu 30D6 Lo\nkata:pu 30D7 Lo\nkata:he 30D8 Lo\nkata:be 30D9 Lo\nkata:pe 30DA Lo\nkata:ho 30DB Lo\nkata:bo 30DC Lo\nkata:po 30DD Lo\nkata:ma 30DE Lo\nkata:mi 30DF Lo\nkata:mu 30E0 Lo\nkata:me 30E1 Lo\nkata:mo 30E2 Lo\nkata:yasmall 30E3 Lo\nkata:ya 30E4 Lo\nkata:yusmall 30E5 Lo\nkata:yu 30E6 Lo\nkata:yosmall 30E7 Lo\nkata:yo 30E8 Lo\nkata:ra 30E9 Lo\nkata:ri 30EA Lo\nkata:ru 30EB Lo\nkata:re 30EC Lo\nkata:ro 30ED Lo\nkata:wasmall 30EE Lo\nkata:wa 30EF Lo\nkata:wi 30F0 Lo\nkata:we 30F1 Lo\nkata:wo 30F2 Lo\nkata:n 30F3 Lo\nkata:vu 30F4 Lo\nkata:kasmall 30F5 Lo\nkata:kesmall 30F6 Lo\nkata:va 30F7 Lo\nkata:vi 30F8 Lo\nkata:ve 30F9 Lo\nkata:vo 30FA Lo\nkata:middledot 30FB Po\nkata:prolongedkana 30FC Lm\nkata:iteration 30FD Lm\nkata:voicediteration 30FE Lm\nkata:digraphkoto 30FF Lo\n# Bopomofo\nbopo:b 3105 Lo\nbopo:p 3106 Lo\nbopo:m 3107 Lo\nbopo:f 3108 Lo\nbopo:d 3109 Lo\nbopo:t 310A Lo\nbopo:n 310B Lo\nbopo:l 310C Lo\nbopo:g 310D Lo\nbopo:k 310E Lo\nbopo:h 310F Lo\nbopo:j 3110 Lo\nbopo:q 3111 Lo\nbopo:x 3112 Lo\nbopo:zh 3113 Lo\nbopo:ch 3114 Lo\nbopo:sh 3115 Lo\nbopo:r 3116 Lo\nbopo:z 3117 Lo\nbopo:c 3118 Lo\nbopo:s 3119 Lo\nbopo:a 311A Lo\nbopo:o 311B Lo\nbopo:e 311C Lo\nbopo:eh 311D Lo\nbopo:ai 311E Lo\nbopo:ei 311F Lo\nbopo:au 3120 Lo\nbopo:ou 3121 Lo\nbopo:an 3122 Lo\nbopo:en 3123 Lo\nbopo:ang 3124 Lo\nbopo:eng 3125 Lo\nbopo:er 3126 Lo\nbopo:i 3127 Lo\nbopo:u 3128 Lo\nbopo:iu 3129 Lo\nbopo:v 312A Lo\nbopo:ng 312B Lo\nbopo:gn 312C Lo\nbopo:ih 312D Lo\nbopo:owithdotabove 312E Lo\nbopo:nn 312F Lo\n# Hangul Compatibility Jamo\nko:kiyeok 3131 Lo\nko:ssangkiyeok 3132 Lo\nko:kiyeoksios 3133 Lo\nko:nieun 3134 Lo\nko:nieuncieuc 3135 Lo\nko:nieunhieuh 3136 Lo\nko:tikeut 3137 Lo\nko:ssangtikeut 3138 Lo\nko:rieul 3139 Lo\nko:rieulkiyeok 313A Lo\nko:rieulmieum 313B Lo\nko:rieulpieup 313C Lo\nko:rieulsios 313D Lo\nko:rieulthieuth 313E Lo\nko:rieulphieuph 313F Lo\nko:rieulhieuh 3140 Lo\nko:mieum 3141 Lo\nko:pieup 3142 Lo\nko:ssangpieup 3143 Lo\nko:pieupsios 3144 Lo\nko:sios 3145 Lo\nko:ssangsios 3146 Lo\nko:ieung 3147 Lo\nko:cieuc 3148 Lo\nko:ssangcieuc 3149 Lo\nko:chieuch 314A Lo\nko:khieukh 314B Lo\nko:thieuth 314C Lo\nko:phieuph 314D Lo\nko:hieuh 314E Lo\nko:a 314F Lo\nko:ae 3150 Lo\nko:ya 3151 Lo\nko:yae 3152 Lo\nko:eo 3153 Lo\nko:e 3154 Lo\nko:yeo 3155 Lo\nko:ye 3156 Lo\nko:o 3157 Lo\nko:wa 3158 Lo\nko:wae 3159 Lo\nko:oe 315A Lo\nko:yo 315B Lo\nko:u 315C Lo\nko:weo 315D Lo\nko:we 315E Lo\nko:wi 315F Lo\nko:yu 3160 Lo\nko:eu 3161 Lo\nko:yi 3162 Lo\nko:i 3163 Lo\nko:filler 3164 Lo\nko:ssangnieun 3165 Lo\nko:nieuntikeut 3166 Lo\nko:nieunsios 3167 Lo\nko:nieunpansios 3168 Lo\nko:rieulkiyeoksios 3169 Lo\nko:rieultikeut 316A Lo\nko:rieulpieupsios 316B Lo\nko:rieulpansios 316C Lo\nko:rieulyeorinhieuh 316D Lo\nko:mieumpieup 316E Lo\nko:mieumsios 316F Lo\nko:mieumpansios 3170 Lo\nko:kapyeounmieum 3171 Lo\nko:pieupkiyeok 3172 Lo\nko:pieuptikeut 3173 Lo\nko:pieupsioskiyeok 3174 Lo\nko:pieupsiostikeut 3175 Lo\nko:pieupcieuc 3176 Lo\nko:pieupthieuth 3177 Lo\nko:kapyeounpieup 3178 Lo\nko:kapyeounssangpieup 3179 Lo\nko:sioskiyeok 317A Lo\nko:siosnieun 317B Lo\nko:siostikeut 317C Lo\nko:siospieup 317D Lo\nko:sioscieuc 317E Lo\nko:pansios 317F Lo\nko:ssangieung 3180 Lo\nko:yesieung 3181 Lo\nko:yesieungsios 3182 Lo\nko:yesieungpansios 3183 Lo\nko:kapyeounphieuph 3184 Lo\nko:ssanghieuh 3185 Lo\nko:yeorinhieuh 3186 Lo\nko:yoya 3187 Lo\nko:yoyae 3188 Lo\nko:yoi 3189 Lo\nko:yuyeo 318A Lo\nko:yuye 318B Lo\nko:yui 318C Lo\nko:araea 318D Lo\nko:araeae 318E Lo\n# Enclosed CJK Letters and Months\nhangulkiyeokparen 3200 So\nhangulnieunparen 3201 So\nhangultikeutparen 3202 So\nhangulrieulparen 3203 So\nhangulmieumparen 3204 So\nhangulpieupparen 3205 So\nhangulsiosparen 3206 So\nhangulieungparen 3207 So\nhangulcieucparen 3208 So\nhangulchieuchparen 3209 So\nhangulkhieukhparen 320A So\nhangulthieuthparen 320B So\nhangulphieuphparen 320C So\nhangulhieuhparen 320D So\nhangulkiyeokaparen 320E So\nhangulnieunaparen 320F So\nhangultikeutaparen 3210 So\nhangulrieulaparen 3211 So\nhangulmieumaparen 3212 So\nhangulpieupaparen 3213 So\nhangulsiosaparen 3214 So\nhangulieungaparen 3215 So\nhangulcieucaparen 3216 So\nhangulchieuchaparen 3217 So\nhangulkhieukhaparen 3218 So\nhangulthieuthaparen 3219 So\nhangulphieuphaparen 321A So\nhangulhieuhaparen 321B So\nhangulcieucuparen 321C So\nojeonparen 321D So\nohuparen 321E So\noneideographicparen 3220 No\ntwoideographicparen 3221 No\nthreeideographicparen 3222 No\nfourideographicparen 3223 No\nfiveideographicparen 3224 No\nsixideographicparen 3225 No\nsevenideographicparen 3226 No\neightideographicparen 3227 No\nnineideographicparen 3228 No\ntenideographicparen 3229 No\nmoonideographicparen 322A So\nfireideographicparen 322B So\nwaterideographicparen 322C So\nwoodideographicparen 322D So\nmetalideographicparen 322E So\nearthideographicparen 322F So\nsunideographicparen 3230 So\nstockideographicparen 3231 So\nhaveideographicparen 3232 So\nsocietyideographicparen 3233 So\nnameideographicparen 3234 So\nspecialideographicparen 3235 So\nfinancialideographicparen 3236 So\ncongratulationideographicparen 3237 So\nlaborideographicparen 3238 So\nrepresentideographicparen 3239 So\ncallideographicparen 323A So\nstudyideographicparen 323B So\nsuperviseideographicparen 323C So\nenterpriseideographicparen 323D So\nresourceideographicparen 323E So\nallianceideographicparen 323F So\nfestivalideographicparen 3240 So\nrestideographicparen 3241 So\nselfideographicparen 3242 So\nreachideographicparen 3243 So\nquestionideographiccircled 3244 So\nkindergartenideographiccircled 3245 So\nschoolideographiccircled 3246 So\nkotoideographiccircled 3247 So\ntencirclesquare 3248 No\ntwentycirclesquare 3249 No\nthirtycirclesquare 324A No\nfortycirclesquare 324B No\nfiftycirclesquare 324C No\nsixtycirclesquare 324D No\nseventycirclesquare 324E No\neightycirclesquare 324F No\npartnership 3250 So\ntwentyonecircle 3251 No\ntwentytwocircle 3252 No\ntwentythreecircle 3253 No\ntwentyfourcircle 3254 No\ntwentyfivecircle 3255 No\ntwentysixcircle 3256 No\ntwentysevencircle 3257 No\ntwentyeightcircle 3258 No\ntwentyninecircle 3259 No\nthirtycircle 325A No\nthirtyonecircle 325B No\nthirtytwocircle 325C No\nthirtythreecircle 325D No\nthirtyfourcircle 325E No\nthirtyfivecircle 325F No\nkiyeokcirclekorean 3260 So\nnieuncirclekorean 3261 So\ntikeutcirclekorean 3262 So\nrieulcirclekorean 3263 So\nmieumcirclekorean 3264 So\npieupcirclekorean 3265 So\nsioscirclekorean 3266 So\nieungcirclekorean 3267 So\ncieuccirclekorean 3268 So\nchieuchcirclekorean 3269 So\nkhieukhcirclekorean 326A So\nthieuthcirclekorean 326B So\nphieuphcirclekorean 326C So\nhieuhcirclekorean 326D So\nkiyeokacirclekorean 326E So\nnieunacirclekorean 326F So\ntikeutacirclekorean 3270 So\nrieulacirclekorean 3271 So\nmieumacirclekorean 3272 So\npieupacirclekorean 3273 So\nsiosacirclekorean 3274 So\nieungacirclekorean 3275 So\ncieucacirclekorean 3276 So\nchieuchacirclekorean 3277 So\nkhieukhacirclekorean 3278 So\nthieuthacirclekorean 3279 So\nphieuphacirclekorean 327A So\nhieuhacirclekorean 327B So\nchamkocircle 327C So\njueuicircle 327D So\nieungucirclekorean 327E So\nkoreanstandardsymbol 327F So\noneideographiccircled 3280 No\ntwoideographiccircled 3281 No\nthreeideographiccircled 3282 No\nfourideographiccircled 3283 No\nfiveideographiccircled 3284 No\nsixideographiccircled 3285 No\nsevenideographiccircled 3286 No\neightideographiccircled 3287 No\nnineideographiccircled 3288 No\ntenideographiccircled 3289 No\nmoonideographiccircled 328A So\nfireideographiccircled 328B So\nwaterideographiccircled 328C So\nwoodideographiccircled 328D So\nmetalideographiccircled 328E So\nearthideographiccircled 328F So\nsunideographiccircled 3290 So\nstockideographiccircled 3291 So\nhaveideographiccircled 3292 So\nsocietyideographiccircled 3293 So\nnameideographiccircled 3294 So\nspecialideographiccircled 3295 So\nfinancialideographiccircled 3296 So\ncongratulationideographiccircled 3297 So\nlaborideographiccircled 3298 So\nsecretideographiccircled 3299 So\nmaleideographiccircled 329A So\nfemaleideographiccircled 329B So\nsuitableideographiccircled 329C So\nexcellentideographiccircled 329D So\nprintideographiccircled 329E So\nattentionideographiccircled 329F So\nitemideographiccircled 32A0 So\nrestideographiccircled 32A1 So\ncopyideographiccircled 32A2 So\ncorrectideographiccircled 32A3 So\nhighideographiccircled 32A4 So\ncentreideographiccircled 32A5 So\nlowideographiccircled 32A6 So\nleftideographiccircled 32A7 So\nrightideographiccircled 32A8 So\nmedicineideographiccircled 32A9 So\nreligionideographiccircled 32AA So\nstudyideographiccircled 32AB So\nsuperviseideographiccircled 32AC So\nenterpriseideographiccircled 32AD So\nresourceideographiccircled 32AE So\nallianceideographiccircled 32AF So\nnightideographiccircled 32B0 So\nthirtysixcircle 32B1 No\nthirtysevencircle 32B2 No\nthirtyeightcircle 32B3 No\nthirtyninecircle 32B4 No\nfortycircle 32B5 No\nfortyonecircle 32B6 No\nfortytwocircle 32B7 No\nfortythreecircle 32B8 No\nfortyfourcircle 32B9 No\nfortyfivecircle 32BA No\nfortysixcircle 32BB No\nfortysevencircle 32BC No\nfortyeightcircle 32BD No\nfortyninecircle 32BE No\nfiftycircle 32BF No\njanuarytelegraph 32C0 So\nfebruarytelegraph 32C1 So\nmarchtelegraph 32C2 So\napriltelegraph 32C3 So\nmaytelegraph 32C4 So\njunetelegraph 32C5 So\njulytelegraph 32C6 So\naugusttelegraph 32C7 So\nseptembertelegraph 32C8 So\noctobertelegraph 32C9 So\nnovembertelegraph 32CA So\ndecembertelegraph 32CB So\nHgfullwidth 32CC So\nergfullwidth 32CD So\neVfullwidth 32CE So\nLTDfullwidth 32CF So\nacirclekatakana 32D0 So\nicirclekatakana 32D1 So\nucirclekatakana 32D2 So\necirclekatakana 32D3 So\nocirclekatakana 32D4 So\nkacirclekatakana 32D5 So\nkicirclekatakana 32D6 So\nkucirclekatakana 32D7 So\nkecirclekatakana 32D8 So\nkocirclekatakana 32D9 So\nsacirclekatakana 32DA So\nsicirclekatakana 32DB So\nsucirclekatakana 32DC So\nsecirclekatakana 32DD So\nsocirclekatakana 32DE So\ntacirclekatakana 32DF So\nticirclekatakana 32E0 So\ntucirclekatakana 32E1 So\ntecirclekatakana 32E2 So\ntocirclekatakana 32E3 So\nnacirclekatakana 32E4 So\nnicirclekatakana 32E5 So\nnucirclekatakana 32E6 So\nnecirclekatakana 32E7 So\nnocirclekatakana 32E8 So\nhacirclekatakana 32E9 So\nhicirclekatakana 32EA So\nhucirclekatakana 32EB So\nhecirclekatakana 32EC So\nhocirclekatakana 32ED So\nmacirclekatakana 32EE So\nmicirclekatakana 32EF So\nmucirclekatakana 32F0 So\nmecirclekatakana 32F1 So\nmocirclekatakana 32F2 So\nyacirclekatakana 32F3 So\nyucirclekatakana 32F4 So\nyocirclekatakana 32F5 So\nracirclekatakana 32F6 So\nricirclekatakana 32F7 So\nrucirclekatakana 32F8 So\nrecirclekatakana 32F9 So\nrocirclekatakana 32FA So\nwacirclekatakana 32FB So\nwicirclekatakana 32FC So\nwecirclekatakana 32FD So\nwocirclekatakana 32FE So\nsquareeranamereiwa 32FF So\n# CJK Compatibility\napaatosquare 3300 So\naruhuasquare 3301 So\nanpeasquare 3302 So\naarusquare 3303 So\niningusquare 3304 So\nintisquare 3305 So\nuonsquare 3306 So\nesukuudosquare 3307 So\neekaasquare 3308 So\nonsusquare 3309 So\noomusquare 330A So\nkairisquare 330B So\nkarattosquare 330C So\nkaroriisquare 330D So\ngaronsquare 330E So\nganmasquare 330F So\ngigasquare 3310 So\nginiisquare 3311 So\nkyuriisquare 3312 So\ngirudaasquare 3313 So\nkirosquare 3314 So\nkiroguramusquare 3315 So\nkiromeetorusquare 3316 So\nkirowattosquare 3317 So\nguramusquare 3318 So\nguramutonsquare 3319 So\nkuruzeirosquare 331A So\nkuroonesquare 331B So\nkeesusquare 331C So\nkorunasquare 331D So\nkooposquare 331E So\nsaikurusquare 331F So\nsantiimusquare 3320 So\nsiringusquare 3321 So\nsentisquare 3322 So\nsentosquare 3323 So\ndaasusquare 3324 So\ndesisquare 3325 So\ndorusquare 3326 So\ntonsquare 3327 So\nnanosquare 3328 So\nnottosquare 3329 So\nhaitusquare 332A So\npaasentosquare 332B So\npaatusquare 332C So\nbaarerusquare 332D So\npiasutorusquare 332E So\npikurusquare 332F So\npikosquare 3330 So\nbirusquare 3331 So\nhuaraddosquare 3332 So\nhuiitosquare 3333 So\nbussyerusquare 3334 So\nhuransquare 3335 So\nhekutaarusquare 3336 So\npesosquare 3337 So\npenihisquare 3338 So\nherutusquare 3339 So\npensusquare 333A So\npeezisquare 333B So\nbeetasquare 333C So\npointosquare 333D So\nborutosquare 333E So\nhonsquare 333F So\npondosquare 3340 So\nhoorusquare 3341 So\nhoonsquare 3342 So\nmaikurosquare 3343 So\nmairusquare 3344 So\nmahhasquare 3345 So\nmarukusquare 3346 So\nmansyonsquare 3347 So\nmikuronsquare 3348 So\nmirisquare 3349 So\nmiribaarusquare 334A So\nmegasquare 334B So\nmegatonsquare 334C So\nmeetorusquare 334D So\nyaadosquare 334E So\nyaarusquare 334F So\nyuansquare 3350 So\nrittorusquare 3351 So\nrirasquare 3352 So\nrupiisquare 3353 So\nruuburusquare 3354 So\nremusquare 3355 So\nrentogensquare 3356 So\nwattosquare 3357 So\nideographictelegraphsymbolforhourzero 3358 So\nideographictelegraphsymbolforhourone 3359 So\nideographictelegraphsymbolforhourtwo 335A So\nideographictelegraphsymbolforhourthree 335B So\nideographictelegraphsymbolforhourfour 335C So\nideographictelegraphsymbolforhourfive 335D So\nideographictelegraphsymbolforhoursix 335E So\nideographictelegraphsymbolforhourseven 335F So\nideographictelegraphsymbolforhoureight 3360 So\nideographictelegraphsymbolforhournine 3361 So\nideographictelegraphsymbolforhourten 3362 So\nideographictelegraphsymbolforhoureleven 3363 So\nideographictelegraphsymbolforhourtwelve 3364 So\nideographictelegraphsymbolforhourthirteen 3365 So\nideographictelegraphsymbolforhourfourteen 3366 So\nideographictelegraphsymbolforhourfifteen 3367 So\nideographictelegraphsymbolforhoursixteen 3368 So\nideographictelegraphsymbolforhourseventeen 3369 So\nideographictelegraphsymbolforhoureighteen 336A So\nideographictelegraphsymbolforhournineteen 336B So\nideographictelegraphsymbolforhourtwenty 336C So\nideographictelegraphsymbolforhourtwentyone 336D So\nideographictelegraphsymbolforhourtwentytwo 336E So\nideographictelegraphsymbolforhourtwentythree 336F So\nideographictelegraphsymbolforhourtwentyfour 3370 So\nhpafullwidth 3371 So\ndafullwidth 3372 So\naufullwidth 3373 So\nbarfullwidth 3374 So\novfullwidth 3375 So\npcfullwidth 3376 So\ndmfullwidth 3377 So\ndm2fullwidth 3378 So\ndm3fullwidth 3379 So\niufullwidth 337A So\neranameheiseisquare 337B So\neranamesyouwasquare 337C So\neranametaisyousquare 337D So\neranamemeizisquare 337E So\ncorporationsquare 337F So\npaampsfullwidth 3380 So\nnafullwidth 3381 So\nmuafullwidth 3382 So\nmafullwidth 3383 So\nkafullwidth 3384 So\nkbfullwidth 3385 So\nmbfullwidth 3386 So\ngbfullwidth 3387 So\ncalfullwidth 3388 So\nkcalfullwidth 3389 So\npffullwidth 338A So\nnffullwidth 338B So\nmuffullwidth 338C So\nmugfullwidth 338D So\nmgfullwidth 338E So\nkgfullwidth 338F So\nhzfullwidth 3390 So\nkhzfullwidth 3391 So\nmhzfullwidth 3392 So\nghzfullwidth 3393 So\nthzfullwidth 3394 So\nmulfullwidth 3395 So\nmlfullwidth 3396 So\ndlfullwidth 3397 So\nklfullwidth 3398 So\nfmfullwidth 3399 So\nnmfullwidth 339A So\nmumfullwidth 339B So\nmmfullwidth 339C So\ncmfullwidth 339D So\nkmfullwidth 339E So\nmm2fullwidth 339F So\ncm2fullwidth 33A0 So\nm2fullwidth 33A1 So\nkm2fullwidth 33A2 So\nmm3fullwidth 33A3 So\ncm3fullwidth 33A4 So\nm3fullwidth 33A5 So\nkm3fullwidth 33A6 So\nmoversfullwidth 33A7 So\nmovers2fullwidth 33A8 So\npafullwidth 33A9 So\nkpafullwidth 33AA So\nmpafullwidth 33AB So\ngpafullwidth 33AC So\nradfullwidth 33AD So\nradoversfullwidth 33AE So\nradovers2fullwidth 33AF So\npsfullwidth 33B0 So\nnsfullwidth 33B1 So\nmusfullwidth 33B2 So\nmsfullwidth 33B3 So\npvfullwidth 33B4 So\nnvfullwidth 33B5 So\nmuvfullwidth 33B6 So\nmvfullwidth 33B7 So\nkvfullwidth 33B8 So\nmvmegafullwidth 33B9 So\npwfullwidth 33BA So\nnwfullwidth 33BB So\nmuwfullwidth 33BC So\nmwfullwidth 33BD So\nkwfullwidth 33BE So\nmwmegafullwidth 33BF So\nkohmfullwidth 33C0 So\nmohmfullwidth 33C1 So\namfullwidth 33C2 So\nbqfullwidth 33C3 So\nccfullwidth 33C4 So\ncdfullwidth 33C5 So\ncoverkgfullwidth 33C6 So\ncofullwidth 33C7 So\ndbfullwidth 33C8 So\ngyfullwidth 33C9 So\nhafullwidth 33CA So\nhpfullwidth 33CB So\ninfullwidth 33CC So\nkkfullwidth 33CD So\nkmcapitalfullwidth 33CE So\nktfullwidth 33CF So\nlmfullwidth 33D0 So\nlnfullwidth 33D1 So\nlogfullwidth 33D2 So\nlxfullwidth 33D3 So\nmbsmallfullwidth 33D4 So\nmilfullwidth 33D5 So\nmolfullwidth 33D6 So\nphfullwidth 33D7 So\npmfullwidth 33D8 So\nppmfullwidth 33D9 So\nprfullwidth 33DA So\nsrfullwidth 33DB So\nsvfullwidth 33DC So\nwbfullwidth 33DD So\nvovermfullwidth 33DE So\naovermfullwidth 33DF So\ndayonetelegraph 33E0 So\ndaytwotelegraph 33E1 So\ndaythreetelegraph 33E2 So\ndayfourtelegraph 33E3 So\ndayfivetelegraph 33E4 So\ndaysixtelegraph 33E5 So\ndayseventelegraph 33E6 So\ndayeighttelegraph 33E7 So\ndayninetelegraph 33E8 So\ndaytentelegraph 33E9 So\ndayeleventelegraph 33EA So\ndaytwelvetelegraph 33EB So\ndaythirteentelegraph 33EC So\ndayfourteentelegraph 33ED So\ndayfifteentelegraph 33EE So\ndaysixteentelegraph 33EF So\ndayseventeentelegraph 33F0 So\ndayeighteentelegraph 33F1 So\ndaynineteentelegraph 33F2 So\ndaytwentytelegraph 33F3 So\ndaytwentyonetelegraph 33F4 So\ndaytwentytwotelegraph 33F5 So\ndaytwentythreetelegraph 33F6 So\ndaytwentyfourtelegraph 33F7 So\ndaytwentyfivetelegraph 33F8 So\ndaytwentysixtelegraph 33F9 So\ndaytwentyseventelegraph 33FA So\ndaytwentyeighttelegraph 33FB So\ndaytwentyninetelegraph 33FC So\ndaythirtytelegraph 33FD So\ndaythirtyonetelegraph 33FE So\ngalsquare 33FF So\n# Latin Extended-D\nstresstonemod A720 Sk\nstresslowtonemod A721 Sk\nEgyptalef A722 Lu\negyptalef A723 Ll\nEgyptain A724 Lu\negyptain A725 Ll\nHeng A726 Lu\nheng A727 Ll\nTz A728 Lu\ntz A729 Ll\nTresillo A72A Lu\ntresillo A72B Ll\nCuatrillo A72C Lu\ncuatrillo A72D Ll\nCuatrillocomma A72E Lu\ncuatrillocomma A72F Ll\nFsmall A730 Ll\nSsmall A731 Ll\nAA A732 Lu\naa A733 Ll\nAO A734 Lu\nao A735 Ll\nAU A736 Lu\nau A737 Ll\nAV A738 Lu\nav A739 Ll\nAVhorizontalbar A73A Lu\navhorizontalbar A73B Ll\nAY A73C Lu\nay A73D Ll\nCdotreversed A73E Lu\ncdotreversed A73F Ll\nKstroke A740 Lu\nkstroke A741 Ll\nKdiagonalstroke A742 Lu\nkdiagonalstroke A743 Ll\nKstrokediagonalstroke A744 Lu\nkstrokediagonalstroke A745 Ll\nLbroken A746 Lu\nlbroken A747 Ll\nLstroke A748 Lu\nlstroke A749 Ll\nOstroke A74A Lu\nostroke A74B Ll\nOloop A74C Lu\noloop A74D Ll\nOO A74E Lu\noo A74F Ll\nPstrokedescender A750 Lu\npstrokedescender A751 Ll\nPflourish A752 Lu\npflourish A753 Ll\nPtail A754 Lu\nptail A755 Ll\nQstrokedescender A756 Lu\nqstrokedescender A757 Ll\nQdiagonalstroke A758 Lu\nqdiagonalstroke A759 Ll\nRrotunda A75A Lu\nrrotunda A75B Ll\nRumrotunda A75C Lu\nrumrotunda A75D Ll\nVdiagonalstroke A75E Lu\nvdiagonalstroke A75F Ll\nVy A760 Lu\nvy A761 Ll\nVisigothicz A762 Lu\nvisigothicz A763 Ll\nThornstroke A764 Lu\nthornstroke A765 Ll\nThornstrokedescender A766 Lu\nthornstrokedescender A767 Ll\nVend A768 Lu\nvend A769 Ll\nEt A76A Lu\net A76B Ll\nIs A76C Lu\nis A76D Ll\nCon A76E Lu\ncon A76F Ll\nusmod A770 Lm\ndum A771 Ll\nlum A772 Ll\nmum A773 Ll\nnum A774 Ll\nrum A775 Ll\nRumsmall A776 Ll\ntum A777 Ll\num A778 Ll\nDinsular A779 Lu\ndinsular A77A Ll\nFinsular A77B Lu\nfinsular A77C Ll\nGinsular A77D Lu\nGinsularturned A77E Lu\nginsularturned A77F Ll\nLturned A780 Lu\nlturned A781 Ll\nRinsular A782 Lu\nrinsular A783 Ll\nSinsular A784 Lu\nsinsular A785 Ll\nTinsular A786 Lu\ntinsular A787 Ll\ncircumflexlow A788 Lm\ncolonmod A789 Sk\nshortequalsmod A78A Sk\nSaltillo A78B Lu\nsaltillo A78C Ll\nHturned A78D Lu\nlbeltretroflex A78E Ll\nsinologicaldot A78F Lo\nNdescender A790 Lu\nndescender A791 Ll\nCbar A792 Lu\ncbar A793 Ll\ncpalatalhook A794 Ll\nhpalatalhook A795 Ll\nBflourish A796 Lu\nbflourish A797 Ll\nFstroke A798 Lu\nfstroke A799 Ll\nVolapukae A79A Lu\nvolapukae A79B Ll\nVolapukoe A79C Lu\nvolapukoe A79D Ll\nVolapukue A79E Lu\nvolapukue A79F Ll\nGobliquestroke A7A0 Lu\ngobliquestroke A7A1 Ll\nKobliquestroke A7A2 Lu\nkobliquestroke A7A3 Ll\nNobliquestroke A7A4 Lu\nnobliquestroke A7A5 Ll\nRobliquestroke A7A6 Lu\nrobliquestroke A7A7 Ll\nSobliquestroke A7A8 Lu\nsobliquestroke A7A9 Ll\nHhook A7AA Lu\nEreversedopen A7AB Lu\nScriptg A7AC Lu\nLbelt A7AD Lu\nIsmall A7AE Lu\nQsmall A7AF Ll\nKturned A7B0 Lu\nTturned A7B1 Lu\nJcrossed-tail A7B2 Lu\nlt:Chi A7B3 Lu\nlt:Beta A7B4 Lu\nlt:beta A7B5 Ll\nlt:Omega A7B6 Lu\nlt:omega A7B7 Ll\nUstroke A7B8 Lu\nustroke A7B9 Ll\nGlottala A7BA Lu\nglottala A7BB Ll\nGlottali A7BC Lu\nglottali A7BD Ll\nGlottalu A7BE Lu\nglottalu A7BF Ll\nAnglicanaw A7C2 Lu\nanglicanaw A7C3 Ll\nCpalatalhook A7C4 Lu\nShook A7C5 Lu\nZpalatalhook A7C6 Lu\niepigraphicsideways A7F7 Lo\nHstrokemod A7F8 Lm\nligatureoemod A7F9 Lm\nMturnedsmall A7FA Ll\nfreversedepigraphic A7FB Lo\npreversedepigraphic A7FC Lo\nmepigraphicinverted A7FD Lo\niaepigraphic A7FE Lo\narchaicmepigraphic A7FF Lo\n# Javanese\npanyangga A980 Mn\ncecak A981 Mn\nlayar A982 Mn\nwignyan A983 Mc\njava:a A984 Lo\nikawi A985 Lo\njava:i A986 Lo\nii A987 Lo\njava:u A988 Lo\npacerek A989 Lo\nngalelet A98A Lo\nngaleletraswadi A98B Lo\njava:e A98C Lo\nai A98D Lo\njava:o A98E Lo\nka A98F Lo\nkasasak A990 Lo\nkamurda A991 Lo\nga A992 Lo\ngamurda A993 Lo\nnga A994 Lo\nca A995 Lo\ncamurda A996 Lo\nja A997 Lo\nnyamurda A998 Lo\njamahaprana A999 Lo\nnya A99A Lo\ntta A99B Lo\nttamahaprana A99C Lo\ndda A99D Lo\nddamahaprana A99E Lo\nnamurda A99F Lo\nta A9A0 Lo\ntamurda A9A1 Lo\nda A9A2 Lo\ndamahaprana A9A3 Lo\nna A9A4 Lo\npa A9A5 Lo\npamurda A9A6 Lo\nba A9A7 Lo\nbamurda A9A8 Lo\nma A9A9 Lo\nya A9AA Lo\nra A9AB Lo\nraagung A9AC Lo\nla A9AD Lo\nwa A9AE Lo\nsamurda A9AF Lo\nsamahaprana A9B0 Lo\nsa A9B1 Lo\nha A9B2 Lo\ncecaktelu A9B3 Mn\ntarungvowel A9B4 Mc\ntolongvowel A9B5 Mc\nwuluvowel A9B6 Mn\nwulumelikvowel A9B7 Mn\nsukuvowel A9B8 Mn\nsukumendutvowel A9B9 Mn\ntalingvowel A9BA Mc\ndirgamurevowel A9BB Mc\npepetvowel A9BC Mn\nkeretconsonant A9BD Mn\npengkalconsonant A9BE Mc\ncakraconsonant A9BF Mc\npangkon A9C0 Mc\nrerengganleft A9C1 Po\nrerengganright A9C2 Po\nandappada A9C3 Po\nmadyapada A9C4 Po\nluhurpada A9C5 Po\nwindupada A9C6 Po\npangkatpada A9C7 Po\nlingsapada A9C8 Po\nlungsipada A9C9 Po\nadegpada A9CA Po\nadegadegpada A9CB Po\npiselehpada A9CC Po\nturnedpiselehpada A9CD Po\npangrangkep A9CF Lm\njava:zero A9D0 Nd\njava:one A9D1 Nd\njava:two A9D2 Nd\njava:three A9D3 Nd\njava:four A9D4 Nd\njava:five A9D5 Nd\njava:six A9D6 Nd\njava:seven A9D7 Nd\njava:eight A9D8 Nd\njava:nine A9D9 Nd\ntirtatumetespada A9DE Po\nisen-isenpada A9DF Po\n# Latin Extended-E\nredalphabar AB30 Ll\nareversedschwa AB31 Ll\nefractur AB32 Ll\nredebar AB33 Ll\neflourish AB34 Ll\nflenis AB35 Ll\ngtailscript AB36 Ll\nllazyinverteds AB37 Ll\nlmiddledbltilde AB38 Ll\nlmiddlering AB39 Ll\nmtail AB3A Ll\nntail AB3B Ll\nengtail AB3C Ll\nofractur AB3D Ll\nofracturstroke AB3E Ll\nostrokeopen AB3F Ll\noeinverted AB40 Ll\noestroketurned AB41 Ll\noehorizontalstroketurned AB42 Ll\nooopenturned AB43 Ll\nooopenstroketurned AB44 Ll\nstirrupr AB45 Ll\nRrightlegsmall AB46 Ll\nrouthandle AB47 Ll\nrdbl AB48 Ll\nrtail AB49 Ll\nrtaildbl AB4A Ll\nrscript AB4B Ll\nrringscript AB4C Ll\nbaselineesh AB4D Ll\nurightlegshort AB4E Ll\nurightlegbarshort AB4F Ll\nui AB50 Ll\nuiturned AB51 Ll\nulefthook AB52 Ll\nlt:chi AB53 Ll\nlt:chilowrightring AB54 Ll\nlt:chilowleftserif AB55 Ll\nxlowrightring AB56 Ll\nxlongleftleg AB57 Ll\nxlongleftlegandlowrightring AB58 Ll\nxlongleftlegserif AB59 Ll\nyrightlegshort AB5A Ll\nbreveinvertedmod AB5B Sk\nhengmod AB5C Lm\nllazyinvertedsmod AB5D Lm\nlmiddletildemod AB5E Lm\nulefthookmod AB5F Lm\nsakhayat AB60 Ll\niotifiede AB61 Ll\noeopen AB62 Ll\nuo AB63 Ll\nalphainverted AB64 Ll\nlt:Omegasmall AB65 Ll\ndzdigraphretroflexhook AB66 Ll\ntsdigraphretroflexhook AB67 Ll\n# Cherokee Supplement\nchrk:asmall AB70 Ll\nchrk:esmall AB71 Ll\nchrk:ismall AB72 Ll\nchrk:osmall AB73 Ll\nchrk:usmall AB74 Ll\nchrk:vsmall AB75 Ll\nchrk:gasmall AB76 Ll\nchrk:kasmall AB77 Ll\nchrk:gesmall AB78 Ll\nchrk:gismall AB79 Ll\nchrk:gosmall AB7A Ll\nchrk:gusmall AB7B Ll\nchrk:gvsmall AB7C Ll\nchrk:hasmall AB7D Ll\nchrk:hesmall AB7E Ll\nchrk:hismall AB7F Ll\nchrk:hosmall AB80 Ll\nchrk:husmall AB81 Ll\nchrk:hvsmall AB82 Ll\nchrk:lasmall AB83 Ll\nchrk:lesmall AB84 Ll\nchrk:lismall AB85 Ll\nchrk:losmall AB86 Ll\nchrk:lusmall AB87 Ll\nchrk:lvsmall AB88 Ll\nchrk:masmall AB89 Ll\nchrk:mesmall AB8A Ll\nchrk:mismall AB8B Ll\nchrk:mosmall AB8C Ll\nchrk:musmall AB8D Ll\nchrk:nasmall AB8E Ll\nchrk:hnasmall AB8F Ll\nchrk:nahsmall AB90 Ll\nchrk:nesmall AB91 Ll\nchrk:nismall AB92 Ll\nchrk:nosmall AB93 Ll\nchrk:nusmall AB94 Ll\nchrk:nvsmall AB95 Ll\nchrk:quasmall AB96 Ll\nchrk:quesmall AB97 Ll\nchrk:quismall AB98 Ll\nchrk:quosmall AB99 Ll\nchrk:quusmall AB9A Ll\nchrk:quvsmall AB9B Ll\nchrk:sasmall AB9C Ll\nchrk:ssmall AB9D Ll\nchrk:sesmall AB9E Ll\nchrk:sismall AB9F Ll\nchrk:sosmall ABA0 Ll\nchrk:susmall ABA1 Ll\nchrk:svsmall ABA2 Ll\nchrk:dasmall ABA3 Ll\nchrk:tasmall ABA4 Ll\nchrk:desmall ABA5 Ll\nchrk:tesmall ABA6 Ll\nchrk:dismall ABA7 Ll\nchrk:tismall ABA8 Ll\nchrk:dosmall ABA9 Ll\nchrk:dusmall ABAA Ll\nchrk:dvsmall ABAB Ll\nchrk:dlasmall ABAC Ll\nchrk:tlasmall ABAD Ll\nchrk:tlesmall ABAE Ll\nchrk:tlismall ABAF Ll\nchrk:tlosmall ABB0 Ll\nchrk:tlusmall ABB1 Ll\nchrk:tlvsmall ABB2 Ll\nchrk:tsasmall ABB3 Ll\nchrk:tsesmall ABB4 Ll\nchrk:tsismall ABB5 Ll\nchrk:tsosmall ABB6 Ll\nchrk:tsusmall ABB7 Ll\nchrk:tsvsmall ABB8 Ll\nchrk:wasmall ABB9 Ll\nchrk:wesmall ABBA Ll\nchrk:wismall ABBB Ll\nchrk:wosmall ABBC Ll\nchrk:wusmall ABBD Ll\nchrk:wvsmall ABBE Ll\nchrk:yasmall ABBF Ll\n# Private Use Area\n# Alphabetic Presentation Forms\nf_f FB00 Ll\nfi FB01 Ll\nfl FB02 Ll\nf_f_i FB03 Ll\nf_f_l FB04 Ll\nlongs_t FB05 Ll\ns_t FB06 Ll\nmen_nowarmn FB13 Ll\nmen_echarmn FB14 Ll\nmen_iniarmn FB15 Ll\nvew_nowarmn FB16 Ll\nmen_xeharmn FB17 Ll\nyodwithhiriq:hb FB1D Lo\nvarikajudeospanish:hb FB1E Mn\nyod_yod_patah:hb FB1F Lo\nayinalt:hb FB20 Lo\nalefwide:hb FB21 Lo\ndaletwide:hb FB22 Lo\nhewide:hb FB23 Lo\nkafwide:hb FB24 Lo\nlamedwide:hb FB25 Lo\nfinalmemwide:hb FB26 Lo\nreshwide:hb FB27 Lo\ntavwide:hb FB28 Lo\nplussignalt:hb FB29 Sm\nshinwithshinDot:hb FB2A Lo\nshinwithsinDot:hb FB2B Lo\nshinwithdageshandshinDot:hb FB2C Lo\nshinwithdageshandsinDot:hb FB2D Lo\nalefwithpatah:hb FB2E Lo\nalefwithqamats:hb FB2F Lo\nalefwithmapiq:hb FB30 Lo\nbetwithdagesh:hb FB31 Lo\ngimelwithdagesh:hb FB32 Lo\ndaletwithdagesh:hb FB33 Lo\nhewithmapiq:hb FB34 Lo\nvavwithdagesh:hb FB35 Lo\nzayinwithdagesh:hb FB36 Lo\ntetwithdagesh:hb FB38 Lo\nyodwithdagesh:hb FB39 Lo\nfinalkafwithdagesh:hb FB3A Lo\nkafwithdagesh:hb FB3B Lo\nlamedwithdagesh:hb FB3C Lo\nmemwithdagesh:hb FB3E Lo\nnunwithdagesh:hb FB40 Lo\nsamekhwithdagesh:hb FB41 Lo\nfinalpewithdagesh:hb FB43 Lo\npewithdagesh:hb FB44 Lo\ntsadiwithdagesh:hb FB46 Lo\nqofwithdagesh:hb FB47 Lo\nreshwithdagesh:hb FB48 Lo\nshinwithdagesh:hb FB49 Lo\ntavwithdagesh:hb FB4A Lo\nvavwithholam:hb FB4B Lo\nbetwithrafe:hb FB4C Lo\nkafwithrafe:hb FB4D Lo\npewithrafe:hb FB4E Lo\nligaturealeflamed:hb FB4F Lo\n# Arabic Presentation Forms-A\nalefwasla.isol FB50 Lo\nalefwasla.fina FB51 Lo\nbeeh.isol FB52 Lo\nbeeh.fina FB53 Lo\nbeeh.init FB54 Lo\nbeeh.medi FB55 Lo\npeh.isol FB56 Lo\npeh.fina FB57 Lo\npeh.init FB58 Lo\npeh.medi FB59 Lo\nbeheh.isol FB5A Lo\nbeheh.fina FB5B Lo\nbeheh.init FB5C Lo\nbeheh.medi FB5D Lo\ntteheh.isol FB5E Lo\ntteheh.fina FB5F Lo\ntteheh.init FB60 Lo\ntteheh.medi FB61 Lo\nteheh.isol FB62 Lo\nteheh.fina FB63 Lo\nteheh.init FB64 Lo\nteheh.medi FB65 Lo\ntteh.isol FB66 Lo\ntteh.fina FB67 Lo\ntteh.init FB68 Lo\ntteh.medi FB69 Lo\nveh.isol FB6A Lo\nveh.fina FB6B Lo\nveh.init FB6C Lo\nveh.medi FB6D Lo\npeheh.isol FB6E Lo\npeheh.fina FB6F Lo\npeheh.init FB70 Lo\npeheh.medi FB71 Lo\ndyeh.isol FB72 Lo\ndyeh.fina FB73 Lo\ndyeh.init FB74 Lo\ndyeh.medi FB75 Lo\nnyeh.isol FB76 Lo\nnyeh.fina FB77 Lo\nnyeh.init FB78 Lo\nnyeh.medi FB79 Lo\ntcheh.isol FB7A Lo\ntcheh.fina FB7B Lo\ntcheh.init FB7C Lo\ntcheh.medi FB7D Lo\ntcheheh.isol FB7E Lo\ntcheheh.fina FB7F Lo\ntcheheh.init FB80 Lo\ntcheheh.medi FB81 Lo\nddahal.isol FB82 Lo\nddahal.fina FB83 Lo\ndahal.isol FB84 Lo\ndahal.fina FB85 Lo\ndul.isol FB86 Lo\ndul.fina FB87 Lo\nddal.isol FB88 Lo\nddal.fina FB89 Lo\njeh.isol FB8A Lo\njeh.fina FB8B Lo\nrreh.isol FB8C Lo\nrreh.fina FB8D Lo\nkeheh.isol FB8E Lo\nkeheh.fina FB8F Lo\nkeheh.init FB90 Lo\nkeheh.medi FB91 Lo\ngaf.isol FB92 Lo\ngaf.fina FB93 Lo\ngaf.init FB94 Lo\ngaf.medi FB95 Lo\ngueh.isol FB96 Lo\ngueh.fina FB97 Lo\ngueh.init FB98 Lo\ngueh.medi FB99 Lo\nngoeh.isol FB9A Lo\nngoeh.fina FB9B Lo\nngoeh.init FB9C Lo\nngoeh.medi FB9D Lo\nnoonghunna.isol FB9E Lo\nnoonghunna.fina FB9F Lo\nrnoon.isol FBA0 Lo\nrnoon.fina FBA1 Lo\nrnoon.init FBA2 Lo\nrnoon.medi FBA3 Lo\nhehyeh.isol FBA4 Lo\nhehyeh.fina FBA5 Lo\nhehgoal.isol FBA6 Lo\nhehgoal.fina FBA7 Lo\nhehgoal.init FBA8 Lo\nhehgoal.medi FBA9 Lo\nhehdoachashmee.isol FBAA Lo\nhehdoachashmee.fina FBAB Lo\nhehdoachashmee.init FBAC Lo\nhehdoachashmee.medi FBAD Lo\nyehbarree.isol FBAE Lo\nyehbarree.fina FBAF Lo\nyehbarreehamza.isol FBB0 Lo\nyehbarreehamza.fina FBB1 Lo\nsymboldotabove FBB2 Sk\nsymboldotbelow FBB3 Sk\nsymboltwodotsabove FBB4 Sk\nsymboltwodotsbelow FBB5 Sk\nsymbolabovethreedotsabove FBB6 Sk\nsymbolbelowthreedotsabove FBB7 Sk\nsymbolpointingabovedownthreedotsabove FBB8 Sk\nsymbolpointingbelowdownthreedotsabove FBB9 Sk\nsymbolfourdotsabove FBBA Sk\nsymbolfourdotsbelow FBBB Sk\nsymboldoubleverticalbarbelow FBBC Sk\nsymboltwodotsverticallyabove FBBD Sk\nsymboltwodotsverticallybelow FBBE Sk\nsymbolring FBBF Sk\nsymboltahabovesmall FBC0 Sk\nsymboltahbelowsmall FBC1 Sk\nng.isol FBD3 Lo\nng.fina FBD4 Lo\nng.init FBD5 Lo\nng.medi FBD6 Lo\nu.isol FBD7 Lo\nu.fina FBD8 Lo\noe.isol FBD9 Lo\noe.fina FBDA Lo\nyu.isol FBDB Lo\nyu.fina FBDC Lo\nuhamza.isol FBDD Lo\nve.isol FBDE Lo\nve.fina FBDF Lo\noekirghiz.isol FBE0 Lo\noekirghiz.fina FBE1 Lo\nyukirghiz.isol FBE2 Lo\nyukirghiz.fina FBE3 Lo\ne.isol FBE4 Lo\ne.fina FBE5 Lo\ne.init FBE6 Lo\ne.medi FBE7 Lo\nuighurkazakhkirghizalefmaksura.init FBE8 Lo\nuighurkazakhkirghizalefmaksura.medi FBE9 Lo\nyeh.init_hamzaabove.medi_alef.fina FBEA Lo\nyeh.medi_hamzaabove.medi_alef.fina FBEB Lo\nyeh.init_hamzaabove.medi_ae.fina FBEC Lo\nyeh.medi_hamzaabove.medi_ae.fina FBED Lo\nyeh.init_hamzaabove.medi_waw.fina FBEE Lo\nyeh.medi_hamzaabove.medi_waw.fina FBEF Lo\nyeh.init_hamzaabove.medi_u.fina FBF0 Lo\nyeh.medi_hamzaabove.medi_u.fina FBF1 Lo\nyeh.init_hamzaabove.medi_oe.fina FBF2 Lo\nyeh.medi_hamzaabove.medi_oe.fina FBF3 Lo\nyeh.init_hamzaabove.medi_yu.fina FBF4 Lo\nyeh.medi_hamzaabove.medi_yu.fina FBF5 Lo\nyeh.init_hamzaabove.medi_e.fina FBF6 Lo\nyeh.medi_hamzaabove.medi_e.fina FBF7 Lo\nyeh.init_hamzaabove.medi_e.medi FBF8 Lo\nuighurkirghizyeh.init_hamzaabove.medi_alefmaksura.fina FBF9 Lo\nuighurkirghizyeh.medi_hamzaabove.medi_alefmaksura.fina FBFA Lo\nuighurkirghizyeh.init_hamzaabove.medi_alefmaksura.medi FBFB Lo\nyehfarsi.isol FBFC Lo\nyehfarsi.fina FBFD Lo\nyehfarsi.init FBFE Lo\nyehfarsi.medi FBFF Lo\nyeh.init_hamzaabove.medi_jeem.fina FC00 Lo\nyeh.init_hamzaabove.medi_hah.fina FC01 Lo\nyeh.init_hamzaabove.medi_meem.fina FC02 Lo\nyeh.init_hamzaabove.medi_alefmaksura.fina FC03 Lo\nyeh.init_hamzaabove.medi_yeh.fina FC04 Lo\nbeh.init_jeem.fina FC05 Lo\nbeh.init_hah.fina FC06 Lo\nbeh.init_khah.fina FC07 Lo\nbeh.init_meem.fina FC08 Lo\nbeh.init_alefmaksura.fina FC09 Lo\nbeh.init_yeh.fina FC0A Lo\nteh.init_jeem.fina FC0B Lo\nteh.init_hah.fina FC0C Lo\nteh.init_khah.fina FC0D Lo\nteh.init_meem.fina FC0E Lo\nteh.init_alefmaksura.fina FC0F Lo\nteh.init_yeh.fina FC10 Lo\ntheh.init_jeem.fina FC11 Lo\ntheh.init_meem.fina FC12 Lo\ntheh.init_alefmaksura.fina FC13 Lo\ntheh.init_yeh.fina FC14 Lo\njeem.init_hah.fina FC15 Lo\njeem.init_meem.fina FC16 Lo\nhah.init_jeem.fina FC17 Lo\nhah.init_meem.fina FC18 Lo\nkhah.init_jeem.fina FC19 Lo\nkhah.init_hah.fina FC1A Lo\nkhah.init_meem.fina FC1B Lo\nseen.init_jeem.fina FC1C Lo\nseen.init_hah.fina FC1D Lo\nseen.init_khah.fina FC1E Lo\nseen.init_meem.fina FC1F Lo\nsad.init_hah.fina FC20 Lo\nsad.init_meem.fina FC21 Lo\ndad.init_jeem.fina FC22 Lo\ndad.init_hah.fina FC23 Lo\ndad.init_khah.fina FC24 Lo\ndad.init_meem.fina FC25 Lo\ntah.init_hah.fina FC26 Lo\ntah.init_meem.fina FC27 Lo\nzah.init_meem.fina FC28 Lo\nain.init_jeem.fina FC29 Lo\nain.init_meem.fina FC2A Lo\nghain.init_jeem.fina FC2B Lo\nghain.init_meem.fina FC2C Lo\nfeh.init_jeem.fina FC2D Lo\nfeh.init_hah.fina FC2E Lo\nfeh.init_khah.fina FC2F Lo\nfeh.init_meem.fina FC30 Lo\nfeh.init_alefmaksura.fina FC31 Lo\nfeh.init_yeh.fina FC32 Lo\nqaf.init_hah.fina FC33 Lo\nqaf.init_meem.fina FC34 Lo\nqaf.init_alefmaksura.fina FC35 Lo\nqaf.init_yeh.fina FC36 Lo\nkaf.init_alef.fina FC37 Lo\nkaf.init_jeem.fina FC38 Lo\nkaf.init_hah.fina FC39 Lo\nkaf.init_khah.fina FC3A Lo\nkaf.init_lam.fina FC3B Lo\nkaf.init_meem.fina FC3C Lo\nkaf.init_alefmaksura.fina FC3D Lo\nkaf.init_yeh.fina FC3E Lo\nlam.init_jeem.fina FC3F Lo\nlam.init_hah.fina FC40 Lo\nlam.init_khah.fina FC41 Lo\nlam.init_meem.fina FC42 Lo\nlam.init_alefmaksura.fina FC43 Lo\nlam.init_yeh.fina FC44 Lo\nmeem.init_jeem.fina FC45 Lo\nmeem.init_hah.fina FC46 Lo\nmeem.init_khah.fina FC47 Lo\nmeem.init_meem.fina FC48 Lo\nmeem.init_alefmaksura.fina FC49 Lo\nmeem.init_yeh.fina FC4A Lo\nnoon.init_jeem.fina FC4B Lo\nnoon.init_hah.fina FC4C Lo\nnoon.init_khah.fina FC4D Lo\nnoon.init_meem.fina FC4E Lo\nnoon.init_alefmaksura.fina FC4F Lo\nnoon.init_yeh.fina FC50 Lo\nheh.init_jeem.fina FC51 Lo\nheh.init_meem.fina FC52 Lo\nheh.init_alefmaksura.fina FC53 Lo\nheh.init_yeh.fina FC54 Lo\nyeh.init_jeem.fina FC55 Lo\nyeh.init_hah.fina FC56 Lo\nyeh.init_khah.fina FC57 Lo\nyeh.init_meem.fina FC58 Lo\nyeh.init_alefmaksura.fina FC59 Lo\nyeh.init_yeh.fina FC5A Lo\nthal.init_superscriptalef.fina FC5B Lo\nreh.init_superscriptalef.fina FC5C Lo\nalefmaksura.init_superscriptalef.fina FC5D Lo\nshaddaDammatanIsol FC5E Lo\nshaddaKasratanIsol FC5F Lo\nshaddaFathaIsol FC60 Lo\nshaddaDammaIsol FC61 Lo\nshaddaKasraIsol FC62 Lo\nshaddaAlefIsol FC63 Lo\nyeh.medi_hamzaabove.medi_reh.fina FC64 Lo\nyeh.medi_hamzaabove.medi_zain.fina FC65 Lo\nyeh.medi_hamzaabove.medi_meem.fina FC66 Lo\nyeh.medi_hamzaabove.medi_noon.fina FC67 Lo\nyeh.medi_hamzaabove.medi_alefmaksura.fina FC68 Lo\nyeh.medi_hamzaabove.medi_yeh.fina FC69 Lo\nbeh.medi_reh.fina FC6A Lo\nbeh.medi_zain.fina FC6B Lo\nbeh.medi_meem.fina FC6C Lo\nbeh.medi_noon.fina FC6D Lo\nbeh.medi_alefmaksura.fina FC6E Lo\nbeh.medi_yeh.fina FC6F Lo\nteh.medi_reh.fina FC70 Lo\nteh.medi_zain.fina FC71 Lo\nteh.medi_meem.fina FC72 Lo\nteh.medi_noon.fina FC73 Lo\nteh.medi_alefmaksura.fina FC74 Lo\nteh.medi_yeh.fina FC75 Lo\ntheh.medi_reh.fina FC76 Lo\ntheh.medi_zain.fina FC77 Lo\ntheh.medi_meem.fina FC78 Lo\ntheh.medi_noon.fina FC79 Lo\ntheh.medi_alefmaksura.fina FC7A Lo\ntheh.medi_yeh.fina FC7B Lo\nfeh.medi_alefmaksura.fina FC7C Lo\nfeh.medi_yeh.fina FC7D Lo\nqaf.medi_alefmaksura.fina FC7E Lo\nqaf.medi_yeh.fina FC7F Lo\nkaf.medi_alef.fina FC80 Lo\nkaf.medi_lam.fina FC81 Lo\nkaf.medi_meem.fina FC82 Lo\nkaf.medi_alefmaksura.fina FC83 Lo\nkaf.medi_yeh.fina FC84 Lo\nlam.medi_meem.fina FC85 Lo\nlam.medi_alefmaksura.fina FC86 Lo\nlam.medi_yeh.fina FC87 Lo\nmeem.medi_alef.fina FC88 Lo\nmeem.medi_meem.fina FC89 Lo\nnoon.medi_reh.fina FC8A Lo\nnoon.medi_zain.fina FC8B Lo\nnoon.medi_meem.fina FC8C Lo\nnoon.medi_noon.fina FC8D Lo\nnoon.medi_alefmaksura.fina FC8E Lo\nnoon.medi_yeh.fina FC8F Lo\nalefmaksura.medi_superscriptalef.fina FC90 Lo\nyeh.medi_reh.fina FC91 Lo\nyeh.medi_zain.fina FC92 Lo\nyeh.medi_meem.fina FC93 Lo\nyeh.medi_noon.fina FC94 Lo\nyeh.medi_alefmaksura.fina FC95 Lo\nyeh.medi_yeh.fina FC96 Lo\nyeh.init_hamzaabove.medi_jeem.medi FC97 Lo\nyeh.init_hamzaabove.medi_hah.medi FC98 Lo\nyeh.init_hamzaabove.medi_khah.medi FC99 Lo\nyeh.init_hamzaabove.medi_meem.medi FC9A Lo\nyeh.init_hamzaabove.medi_heh.medi FC9B Lo\nbeh.init_jeem.medi FC9C Lo\nbeh.init_hah.medi FC9D Lo\nbeh.init_khah.medi FC9E Lo\nbeh.init_meem.medi FC9F Lo\nbeh.init_heh.medi FCA0 Lo\nteh.init_jeem.medi FCA1 Lo\nteh.init_hah.medi FCA2 Lo\nteh.init_khah.medi FCA3 Lo\nteh.init_meem.medi FCA4 Lo\nteh.init_heh.medi FCA5 Lo\ntheh.init_meem.medi FCA6 Lo\njeem.init_hah.medi FCA7 Lo\njeem.init_meem.medi FCA8 Lo\nhah.init_jeem.medi FCA9 Lo\nhah.init_meem.medi FCAA Lo\nkhah.init_jeem.medi FCAB Lo\nkhah.init_meem.medi FCAC Lo\nseen.init_jeem.medi FCAD Lo\nseen.init_hah.medi FCAE Lo\nseen.init_khah.medi FCAF Lo\nseen.init_meem.medi FCB0 Lo\nsad.init_hah.medi FCB1 Lo\nsad.init_khah.medi FCB2 Lo\nsad.init_meem.medi FCB3 Lo\ndad.init_jeem.medi FCB4 Lo\ndad.init_hah.medi FCB5 Lo\ndad.init_khah.medi FCB6 Lo\ndad.init_meem.medi FCB7 Lo\ntah.init_hah.medi FCB8 Lo\nzah.init_meem.medi FCB9 Lo\nain.init_jeem.medi FCBA Lo\nain.init_meem.medi FCBB Lo\nghain.init_jeem.medi FCBC Lo\nghain.init_meem.medi FCBD Lo\nfeh.init_jeem.medi FCBE Lo\nfeh.init_hah.medi FCBF Lo\nfeh.init_khah.medi FCC0 Lo\nfeh.init_meem.medi FCC1 Lo\nqaf.init_hah.medi FCC2 Lo\nqaf.init_meem.medi FCC3 Lo\nkaf.init_jeem.medi FCC4 Lo\nkaf.init_hah.medi FCC5 Lo\nkaf.init_khah.medi FCC6 Lo\nkaf.init_lam.medi FCC7 Lo\nkaf.init_meem.medi FCC8 Lo\nlam.init_jeem.medi FCC9 Lo\nlam.init_hah.medi FCCA Lo\nlam.init_khah.medi FCCB Lo\nlam.init_meem.medi FCCC Lo\nlam.init_heh.medi FCCD Lo\nmeem.init_jeem.medi FCCE Lo\nmeem.init_hah.medi FCCF Lo\nmeem.init_khah.medi FCD0 Lo\nmeem.init_meem.medi FCD1 Lo\nnoon.init_jeem.medi FCD2 Lo\nnoon.init_hah.medi FCD3 Lo\nnoon.init_khah.medi FCD4 Lo\nnoon.init_meem.medi FCD5 Lo\nnoon.init_heh.medi FCD6 Lo\nheh.init_jeem.medi FCD7 Lo\nheh.init_meem.medi FCD8 Lo\nheh.init_superscriptalef.medi FCD9 Lo\nyeh.init_jeem.medi FCDA Lo\nyeh.init_hah.medi FCDB Lo\nyeh.init_khah.medi FCDC Lo\nyeh.init_meem.medi FCDD Lo\nyeh.init_heh.medi FCDE Lo\nyeh.medi_hamzaabove.medi_meem.medi FCDF Lo\nyeh.medi_hamzaabove.medi_heh.medi FCE0 Lo\nbeh.medi_meem.medi FCE1 Lo\nbeh.medi_heh.medi FCE2 Lo\nteh.medi_meem.medi FCE3 Lo\nteh.medi_heh.medi FCE4 Lo\ntheh.medi_meem.medi FCE5 Lo\ntheh.medi_heh.medi FCE6 Lo\nseen.medi_meem.medi FCE7 Lo\nseen.medi_heh.medi FCE8 Lo\nsheen.medi_meem.medi FCE9 Lo\nsheen.medi_heh.medi FCEA Lo\nkaf.medi_lam.medi FCEB Lo\nkaf.medi_meem.medi FCEC Lo\nlam.medi_meem.medi FCED Lo\nnoon.medi_meem.medi FCEE Lo\nnoon.medi_heh.medi FCEF Lo\nyeh.medi_meem.medi FCF0 Lo\nyeh.medi_heh.medi FCF1 Lo\nshaddaFathaMedi FCF2 Lo\nshaddaDammaMedi FCF3 Lo\nshaddaKasraMedi FCF4 Lo\ntah.init_alefmaksura.fina FCF5 Lo\ntah.init_yeh.fina FCF6 Lo\nain.init_alefmaksura.fina FCF7 Lo\nain.init_yeh.fina FCF8 Lo\nghain.init_alefmaksura.fina FCF9 Lo\nghain.init_yeh.fina FCFA Lo\nseen.init_alefmaksura.fina FCFB Lo\nseen.init_yeh.fina FCFC Lo\nsheen.init_alefmaksura.fina FCFD Lo\nsheen.init_yeh.fina FCFE Lo\nhah.init_alefmaksura.fina FCFF Lo\nhah.init_yeh.fina FD00 Lo\njeem.init_alefmaksura.fina FD01 Lo\njeem.init_yeh.fina FD02 Lo\nkhah.init_alefmaksura.fina FD03 Lo\nkhah.init_yeh.fina FD04 Lo\nsad.init_alefmaksura.fina FD05 Lo\nsad.init_yeh.fina FD06 Lo\ndad.init_alefmaksura.fina FD07 Lo\ndad.init_yeh.fina FD08 Lo\nsheen.init_jeem.fina FD09 Lo\nsheen.init_hah.fina FD0A Lo\nsheen.init_khah.fina FD0B Lo\nsheen.init_meem.fina FD0C Lo\nsheen.init_reh.fina FD0D Lo\nseen.init_reh.fina FD0E Lo\nsad.init_reh.fina FD0F Lo\ndad.init_reh.fina FD10 Lo\ntah.medi_alefmaksura.fina FD11 Lo\ntah.medi_yeh.fina FD12 Lo\nain.medi_alefmaksura.fina FD13 Lo\nain.medi_yeh.fina FD14 Lo\nghain.medi_alefmaksura.fina FD15 Lo\nghain.medi_yeh.fina FD16 Lo\nseen.medi_alefmaksura.fina FD17 Lo\nseen.medi_yeh.fina FD18 Lo\nsheen.medi_alefmaksura.fina FD19 Lo\nsheen.medi_yeh.fina FD1A Lo\nhah.medi_alefmaksura.fina FD1B Lo\nhah.medi_yeh.fina FD1C Lo\njeem.medi_alefmaksura.fina FD1D Lo\njeem.medi_yeh.fina FD1E Lo\nkhah.medi_alefmaksura.fina FD1F Lo\nkhah.medi_yeh.fina FD20 Lo\nsad.medi_alefmaksura.fina FD21 Lo\nsad.medi_yeh.fina FD22 Lo\ndad.medi_alefmaksura.fina FD23 Lo\ndad.medi_yeh.fina FD24 Lo\nsheen.medi_jeem.fina FD25 Lo\nsheen.medi_hah.fina FD26 Lo\nsheen.medi_khah.fina FD27 Lo\nsheen.medi_meem.fina FD28 Lo\nsheen.medi_reh.fina FD29 Lo\nseen.medi_reh.fina FD2A Lo\nsad.medi_reh.fina FD2B Lo\ndad.medi_reh.fina FD2C Lo\nsheen.init_jeem.medi FD2D Lo\nsheen.init_hah.medi FD2E Lo\nsheen.init_khah.medi FD2F Lo\nsheen.init_meem.medi FD30 Lo\nseen.init_heh.medi FD31 Lo\nsheen.init_heh.medi FD32 Lo\ntah.init_meem.medi FD33 Lo\nseen.medi_jeem.medi FD34 Lo\nseen.medi_hah.medi FD35 Lo\nseen.medi_khah.medi FD36 Lo\nsheen.medi_jeem.medi FD37 Lo\nsheen.medi_hah.medi FD38 Lo\nsheen.medi_khah.medi FD39 Lo\ntah.medi_meem.medi FD3A Lo\nzah.medi_meem.medi FD3B Lo\nalef.medi_fathatan.fina FD3C Lo\nalef.init_fathatan.fina FD3D Lo\nornateleftparenthesis FD3E Pe\nornaterightparenthesis FD3F Ps\nteh.init_jeem.medi_meem.medi FD50 Lo\nteh.medi_hah.medi_jeem.fina FD51 Lo\nteh.init_hah.medi_jeem.medi FD52 Lo\nteh.init_hah.medi_meem.medi FD53 Lo\nteh.init_khah.medi_meem.medi FD54 Lo\nteh.init_meem.medi_jeem.medi FD55 Lo\nteh.init_meem.medi_hah.medi FD56 Lo\nteh.init_meem.medi_khah.medi FD57 Lo\njeem.medi_meem.medi_hah.fina FD58 Lo\njeem.init_meem.medi_hah.medi FD59 Lo\nhah.medi_meem.medi_yeh.fina FD5A Lo\nhah.medi_meem.medi_alefmaksura.fina FD5B Lo\nseen.init_hah.medi_jeem.medi FD5C Lo\nseen.init_jeem.medi_hah.medi FD5D Lo\nseen.medi_jeem.medi_alefmaksura.fina FD5E Lo\nseen.medi_meem.medi_hah.fina FD5F Lo\nseen.init_meem.medi_hah.medi FD60 Lo\nseen.init_meem.medi_jeem.medi FD61 Lo\nseen.medi_meem.medi_meem.fina FD62 Lo\nseen.init_meem.medi_meem.medi FD63 Lo\nsad.medi_hah.medi_hah.fina FD64 Lo\nsad.init_hah.medi_hah.medi FD65 Lo\nsad.medi_meem.medi_meem.fina FD66 Lo\nsheen.medi_hah.medi_meem.fina FD67 Lo\nsheen.init_hah.medi_meem.medi FD68 Lo\nsheen.medi_jeem.medi_yeh.fina FD69 Lo\nsheen.medi_meem.medi_khah.fina FD6A Lo\nsheen.init_meem.medi_khah.medi FD6B Lo\nsheen.medi_meem.medi_meem.fina FD6C Lo\nsheen.init_meem.medi_meem.medi FD6D Lo\ndad.medi_hah.medi_alefmaksura.fina FD6E Lo\ndad.medi_khah.medi_meem.fina FD6F Lo\ndad.init_khah.medi_meem.medi FD70 Lo\ntah.medi_meem.medi_hah.fina FD71 Lo\ntah.init_meem.medi_hah.medi FD72 Lo\ntah.init_meem.medi_meem.medi FD73 Lo\ntah.medi_meem.medi_yeh.fina FD74 Lo\nain.medi_jeem.medi_meem.fina FD75 Lo\nain.medi_meem.medi_meem.fina FD76 Lo\nain.init_meem.medi_meem.medi FD77 Lo\nain.medi_meem.medi_alefmaksura.fina FD78 Lo\nghain.medi_meem.medi_meem.fina FD79 Lo\nghain.medi_meem.medi_yeh.fina FD7A Lo\nghain.medi_meem.medi_alefmaksura.fina FD7B Lo\nfeh.medi_khah.medi_meem.fina FD7C Lo\nfeh.init_khah.medi_meem.medi FD7D Lo\nqaf.medi_meem.medi_hah.fina FD7E Lo\nqaf.medi_meem.medi_meem.fina FD7F Lo\nlam.medi_hah.medi_meem.fina FD80 Lo\nlam.medi_hah.medi_yeh.fina FD81 Lo\nlam.medi_hah.medi_alefmaksura.fina FD82 Lo\nlam.init_jeem.medi_jeem.medi FD83 Lo\nlam.medi_jeem.medi_jeem.fina FD84 Lo\nlam.medi_khah.medi_meem.fina FD85 Lo\nlam.init_khah.medi_meem.medi FD86 Lo\nlam.medi_meem.medi_hah.fina FD87 Lo\nlam.init_meem.medi_hah.medi FD88 Lo\nmeem.init_hah.medi_jeem.medi FD89 Lo\nmeem.init_hah.medi_meem.medi FD8A Lo\nmeem.medi_hah.medi_yeh.fina FD8B Lo\nmeem.init_jeem.medi_hah.medi FD8C Lo\nmeem.init_jeem.medi_meem.medi FD8D Lo\nmeem.init_khah.medi_jeem.medi FD8E Lo\nmeem.init_khah.medi_meem.medi FD8F Lo\nmeem.init_jeem.medi_khah.medi FD92 Lo\nheh.init_meem.medi_jeem.medi FD93 Lo\nheh.init_meem.medi_meem.medi FD94 Lo\nnoon.init_hah.medi_meem.medi FD95 Lo\nnoon.medi_hah.medi_alefmaksura.fina FD96 Lo\nnoon.medi_jeem.medi_meem.fina FD97 Lo\nnoon.init_jeem.medi_meem.medi FD98 Lo\nnoon.medi_jeem.medi_alefmaksura.fina FD99 Lo\nnoon.medi_meem.medi_yeh.fina FD9A Lo\nnoon.medi_meem.medi_alefmaksura.fina FD9B Lo\nyeh.medi_meem.medi_meem.fina FD9C Lo\nyeh.init_meem.medi_meem.medi FD9D Lo\nbeh.medi_khah.medi_yeh.fina FD9E Lo\nteh.medi_jeem.medi_yeh.fina FD9F Lo\nteh.medi_jeem.medi_alefmaksura.fina FDA0 Lo\nteh.medi_khah.medi_yeh.fina FDA1 Lo\nteh.medi_khah.medi_alefmaksura.fina FDA2 Lo\nteh.medi_meem.medi_yeh.fina FDA3 Lo\nteh.medi_meem.medi_alefmaksura.fina FDA4 Lo\njeem.medi_meem.medi_yeh.fina FDA5 Lo\njeem.medi_hah.medi_alefmaksura.fina FDA6 Lo\njeem.medi_meem.medi_alefmaksura.fina FDA7 Lo\nseen.medi_khah.medi_alefmaksura.fina FDA8 Lo\nsad.medi_hah.medi_yeh.fina FDA9 Lo\nsheen.medi_hah.medi_yeh.fina FDAA Lo\ndad.medi_hah.medi_yeh.fina FDAB Lo\nlam.medi_jeem.medi_yeh.fina FDAC Lo\nlam.medi_meem.medi_yeh.fina FDAD Lo\nyeh.medi_hah.medi_yeh.fina FDAE Lo\nyeh.medi_jeem.medi_yeh.fina FDAF Lo\nyeh.medi_meem.medi_yeh.fina FDB0 Lo\nmeem.medi_meem.medi_yeh.fina FDB1 Lo\nqaf.medi_meem.medi_yeh.fina FDB2 Lo\nnoon.medi_hah.medi_yeh.fina FDB3 Lo\nqaf.init_meem.medi_hah.medi FDB4 Lo\nlam.init_hah.medi_meem.medi FDB5 Lo\nain.medi_meem.medi_yeh.fina FDB6 Lo\nkaf.medi_meem.medi_yeh.fina FDB7 Lo\nnoon.init_jeem.medi_hah.medi FDB8 Lo\nmeem.medi_khah.medi_yeh.fina FDB9 Lo\nlam.init_jeem.medi_meem.medi FDBA Lo\nkaf.medi_meem.medi_meem.fina FDBB Lo\nlam.medi_jeem.medi_meem.fina FDBC Lo\nnoon.medi_jeem.medi_hah.fina FDBD Lo\njeem.medi_hah.medi_yeh.fina FDBE Lo\nhah.medi_jeem.medi_yeh.fina FDBF Lo\nmeem.medi_jeem.medi_yeh.fina FDC0 Lo\nfeh.medi_meem.medi_yeh.fina FDC1 Lo\nbeh.medi_hah.medi_yeh.fina FDC2 Lo\nkaf.init_meem.medi_meem.medi FDC3 Lo\nain.init_jeem.medi_meem.medi FDC4 Lo\nsad.init_meem.medi_meem.medi FDC5 Lo\nseen.medi_khah.medi_yeh.fina FDC6 Lo\nnoon.medi_jeem.medi_yeh.fina FDC7 Lo\nSallaUsedAsKoranicStopSign FDF0 Lo\nQalaUsedAsKoranicStopSign FDF1 Lo\nAllah FDF2 Lo\nAkbar FDF3 Lo\nMohammad FDF4 Lo\nSalam FDF5 Lo\nRasoul FDF6 Lo\nAlayhe FDF7 Lo\nWasallam FDF8 Lo\nSalla FDF9 Lo\nSallallahouAlayheWasallam FDFA Lo\nJallajalalouhou FDFB Lo\nrial FDFC Sc\nBismillahArRahmanArRaheem FDFD So\n# Vertical Forms\nvert:comma FE10 Po\nvert:ideographiccomma FE11 Po\nvert:ideographicfullstop FE12 Po\nvert:colon FE13 Po\nvert:semicolon FE14 Po\nvert:exclam FE15 Po\nvert:question FE16 Po\nvert:bracketwhiteleft FE17 Ps\nvert:brakcetwhiteright FE18 Pe\nvert:ellipsishor FE19 Po\n# CJK Compatibility Forms\ntwodotleadervertical FE30 Po\nemdashvertical FE31 Pd\nendashvertical FE32 Pd\nunderscorevertical FE33 Pc\nunderscorewavyvertical FE34 Pc\nparenleftvertical FE35 Ps\nparenrightvertical FE36 Pe\nbraceleftvertical FE37 Ps\nbracerightvertical FE38 Pe\ntortoiseshellbracketleftvertical FE39 Ps\ntortoiseshellbracketrightvertical FE3A Pe\nblacklenticularbracketleftvertical FE3B Ps\nblacklenticularbracketrightvertical FE3C Pe\ndblanglebracketleftvertical FE3D Ps\ndblanglebracketrightvertical FE3E Pe\nanglebracketleftvertical FE3F Ps\nanglebracketrightvertical FE40 Pe\ncornerbracketleftvertical FE41 Ps\ncornerbracketrightvertical FE42 Pe\nwhitecornerbracketleftvertical FE43 Ps\nwhitecornerbracketrightvertical FE44 Pe\nsesamedot FE45 Po\nwhitesesamedot FE46 Po\nsquarebracketleftvertical FE47 Ps\nsquarebracketrightvertical FE48 Pe\noverlinedashed FE49 Po\noverlinecenterline FE4A Po\noverlinewavy FE4B Po\noverlinedblwavy FE4C Po\nunderscoredashed FE4D Pc\nunderscorecenterline FE4E Pc\nunderscorewavy FE4F Pc\n# Small Form Variants\ncommasmall FE50 Po\nideographiccommasmall FE51 Po\nperiodsmall FE52 Po\nsemicolonsmall FE54 Po\ncolonsmall FE55 Po\nquestionsmall FE56 Po\nexclamsmall FE57 Po\nemdashsmall FE58 Pd\nparenthesisleftsmall FE59 Ps\nparenthesisrightsmall FE5A Pe\nbraceleftsmall FE5B Ps\nbracerightsmall FE5C Pe\ntortoiseshellbracketleftsmall FE5D Ps\ntortoiseshellbracketrightsmall FE5E Pe\nnumbersignsmall FE5F Po\nampersandsmall FE60 Po\nasterisksmall FE61 Po\nplussmall FE62 Sm\nhyphensmall FE63 Pd\nlesssmall FE64 Sm\ngreatersmall FE65 Sm\nequalsmall FE66 Sm\nbackslashsmall FE68 Po\ndollarsmall FE69 Sc\npercentsmall FE6A Po\ncommercialatsmall FE6B Po\n# Arabic Presentation Forms-B\nfathatanIsol FE70 Lo\ntatweelFathatanAbove FE71 Lo\ndammatanIsol FE72 Lo\nkashidaFina FE73 Lo\nkasratanIsol FE74 Lo\nfathaIsol FE76 Lo\nfathaMedi FE77 Lo\ndammaIsol FE78 Lo\ndammaMedi FE79 Lo\nkasraIsol FE7A Lo\nkasraMedi FE7B Lo\nshaddaIsol FE7C Lo\nshaddaMedi FE7D Lo\nsukunIsol FE7E Lo\nsukunMedi FE7F Lo\nhamzaIsol FE80 Lo\nalefmadda.isol FE81 Lo\nalefmadda.fina FE82 Lo\nalefhamza.isol FE83 Lo\nalefhamza.fina FE84 Lo\nwawhamza.isol FE85 Lo\nwawhamza.fina FE86 Lo\nalefhamzabelow.isol FE87 Lo\nalefhamzabelow.fina FE88 Lo\nyehhamza.isol FE89 Lo\nyehhamza.fina FE8A Lo\nyehhamza.init FE8B Lo\nyehhamza.medi FE8C Lo\nalef.isol FE8D Lo\nalef.fina FE8E Lo\nbeh.isol FE8F Lo\nbeh.fina FE90 Lo\nbeh.init FE91 Lo\nbeh.medi FE92 Lo\ntehmarbuta.isol FE93 Lo\ntehmarbuta.fina FE94 Lo\nteh.isol FE95 Lo\nteh.fina FE96 Lo\nteh.init FE97 Lo\nteh.medi FE98 Lo\ntheh.isol FE99 Lo\ntheh.fina FE9A Lo\ntheh.init FE9B Lo\ntheh.medi FE9C Lo\njeem.isol FE9D Lo\njeem.fina FE9E Lo\njeem.init FE9F Lo\njeem.medi FEA0 Lo\nhah.isol FEA1 Lo\nhah.fina FEA2 Lo\nhah.init FEA3 Lo\nhah.medi FEA4 Lo\nkhah.isol FEA5 Lo\nkhah.fina FEA6 Lo\nkhah.init FEA7 Lo\nkhah.medi FEA8 Lo\ndal.isol FEA9 Lo\ndal.fina FEAA Lo\nthal.isol FEAB Lo\nthal.fina FEAC Lo\nreh.isol FEAD Lo\nreh.fina FEAE Lo\nzain.isol FEAF Lo\nzain.fina FEB0 Lo\nseen.isol FEB1 Lo\nseen.fina FEB2 Lo\nseen.init FEB3 Lo\nseen.medi FEB4 Lo\nsheen.isol FEB5 Lo\nsheen.fina FEB6 Lo\nsheen.init FEB7 Lo\nsheen.medi FEB8 Lo\nsad.isol FEB9 Lo\nsad.fina FEBA Lo\nsad.init FEBB Lo\nsad.medi FEBC Lo\ndad.isol FEBD Lo\ndad.fina FEBE Lo\ndad.init FEBF Lo\ndad.medi FEC0 Lo\ntah.isol FEC1 Lo\ntah.fina FEC2 Lo\ntah.init FEC3 Lo\ntah.medi FEC4 Lo\nzah.isol FEC5 Lo\nzah.fina FEC6 Lo\nzah.init FEC7 Lo\nzah.medi FEC8 Lo\nain.isol FEC9 Lo\nain.fina FECA Lo\nain.init FECB Lo\nain.medi FECC Lo\nghain.isol FECD Lo\nghain.fina FECE Lo\nghain.init FECF Lo\nghain.medi FED0 Lo\nfeh.isol FED1 Lo\nfeh.fina FED2 Lo\nfeh.init FED3 Lo\nfeh.medi FED4 Lo\nqaf.isol FED5 Lo\nqaf.fina FED6 Lo\nqaf.init FED7 Lo\nqaf.medi FED8 Lo\nkaf.isol FED9 Lo\nkaf.fina FEDA Lo\nkaf.init FEDB Lo\nkaf.medi FEDC Lo\nlam.isol FEDD Lo\nlam.fina FEDE Lo\nlam.init FEDF Lo\nlam.medi FEE0 Lo\nmeem.isol FEE1 Lo\nmeem.fina FEE2 Lo\nmeem.init FEE3 Lo\nmeem.medi FEE4 Lo\nnoon.isol FEE5 Lo\nnoon.fina FEE6 Lo\nnoon.init FEE7 Lo\nnoon.medi FEE8 Lo\nheh.isol FEE9 Lo\nheh.fina FEEA Lo\nheh.init FEEB Lo\nheh.medi FEEC Lo\nwaw.isol FEED Lo\nwaw.fina FEEE Lo\nalefmaksura.isol FEEF Lo\nalefmaksura.fina FEF0 Lo\nyeh.isol FEF1 Lo\nyeh.fina FEF2 Lo\nyeh.init FEF3 Lo\nyeh.medi FEF4 Lo\nlam.init_alef.medi_maddaabove.fina FEF5 Lo\nlam.medi_alef.medi_maddaabove.fina FEF6 Lo\nlam.init_alef.medi_hamzaabove.fina FEF7 Lo\nlam.medi_alef.medi_hamzaabove.fina FEF8 Lo\nlam.init_alef.medi_hamzabelow.fina FEF9 Lo\nlam.medi_alef.medi_hamzabelow.fina FEFA Lo\nlam.init_alef.fina FEFB Lo\nlam.medi_alef.fina FEFC Lo\nzerowidthnobreakspace FEFF Cf\n# Halfwidth and Fullwidth Forms\nfwd:exclam FF01 Po\nfwd:quotedbl FF02 Po\nfwd:numbersign FF03 Po\nfwd:dollar FF04 Sc\nfwd:percent FF05 Po\nfwd:ampersand FF06 Po\nfwd:quotesingle FF07 Po\nfwd:parenthesisleft FF08 Ps\nfwd:parenthesisright FF09 Pe\nfwd:asterisk FF0A Po\nfwd:plus FF0B Sm\nfwd:comma FF0C Po\nfwd:hyphen FF0D Pd\nfwd:period FF0E Po\nfwd:slash FF0F Po\nfwd:zero FF10 Nd\nfwd:one FF11 Nd\nfwd:two FF12 Nd\nfwd:three FF13 Nd\nfwd:four FF14 Nd\nfwd:five FF15 Nd\nfwd:six FF16 Nd\nfwd:seven FF17 Nd\nfwd:eight FF18 Nd\nfwd:nine FF19 Nd\nfwd:colon FF1A Po\nfwd:semicolon FF1B Po\nfwd:less FF1C Sm\nfwd:equal FF1D Sm\nfwd:greater FF1E Sm\nfwd:question FF1F Po\nfwd:at FF20 Po\nfwd:A FF21 Lu\nfwd:B FF22 Lu\nfwd:C FF23 Lu\nfwd:D FF24 Lu\nfwd:E FF25 Lu\nfwd:F FF26 Lu\nfwd:G FF27 Lu\nfwd:H FF28 Lu\nfwd:I FF29 Lu\nfwd:J FF2A Lu\nfwd:K FF2B Lu\nfwd:L FF2C Lu\nfwd:M FF2D Lu\nfwd:N FF2E Lu\nfwd:O FF2F Lu\nfwd:P FF30 Lu\nfwd:Q FF31 Lu\nfwd:R FF32 Lu\nfwd:S FF33 Lu\nfwd:T FF34 Lu\nfwd:U FF35 Lu\nfwd:V FF36 Lu\nfwd:W FF37 Lu\nfwd:X FF38 Lu\nfwd:Y FF39 Lu\nfwd:Z FF3A Lu\nfwd:bracketleft FF3B Ps\nfwd:backslash FF3C Po\nfwd:bracketright FF3D Pe\nfwd:asciicircum FF3E Sk\nfwd:underscore FF3F Pc\nfwd:grave FF40 Sk\nfwd:a FF41 Ll\nfwd:b FF42 Ll\nfwd:c FF43 Ll\nfwd:d FF44 Ll\nfwd:e FF45 Ll\nfwd:f FF46 Ll\nfwd:g FF47 Ll\nfwd:h FF48 Ll\nfwd:i FF49 Ll\nfwd:j FF4A Ll\nfwd:k FF4B Ll\nfwd:l FF4C Ll\nfwd:m FF4D Ll\nfwd:n FF4E Ll\nfwd:o FF4F Ll\nfwd:p FF50 Ll\nfwd:q FF51 Ll\nfwd:r FF52 Ll\nfwd:s FF53 Ll\nfwd:t FF54 Ll\nfwd:u FF55 Ll\nfwd:v FF56 Ll\nfwd:w FF57 Ll\nfwd:x FF58 Ll\nfwd:y FF59 Ll\nfwd:z FF5A Ll\nfwd:braceleft FF5B Ps\nfwd:bar FF5C Sm\nfwd:braceright FF5D Pe\nfwd:asciitilde FF5E Sm\nfwd:leftwhiteparenthesis FF5F Ps\nfwd:rightwhiteparenthesis FF60 Pe\nhwd:ideographicfullstop FF61 Po\nhwd:leftcornerbracket FF62 Ps\nhwd:rightcornerbracket FF63 Pe\nhwd:ideographiccomma FF64 Po\nhwd:kata:middledot FF65 Po\nhwd:kata:wo FF66 Lo\nhwd:kata:asmall FF67 Lo\nhwd:kata:ismall FF68 Lo\nhwd:kata:usmall FF69 Lo\nhwd:kata:esmall FF6A Lo\nhwd:kata:osmall FF6B Lo\nhwd:kata:yasmall FF6C Lo\nhwd:kata:yusmall FF6D Lo\nhwd:kata:yosmall FF6E Lo\nhwd:kata:tusmall FF6F Lo\nhwd:kata:prolongedkana FF70 Lm\nhwd:kata:a FF71 Lo\nhwd:kata:i FF72 Lo\nhwd:kata:u FF73 Lo\nhwd:kata:e FF74 Lo\nhwd:kata:o FF75 Lo\nhwd:kata:ka FF76 Lo\nhwd:kata:ki FF77 Lo\nhwd:kata:ku FF78 Lo\nhwd:kata:ke FF79 Lo\nhwd:kata:ko FF7A Lo\nhwd:kata:sa FF7B Lo\nhwd:kata:si FF7C Lo\nhwd:kata:su FF7D Lo\nhwd:kata:se FF7E Lo\nhwd:kata:so FF7F Lo\nhwd:kata:ta FF80 Lo\nhwd:kata:ti FF81 Lo\nhwd:kata:tu FF82 Lo\nhwd:kata:te FF83 Lo\nhwd:kata:to FF84 Lo\nhwd:kata:na FF85 Lo\nhwd:kata:ni FF86 Lo\nhwd:kata:nu FF87 Lo\nhwd:kata:ne FF88 Lo\nhwd:kata:no FF89 Lo\nhwd:kata:ha FF8A Lo\nhwd:kata:hi FF8B Lo\nhwd:kata:hu FF8C Lo\nhwd:kata:he FF8D Lo\nhwd:kata:ho FF8E Lo\nhwd:kata:ma FF8F Lo\nhwd:kata:mi FF90 Lo\nhwd:kata:mu FF91 Lo\nhwd:kata:me FF92 Lo\nhwd:kata:mo FF93 Lo\nhwd:kata:ya FF94 Lo\nhwd:kata:yu FF95 Lo\nhwd:kata:yo FF96 Lo\nhwd:kata:ra FF97 Lo\nhwd:kata:ri FF98 Lo\nhwd:kata:ru FF99 Lo\nhwd:kata:re FF9A Lo\nhwd:kata:ro FF9B Lo\nhwd:kata:wa FF9C Lo\nhwd:kata:n FF9D Lo\nhwd:kata:voiced FF9E Lm\nhwd:kata:semi-voiced FF9F Lm\nhwd:hangulfiller FFA0 Lo\nhwd:kiyeok FFA1 Lo\nhwd:ssangkiyeok FFA2 Lo\nhwd:kiyeoksios FFA3 Lo\nhwd:nieun FFA4 Lo\nhwd:nieuncieuc FFA5 Lo\nhwd:nieunhieuh FFA6 Lo\nhwd:tikeut FFA7 Lo\nhwd:ssangtikeut FFA8 Lo\nhwd:rieul FFA9 Lo\nhwd:rieulkiyeok FFAA Lo\nhwd:rieulmieum FFAB Lo\nhwd:rieulpieup FFAC Lo\nhwd:rieulsios FFAD Lo\nhwd:rieulthieuth FFAE Lo\nhwd:rieulphieuph FFAF Lo\nhwd:rieulhieuh FFB0 Lo\nhwd:mieum FFB1 Lo\nhwd:pieup FFB2 Lo\nhwd:ssangpieup FFB3 Lo\nhwd:pieupsios FFB4 Lo\nhwd:sios FFB5 Lo\nhwd:ssangsios FFB6 Lo\nhwd:ieung FFB7 Lo\nhwd:cieuc FFB8 Lo\nhwd:ssangcieuc FFB9 Lo\nhwd:chieuch FFBA Lo\nhwd:khieukh FFBB Lo\nhwd:thieuth FFBC Lo\nhwd:phieuph FFBD Lo\nhwd:hieuh FFBE Lo\nhwd:a FFC2 Lo\nhwd:ae FFC3 Lo\nhwd:ya FFC4 Lo\nhwd:yae FFC5 Lo\nhwd:eo FFC6 Lo\nhwd:e FFC7 Lo\nhwd:yeo FFCA Lo\nhwd:ye FFCB Lo\nhwd:o FFCC Lo\nhwd:wa FFCD Lo\nhwd:wae FFCE Lo\nhwd:oe FFCF Lo\nhwd:yo FFD2 Lo\nhwd:u FFD3 Lo\nhwd:weo FFD4 Lo\nhwd:we FFD5 Lo\nhwd:wi FFD6 Lo\nhwd:yu FFD7 Lo\nhwd:eu FFDA Lo\nhwd:yi FFDB Lo\nhwd:i FFDC Lo\nfwd:centsign FFE0 Sc\nfwd:poundsign FFE1 Sc\nfwd:notsign FFE2 Sm\nfwd:macron FFE3 Sk\nfwd:brokenbar FFE4 So\nfwd:yensign FFE5 Sc\nfwd:wonsign FFE6 Sc\nhwd:formslightvertical FFE8 So\nhwd:leftwardsarrow FFE9 Sm\nhwd:upwardsarrow FFEA Sm\nhwd:rightwardsarrow FFEB Sm\nhwd:downwardsarrow FFEC Sm\nhwd:blacksquare FFED So\nhwd:whitecircle FFEE So\n# Specials\ninterlinearanchor FFF9 Cf\ninterlinearseparator FFFA Cf\ninterlinearterminator FFFB Cf\nreplacementcharobj FFFC So\nreplacementchar FFFD So\n# Zanabazar Square\nzanb:a 11A00 Lo\nzanb:vowelsigni 11A01 Mn\nzanb:vowelsignue 11A02 Mn\nzanb:vowelsignu 11A03 Mn\nzanb:vowelsigne 11A04 Mn\nzanb:vowelsignoe 11A05 Mn\nzanb:vowelsigno 11A06 Mn\nzanb:vowelsignai 11A07 Mn\nzanb:vowelsignau 11A08 Mn\nzanb:vowelsignreversedi 11A09 Mn\nzanb:vowellengthmark 11A0A Mn\nzanb:ka 11A0B Lo\nzanb:kha 11A0C Lo\nzanb:ga 11A0D Lo\nzanb:gha 11A0E Lo\nzanb:nga 11A0F Lo\nzanb:ca 11A10 Lo\nzanb:cha 11A11 Lo\nzanb:ja 11A12 Lo\nzanb:nya 11A13 Lo\nzanb:tta 11A14 Lo\nzanb:ttha 11A15 Lo\nzanb:dda 11A16 Lo\nzanb:ddha 11A17 Lo\nzanb:nna 11A18 Lo\nzanb:ta 11A19 Lo\nzanb:tha 11A1A Lo\nzanb:da 11A1B Lo\nzanb:dha 11A1C Lo\nzanb:na 11A1D Lo\nzanb:pa 11A1E Lo\nzanb:pha 11A1F Lo\nzanb:ba 11A20 Lo\nzanb:bha 11A21 Lo\nzanb:ma 11A22 Lo\nzanb:tsa 11A23 Lo\nzanb:tsha 11A24 Lo\nzanb:dza 11A25 Lo\nzanb:dzha 11A26 Lo\nzanb:zha 11A27 Lo\nzanb:za 11A28 Lo\nzanb:dashA 11A29 Lo\nzanb:ya 11A2A Lo\nzanb:ra 11A2B Lo\nzanb:la 11A2C Lo\nzanb:va 11A2D Lo\nzanb:sha 11A2E Lo\nzanb:ssa 11A2F Lo\nzanb:sa 11A30 Lo\nzanb:ha 11A31 Lo\nzanb:kssa 11A32 Lo\nzanb:finalconsonantmark 11A33 Mn\nzanb:signvirama 11A34 Mn\nzanb:signcandrabindu 11A35 Mn\nzanb:signcandrabinduwithornament 11A36 Mn\nzanb:signcandrawithornament 11A37 Mn\nzanb:signanusvara 11A38 Mn\nzanb:signvisarga 11A39 Mc\nzanb:raclusterinit 11A3A Lo\nzanb:yaclusterfina 11A3B Mn\nzanb:raclusterfina 11A3C Mn\nzanb:laclusterfina 11A3D Mn\nzanb:vaclusterfina 11A3E Mn\nzanb:initialheadmark 11A3F Po\nzanb:closingheadmark 11A40 Po\nzanb:marktsheg 11A41 Po\nzanb:markshad 11A42 Po\nzanb:markdoubleshad 11A43 Po\nzanb:marklongtsheg 11A44 Po\nzanb:initialheadmarkdbllined 11A45 Po\nzanb:closingheadmarkdbllined 11A46 Po\nzanb:subjoiner 11A47 Mn\n# Mathematical Alphanumeric Symbols\nAbold 1D400 Lu\nBbold 1D401 Lu\nCbold 1D402 Lu\nDbold 1D403 Lu\nEbold 1D404 Lu\nFbold 1D405 Lu\nGbold 1D406 Lu\nHbold 1D407 Lu\nIbold 1D408 Lu\nJbold 1D409 Lu\nKbold 1D40A Lu\nLbold 1D40B Lu\nMbold 1D40C Lu\nNbold 1D40D Lu\nObold 1D40E Lu\nPbold 1D40F Lu\nQbold 1D410 Lu\nRbold 1D411 Lu\nSbold 1D412 Lu\nTbold 1D413 Lu\nUbold 1D414 Lu\nVbold 1D415 Lu\nWbold 1D416 Lu\nXbold 1D417 Lu\nYbold 1D418 Lu\nZbold 1D419 Lu\nabold 1D41A Ll\nbbold 1D41B Ll\ncbold 1D41C Ll\ndbold 1D41D Ll\nebold 1D41E Ll\nfbold 1D41F Ll\ngbold 1D420 Ll\nhbold 1D421 Ll\nibold 1D422 Ll\njbold 1D423 Ll\nkbold 1D424 Ll\nlbold 1D425 Ll\nmbold 1D426 Ll\nnbold 1D427 Ll\nobold 1D428 Ll\npbold 1D429 Ll\nqbold 1D42A Ll\nrbold 1D42B Ll\nsbold 1D42C Ll\ntbold 1D42D Ll\nubold 1D42E Ll\nvbold 1D42F Ll\nwbold 1D430 Ll\nxbold 1D431 Ll\nybold 1D432 Ll\nzbold 1D433 Ll\nAitalic 1D434 Lu\nBitalic 1D435 Lu\nCitalic 1D436 Lu\nDitalic 1D437 Lu\nEitalic 1D438 Lu\nFitalic 1D439 Lu\nGitalic 1D43A Lu\nHitalic 1D43B Lu\nIitalic 1D43C Lu\nJitalic 1D43D Lu\nKitalic 1D43E Lu\nLitalic 1D43F Lu\nMitalic 1D440 Lu\nNitalic 1D441 Lu\nOitalic 1D442 Lu\nPitalic 1D443 Lu\nQitalic 1D444 Lu\nRitalic 1D445 Lu\nSitalic 1D446 Lu\nTitalic 1D447 Lu\nUitalic 1D448 Lu\nVitalic 1D449 Lu\nWitalic 1D44A Lu\nXitalic 1D44B Lu\nYitalic 1D44C Lu\nZitalic 1D44D Lu\naitalic 1D44E Ll\nbitalic 1D44F Ll\ncitalic 1D450 Ll\nditalic 1D451 Ll\neitalic 1D452 Ll\nfitalic 1D453 Ll\ngitalic 1D454 Ll\niitalic 1D456 Ll\njitalic 1D457 Ll\nkitalic 1D458 Ll\nlitalic 1D459 Ll\nmitalic 1D45A Ll\nnitalic 1D45B Ll\noitalic 1D45C Ll\npitalic 1D45D Ll\nqitalic 1D45E Ll\nritalic 1D45F Ll\nsitalic 1D460 Ll\ntitalic 1D461 Ll\nuitalic 1D462 Ll\nvitalic 1D463 Ll\nwitalic 1D464 Ll\nxitalic 1D465 Ll\nyitalic 1D466 Ll\nzitalic 1D467 Ll\nAbolditalic 1D468 Lu\nBbolditalic 1D469 Lu\nCbolditalic 1D46A Lu\nDbolditalic 1D46B Lu\nEbolditalic 1D46C Lu\nFbolditalic 1D46D Lu\nGbolditalic 1D46E Lu\nHbolditalic 1D46F Lu\nIbolditalic 1D470 Lu\nJbolditalic 1D471 Lu\nKbolditalic 1D472 Lu\nLbolditalic 1D473 Lu\nMbolditalic 1D474 Lu\nNbolditalic 1D475 Lu\nObolditalic 1D476 Lu\nPbolditalic 1D477 Lu\nQbolditalic 1D478 Lu\nRbolditalic 1D479 Lu\nSbolditalic 1D47A Lu\nTbolditalic 1D47B Lu\nUbolditalic 1D47C Lu\nVbolditalic 1D47D Lu\nWbolditalic 1D47E Lu\nXbolditalic 1D47F Lu\nYbolditalic 1D480 Lu\nZbolditalic 1D481 Lu\nabolditalic 1D482 Ll\nbbolditalic 1D483 Ll\ncbolditalic 1D484 Ll\ndbolditalic 1D485 Ll\nebolditalic 1D486 Ll\nfbolditalic 1D487 Ll\ngbolditalic 1D488 Ll\nhbolditalic 1D489 Ll\nibolditalic 1D48A Ll\njbolditalic 1D48B Ll\nkbolditalic 1D48C Ll\nlbolditalic 1D48D Ll\nmbolditalic 1D48E Ll\nnbolditalic 1D48F Ll\nobolditalic 1D490 Ll\npbolditalic 1D491 Ll\nqbolditalic 1D492 Ll\nrbolditalic 1D493 Ll\nsbolditalic 1D494 Ll\ntbolditalic 1D495 Ll\nubolditalic 1D496 Ll\nvbolditalic 1D497 Ll\nwbolditalic 1D498 Ll\nxbolditalic 1D499 Ll\nybolditalic 1D49A Ll\nzbolditalic 1D49B Ll\nAscript 1D49C Lu\nCscript 1D49E Lu\nDscript 1D49F Lu\nGscript 1D4A2 Lu\nJscript 1D4A5 Lu\nKscript 1D4A6 Lu\nNscript 1D4A9 Lu\nOscript 1D4AA Lu\nPscript 1D4AB Lu\nQscript 1D4AC Lu\nSscript 1D4AE Lu\nTscript 1D4AF Lu\nUscript 1D4B0 Lu\nVscript 1D4B1 Lu\nWscript 1D4B2 Lu\nXscript 1D4B3 Lu\nYscript 1D4B4 Lu\nZscript 1D4B5 Lu\nascript 1D4B6 Ll\nbscript 1D4B7 Ll\ncscript 1D4B8 Ll\ndscript 1D4B9 Ll\nfscript 1D4BB Ll\nhscript 1D4BD Ll\niscript 1D4BE Ll\njscript 1D4BF Ll\nkscript 1D4C0 Ll\nlscript 1D4C1 Ll\nmscript 1D4C2 Ll\nnscript 1D4C3 Ll\npscript 1D4C5 Ll\nqscript 1D4C6 Ll\nmath:rscript 1D4C7 Ll\nsscript 1D4C8 Ll\ntscript 1D4C9 Ll\nuscript 1D4CA Ll\nvscript 1D4CB Ll\nwscript 1D4CC Ll\nxscript 1D4CD Ll\nyscript 1D4CE Ll\nzscript 1D4CF Ll\nAboldscript 1D4D0 Lu\nBboldscript 1D4D1 Lu\nCboldscript 1D4D2 Lu\nDboldscript 1D4D3 Lu\nEboldscript 1D4D4 Lu\nFboldscript 1D4D5 Lu\nGboldscript 1D4D6 Lu\nHboldscript 1D4D7 Lu\nIboldscript 1D4D8 Lu\nJboldscript 1D4D9 Lu\nKboldscript 1D4DA Lu\nLboldscript 1D4DB Lu\nMboldscript 1D4DC Lu\nNboldscript 1D4DD Lu\nOboldscript 1D4DE Lu\nPboldscript 1D4DF Lu\nQboldscript 1D4E0 Lu\nRboldscript 1D4E1 Lu\nSboldscript 1D4E2 Lu\nTboldscript 1D4E3 Lu\nUboldscript 1D4E4 Lu\nVboldscript 1D4E5 Lu\nWboldscript 1D4E6 Lu\nXboldscript 1D4E7 Lu\nYboldscript 1D4E8 Lu\nZboldscript 1D4E9 Lu\naboldscript 1D4EA Ll\nbboldscript 1D4EB Ll\ncboldscript 1D4EC Ll\ndboldscript 1D4ED Ll\neboldscript 1D4EE Ll\nfboldscript 1D4EF Ll\ngboldscript 1D4F0 Ll\nhboldscript 1D4F1 Ll\niboldscript 1D4F2 Ll\njboldscript 1D4F3 Ll\nkboldscript 1D4F4 Ll\nlboldscript 1D4F5 Ll\nmboldscript 1D4F6 Ll\nnboldscript 1D4F7 Ll\noboldscript 1D4F8 Ll\npboldscript 1D4F9 Ll\nqboldscript 1D4FA Ll\nrboldscript 1D4FB Ll\nsboldscript 1D4FC Ll\ntboldscript 1D4FD Ll\nuboldscript 1D4FE Ll\nvboldscript 1D4FF Ll\nwboldscript 1D500 Ll\nxboldscript 1D501 Ll\nyboldscript 1D502 Ll\nzboldscript 1D503 Ll\nAfraktur 1D504 Lu\nBfraktur 1D505 Lu\nDfraktur 1D507 Lu\nEfraktur 1D508 Lu\nFfraktur 1D509 Lu\nGfraktur 1D50A Lu\nJfraktur 1D50D Lu\nKfraktur 1D50E Lu\nLfraktur 1D50F Lu\nMfraktur 1D510 Lu\nNfraktur 1D511 Lu\nOfraktur 1D512 Lu\nPfraktur 1D513 Lu\nQfraktur 1D514 Lu\nSfraktur 1D516 Lu\nTfraktur 1D517 Lu\nUfraktur 1D518 Lu\nVfraktur 1D519 Lu\nWfraktur 1D51A Lu\nXfraktur 1D51B Lu\nYfraktur 1D51C Lu\nafraktur 1D51E Ll\nbfraktur 1D51F Ll\ncfraktur 1D520 Ll\ndfraktur 1D521 Ll\nefraktur 1D522 Ll\nffraktur 1D523 Ll\ngfraktur 1D524 Ll\nhfraktur 1D525 Ll\nifraktur 1D526 Ll\njfraktur 1D527 Ll\nkfraktur 1D528 Ll\nlfraktur 1D529 Ll\nmfraktur 1D52A Ll\nnfraktur 1D52B Ll\nofraktur 1D52C Ll\npfraktur 1D52D Ll\nqfraktur 1D52E Ll\nrfraktur 1D52F Ll\nsfraktur 1D530 Ll\ntfraktur 1D531 Ll\nufraktur 1D532 Ll\nvfraktur 1D533 Ll\nwfraktur 1D534 Ll\nxfraktur 1D535 Ll\nyfraktur 1D536 Ll\nzfraktur 1D537 Ll\nAdblstruck 1D538 Lu\nBdblstruck 1D539 Lu\nDdblstruck 1D53B Lu\nEdblstruck 1D53C Lu\nFdblstruck 1D53D Lu\nGdblstruck 1D53E Lu\nIdblstruck 1D540 Lu\nJdblstruck 1D541 Lu\nKdblstruck 1D542 Lu\nLdblstruck 1D543 Lu\nMdblstruck 1D544 Lu\nOdblstruck 1D546 Lu\nSdblstruck 1D54A Lu\nTdblstruck 1D54B Lu\nUdblstruck 1D54C Lu\nVdblstruck 1D54D Lu\nWdblstruck 1D54E Lu\nXdblstruck 1D54F Lu\nYdblstruck 1D550 Lu\nadblstruck 1D552 Ll\nbdblstruck 1D553 Ll\ncdblstruck 1D554 Ll\nddblstruck 1D555 Ll\nedblstruck 1D556 Ll\nfdblstruck 1D557 Ll\ngdblstruck 1D558 Ll\nhdblstruck 1D559 Ll\nidblstruck 1D55A Ll\njdblstruck 1D55B Ll\nkdblstruck 1D55C Ll\nldblstruck 1D55D Ll\nmdblstruck 1D55E Ll\nndblstruck 1D55F Ll\nodblstruck 1D560 Ll\npdblstruck 1D561 Ll\nqdblstruck 1D562 Ll\nrdblstruck 1D563 Ll\nsdblstruck 1D564 Ll\ntdblstruck 1D565 Ll\nudblstruck 1D566 Ll\nvdblstruck 1D567 Ll\nwdblstruck 1D568 Ll\nxdblstruck 1D569 Ll\nydblstruck 1D56A Ll\nzdblstruck 1D56B Ll\nAboldfraktur 1D56C Lu\nBboldfraktur 1D56D Lu\nCboldfraktur 1D56E Lu\nDboldfraktur 1D56F Lu\nEboldfraktur 1D570 Lu\nFboldfraktur 1D571 Lu\nGboldfraktur 1D572 Lu\nHboldfraktur 1D573 Lu\nIboldfraktur 1D574 Lu\nJboldfraktur 1D575 Lu\nKboldfraktur 1D576 Lu\nLboldfraktur 1D577 Lu\nMboldfraktur 1D578 Lu\nNboldfraktur 1D579 Lu\nOboldfraktur 1D57A Lu\nPboldfraktur 1D57B Lu\nQboldfraktur 1D57C Lu\nRboldfraktur 1D57D Lu\nSboldfraktur 1D57E Lu\nTboldfraktur 1D57F Lu\nUboldfraktur 1D580 Lu\nVboldfraktur 1D581 Lu\nWboldfraktur 1D582 Lu\nXboldfraktur 1D583 Lu\nYboldfraktur 1D584 Lu\nZboldfraktur 1D585 Lu\naboldfraktur 1D586 Ll\nbboldfraktur 1D587 Ll\ncboldfraktur 1D588 Ll\ndboldfraktur 1D589 Ll\neboldfraktur 1D58A Ll\nfboldfraktur 1D58B Ll\ngboldfraktur 1D58C Ll\nhboldfraktur 1D58D Ll\niboldfraktur 1D58E Ll\njboldfraktur 1D58F Ll\nkboldfraktur 1D590 Ll\nlboldfraktur 1D591 Ll\nmboldfraktur 1D592 Ll\nnboldfraktur 1D593 Ll\noboldfraktur 1D594 Ll\npboldfraktur 1D595 Ll\nqboldfraktur 1D596 Ll\nrboldfraktur 1D597 Ll\nsboldfraktur 1D598 Ll\ntboldfraktur 1D599 Ll\nuboldfraktur 1D59A Ll\nvboldfraktur 1D59B Ll\nwboldfraktur 1D59C Ll\nxboldfraktur 1D59D Ll\nyboldfraktur 1D59E Ll\nzboldfraktur 1D59F Ll\nAsans 1D5A0 Lu\nBsans 1D5A1 Lu\nCsans 1D5A2 Lu\nDsans 1D5A3 Lu\nEsans 1D5A4 Lu\nFsans 1D5A5 Lu\nGsans 1D5A6 Lu\nHsans 1D5A7 Lu\nIsans 1D5A8 Lu\nJsans 1D5A9 Lu\nKsans 1D5AA Lu\nLsans 1D5AB Lu\nMsans 1D5AC Lu\nNsans 1D5AD Lu\nOsans 1D5AE Lu\nPsans 1D5AF Lu\nQsans 1D5B0 Lu\nRsans 1D5B1 Lu\nSsans 1D5B2 Lu\nTsans 1D5B3 Lu\nUsans 1D5B4 Lu\nVsans 1D5B5 Lu\nWsans 1D5B6 Lu\nXsans 1D5B7 Lu\nYsans 1D5B8 Lu\nZsans 1D5B9 Lu\nasans 1D5BA Ll\nbsans 1D5BB Ll\ncsans 1D5BC Ll\ndsans 1D5BD Ll\nesans 1D5BE Ll\nfsans 1D5BF Ll\ngsans 1D5C0 Ll\nhsans 1D5C1 Ll\nisans 1D5C2 Ll\njsans 1D5C3 Ll\nksans 1D5C4 Ll\nlsans 1D5C5 Ll\nmsans 1D5C6 Ll\nnsans 1D5C7 Ll\nosans 1D5C8 Ll\npsans 1D5C9 Ll\nqsans 1D5CA Ll\nrsans 1D5CB Ll\nssans 1D5CC Ll\ntsans 1D5CD Ll\nusans 1D5CE Ll\nvsans 1D5CF Ll\nwsans 1D5D0 Ll\nxsans 1D5D1 Ll\nysans 1D5D2 Ll\nzsans 1D5D3 Ll\nAboldsans 1D5D4 Lu\nBboldsans 1D5D5 Lu\nCboldsans 1D5D6 Lu\nDboldsans 1D5D7 Lu\nEboldsans 1D5D8 Lu\nFboldsans 1D5D9 Lu\nGboldsans 1D5DA Lu\nHboldsans 1D5DB Lu\nIboldsans 1D5DC Lu\nJboldsans 1D5DD Lu\nKboldsans 1D5DE Lu\nLboldsans 1D5DF Lu\nMboldsans 1D5E0 Lu\nNboldsans 1D5E1 Lu\nOboldsans 1D5E2 Lu\nPboldsans 1D5E3 Lu\nQboldsans 1D5E4 Lu\nRboldsans 1D5E5 Lu\nSboldsans 1D5E6 Lu\nTboldsans 1D5E7 Lu\nUboldsans 1D5E8 Lu\nVboldsans 1D5E9 Lu\nWboldsans 1D5EA Lu\nXboldsans 1D5EB Lu\nYboldsans 1D5EC Lu\nZboldsans 1D5ED Lu\naboldsans 1D5EE Ll\nbboldsans 1D5EF Ll\ncboldsans 1D5F0 Ll\ndboldsans 1D5F1 Ll\neboldsans 1D5F2 Ll\nfboldsans 1D5F3 Ll\ngboldsans 1D5F4 Ll\nhboldsans 1D5F5 Ll\niboldsans 1D5F6 Ll\njboldsans 1D5F7 Ll\nkboldsans 1D5F8 Ll\nlboldsans 1D5F9 Ll\nmboldsans 1D5FA Ll\nnboldsans 1D5FB Ll\noboldsans 1D5FC Ll\npboldsans 1D5FD Ll\nqboldsans 1D5FE Ll\nrboldsans 1D5FF Ll\nsboldsans 1D600 Ll\ntboldsans 1D601 Ll\nuboldsans 1D602 Ll\nvboldsans 1D603 Ll\nwboldsans 1D604 Ll\nxboldsans 1D605 Ll\nyboldsans 1D606 Ll\nzboldsans 1D607 Ll\nAitalicsans 1D608 Lu\nBitalicsans 1D609 Lu\nCitalicsans 1D60A Lu\nDitalicsans 1D60B Lu\nEitalicsans 1D60C Lu\nFitalicsans 1D60D Lu\nGitalicsans 1D60E Lu\nHitalicsans 1D60F Lu\nIitalicsans 1D610 Lu\nJitalicsans 1D611 Lu\nKitalicsans 1D612 Lu\nLitalicsans 1D613 Lu\nMitalicsans 1D614 Lu\nNitalicsans 1D615 Lu\nOitalicsans 1D616 Lu\nPitalicsans 1D617 Lu\nQitalicsans 1D618 Lu\nRitalicsans 1D619 Lu\nSitalicsans 1D61A Lu\nTitalicsans 1D61B Lu\nUitalicsans 1D61C Lu\nVitalicsans 1D61D Lu\nWitalicsans 1D61E Lu\nXitalicsans 1D61F Lu\nYitalicsans 1D620 Lu\nZitalicsans 1D621 Lu\naitalicsans 1D622 Ll\nbitalicsans 1D623 Ll\ncitalicsans 1D624 Ll\nditalicsans 1D625 Ll\neitalicsans 1D626 Ll\nfitalicsans 1D627 Ll\ngitalicsans 1D628 Ll\nhitalicsans 1D629 Ll\niitalicsans 1D62A Ll\njitalicsans 1D62B Ll\nkitalicsans 1D62C Ll\nlitalicsans 1D62D Ll\nmitalicsans 1D62E Ll\nnitalicsans 1D62F Ll\noitalicsans 1D630 Ll\npitalicsans 1D631 Ll\nqitalicsans 1D632 Ll\nritalicsans 1D633 Ll\nsitalicsans 1D634 Ll\ntitalicsans 1D635 Ll\nuitalicsans 1D636 Ll\nvitalicsans 1D637 Ll\nwitalicsans 1D638 Ll\nxitalicsans 1D639 Ll\nyitalicsans 1D63A Ll\nzitalicsans 1D63B Ll\nAbolditalicsans 1D63C Lu\nBbolditalicsans 1D63D Lu\nCbolditalicsans 1D63E Lu\nDbolditalicsans 1D63F Lu\nEbolditalicsans 1D640 Lu\nFbolditalicsans 1D641 Lu\nGbolditalicsans 1D642 Lu\nHbolditalicsans 1D643 Lu\nIbolditalicsans 1D644 Lu\nJbolditalicsans 1D645 Lu\nKbolditalicsans 1D646 Lu\nLbolditalicsans 1D647 Lu\nMbolditalicsans 1D648 Lu\nNbolditalicsans 1D649 Lu\nObolditalicsans 1D64A Lu\nPbolditalicsans 1D64B Lu\nQbolditalicsans 1D64C Lu\nRbolditalicsans 1D64D Lu\nSbolditalicsans 1D64E Lu\nTbolditalicsans 1D64F Lu\nUbolditalicsans 1D650 Lu\nVbolditalicsans 1D651 Lu\nWbolditalicsans 1D652 Lu\nXbolditalicsans 1D653 Lu\nYbolditalicsans 1D654 Lu\nZbolditalicsans 1D655 Lu\nabolditalicsans 1D656 Ll\nbbolditalicsans 1D657 Ll\ncbolditalicsans 1D658 Ll\ndbolditalicsans 1D659 Ll\nebolditalicsans 1D65A Ll\nfbolditalicsans 1D65B Ll\ngbolditalicsans 1D65C Ll\nhbolditalicsans 1D65D Ll\nibolditalicsans 1D65E Ll\njbolditalicsans 1D65F Ll\nkbolditalicsans 1D660 Ll\nlbolditalicsans 1D661 Ll\nmbolditalicsans 1D662 Ll\nnbolditalicsans 1D663 Ll\nobolditalicsans 1D664 Ll\npbolditalicsans 1D665 Ll\nqbolditalicsans 1D666 Ll\nrbolditalicsans 1D667 Ll\nsbolditalicsans 1D668 Ll\ntbolditalicsans 1D669 Ll\nubolditalicsans 1D66A Ll\nvbolditalicsans 1D66B Ll\nwbolditalicsans 1D66C Ll\nxbolditalicsans 1D66D Ll\nybolditalicsans 1D66E Ll\nzbolditalicsans 1D66F Ll\nAmono 1D670 Lu\nBmono 1D671 Lu\nCmono 1D672 Lu\nDmono 1D673 Lu\nEmono 1D674 Lu\nFmono 1D675 Lu\nGmono 1D676 Lu\nHmono 1D677 Lu\nImono 1D678 Lu\nJmono 1D679 Lu\nKmono 1D67A Lu\nLmono 1D67B Lu\nMmono 1D67C Lu\nNmono 1D67D Lu\nOmono 1D67E Lu\nPmono 1D67F Lu\nQmono 1D680 Lu\nRmono 1D681 Lu\nSmono 1D682 Lu\nTmono 1D683 Lu\nUmono 1D684 Lu\nVmono 1D685 Lu\nWmono 1D686 Lu\nXmono 1D687 Lu\nYmono 1D688 Lu\nZmono 1D689 Lu\namono 1D68A Ll\nbmono 1D68B Ll\ncmono 1D68C Ll\ndmono 1D68D Ll\nemono 1D68E Ll\nfmono 1D68F Ll\ngmono 1D690 Ll\nhmono 1D691 Ll\nimono 1D692 Ll\njmono 1D693 Ll\nkmono 1D694 Ll\nlmono 1D695 Ll\nmmono 1D696 Ll\nnmono 1D697 Ll\nomono 1D698 Ll\npmono 1D699 Ll\nqmono 1D69A Ll\nrmono 1D69B Ll\nsmono 1D69C Ll\ntmono 1D69D Ll\numono 1D69E Ll\nvmono 1D69F Ll\nwmono 1D6A0 Ll\nxmono 1D6A1 Ll\nymono 1D6A2 Ll\nzmono 1D6A3 Ll\ndotlessiitalic 1D6A4 Ll\ndotlessjitalic 1D6A5 Ll\nAlphabold 1D6A8 Lu\nBetabold 1D6A9 Lu\nGammabold 1D6AA Lu\nDeltabold 1D6AB Lu\nEpsilonbold 1D6AC Lu\nZetabold 1D6AD Lu\nEtabold 1D6AE Lu\nThetabold 1D6AF Lu\nIotabold 1D6B0 Lu\nKappabold 1D6B1 Lu\nLamdabold 1D6B2 Lu\nMubold 1D6B3 Lu\nNubold 1D6B4 Lu\nXibold 1D6B5 Lu\nOmicronbold 1D6B6 Lu\nPibold 1D6B7 Lu\nRhobold 1D6B8 Lu\nThetasymbolbold 1D6B9 Lu\nSigmabold 1D6BA Lu\nTaubold 1D6BB Lu\nUpsilonbold 1D6BC Lu\nPhibold 1D6BD Lu\nChibold 1D6BE Lu\nPsibold 1D6BF Lu\nOmegabold 1D6C0 Lu\nboldnabla 1D6C1 Sm\nalphabold 1D6C2 Ll\nbetabold 1D6C3 Ll\ngammabold 1D6C4 Ll\ndeltabold 1D6C5 Ll\nepsilonbold 1D6C6 Ll\nzetabold 1D6C7 Ll\netabold 1D6C8 Ll\nthetabold 1D6C9 Ll\niotabold 1D6CA Ll\nkappabold 1D6CB Ll\nlamdabold 1D6CC Ll\nmubold 1D6CD Ll\nnubold 1D6CE Ll\nxibold 1D6CF Ll\nomicronbold 1D6D0 Ll\npibold 1D6D1 Ll\nrhobold 1D6D2 Ll\nfinalsigmabold 1D6D3 Ll\nsigmabold 1D6D4 Ll\ntaubold 1D6D5 Ll\nupsilonbold 1D6D6 Ll\nphibold 1D6D7 Ll\nchibold 1D6D8 Ll\npsibold 1D6D9 Ll\nomegabold 1D6DA Ll\nboldpartialdiff 1D6DB Sm\nepsilonsymbolbold 1D6DC Ll\nthetasymbolbold 1D6DD Ll\nkappasymbolbold 1D6DE Ll\nphisymbolbold 1D6DF Ll\nrhosymbolbold 1D6E0 Ll\npisymbolbold 1D6E1 Ll\nAlphaitalic 1D6E2 Lu\nBetaitalic 1D6E3 Lu\nGammaitalic 1D6E4 Lu\nDeltaitalic 1D6E5 Lu\nEpsilonitalic 1D6E6 Lu\nZetaitalic 1D6E7 Lu\nEtaitalic 1D6E8 Lu\nThetaitalic 1D6E9 Lu\nIotaitalic 1D6EA Lu\nKappaitalic 1D6EB Lu\nLamdaitalic 1D6EC Lu\nMuitalic 1D6ED Lu\nNuitalic 1D6EE Lu\nXiitalic 1D6EF Lu\nOmicronitalic 1D6F0 Lu\nPiitalic 1D6F1 Lu\nRhoitalic 1D6F2 Lu\nThetasymbolitalic 1D6F3 Lu\nSigmaitalic 1D6F4 Lu\nTauitalic 1D6F5 Lu\nUpsilonitalic 1D6F6 Lu\nPhiitalic 1D6F7 Lu\nChiitalic 1D6F8 Lu\nPsiitalic 1D6F9 Lu\nOmegaitalic 1D6FA Lu\nitalicnabla 1D6FB Sm\nalphaitalic 1D6FC Ll\nbetaitalic 1D6FD Ll\ngammaitalic 1D6FE Ll\ndeltaitalic 1D6FF Ll\nepsilonitalic 1D700 Ll\nzetaitalic 1D701 Ll\netaitalic 1D702 Ll\nthetaitalic 1D703 Ll\niotaitalic 1D704 Ll\nkappaitalic 1D705 Ll\nlamdaitalic 1D706 Ll\nmuitalic 1D707 Ll\nnuitalic 1D708 Ll\nxiitalic 1D709 Ll\nomicronitalic 1D70A Ll\npiitalic 1D70B Ll\nrhoitalic 1D70C Ll\nfinalsigmaitalic 1D70D Ll\nsigmaitalic 1D70E Ll\ntauitalic 1D70F Ll\nupsilonitalic 1D710 Ll\nphiitalic 1D711 Ll\nchiitalic 1D712 Ll\npsiitalic 1D713 Ll\nomegaitalic 1D714 Ll\nitalicpartialdiff 1D715 Sm\nepsilonsymbolitalic 1D716 Ll\nthetasymbolitalic 1D717 Ll\nkappasymbolitalic 1D718 Ll\nphisymbolitalic 1D719 Ll\nrhosymbolitalic 1D71A Ll\npisymbolitalic 1D71B Ll\nAlphabolditalic 1D71C Lu\nBetabolditalic 1D71D Lu\nGammabolditalic 1D71E Lu\nDeltabolditalic 1D71F Lu\nEpsilonbolditalic 1D720 Lu\nZetabolditalic 1D721 Lu\nEtabolditalic 1D722 Lu\nThetabolditalic 1D723 Lu\nIotabolditalic 1D724 Lu\nKappabolditalic 1D725 Lu\nLamdabolditalic 1D726 Lu\nMubolditalic 1D727 Lu\nNubolditalic 1D728 Lu\nXibolditalic 1D729 Lu\nOmicronbolditalic 1D72A Lu\nPibolditalic 1D72B Lu\nRhobolditalic 1D72C Lu\nThetasymbolbolditalic 1D72D Lu\nSigmabolditalic 1D72E Lu\nTaubolditalic 1D72F Lu\nUpsilonbolditalic 1D730 Lu\nPhibolditalic 1D731 Lu\nChibolditalic 1D732 Lu\nPsibolditalic 1D733 Lu\nOmegabolditalic 1D734 Lu\nbolditalicnabla 1D735 Sm\nalphabolditalic 1D736 Ll\nbetabolditalic 1D737 Ll\ngammabolditalic 1D738 Ll\ndeltabolditalic 1D739 Ll\nepsilonbolditalic 1D73A Ll\nzetabolditalic 1D73B Ll\netabolditalic 1D73C Ll\nthetabolditalic 1D73D Ll\niotabolditalic 1D73E Ll\nkappabolditalic 1D73F Ll\nlamdabolditalic 1D740 Ll\nmubolditalic 1D741 Ll\nnubolditalic 1D742 Ll\nxibolditalic 1D743 Ll\nomicronbolditalic 1D744 Ll\npibolditalic 1D745 Ll\nrhobolditalic 1D746 Ll\nfinalsigmabolditalic 1D747 Ll\nsigmabolditalic 1D748 Ll\ntaubolditalic 1D749 Ll\nupsilonbolditalic 1D74A Ll\nphibolditalic 1D74B Ll\nchibolditalic 1D74C Ll\npsibolditalic 1D74D Ll\nomegabolditalic 1D74E Ll\nbolditalicpartialdiff 1D74F Sm\nepsilonsymbolbolditalic 1D750 Ll\nthetasymbolbolditalic 1D751 Ll\nkappasymbolbolditalic 1D752 Ll\nphisymbolbolditalic 1D753 Ll\nrhosymbolbolditalic 1D754 Ll\npisymbolbolditalic 1D755 Ll\nAlphaboldsans 1D756 Lu\nBetaboldsans 1D757 Lu\nGammaboldsans 1D758 Lu\nDeltaboldsans 1D759 Lu\nEpsilonboldsans 1D75A Lu\nZetaboldsans 1D75B Lu\nEtaboldsans 1D75C Lu\nThetaboldsans 1D75D Lu\nIotaboldsans 1D75E Lu\nKappaboldsans 1D75F Lu\nLamdaboldsans 1D760 Lu\nMuboldsans 1D761 Lu\nNuboldsans 1D762 Lu\nXiboldsans 1D763 Lu\nOmicronboldsans 1D764 Lu\nPiboldsans 1D765 Lu\nRhoboldsans 1D766 Lu\nThetasymbolboldsans 1D767 Lu\nSigmaboldsans 1D768 Lu\nTauboldsans 1D769 Lu\nUpsilonboldsans 1D76A Lu\nPhiboldsans 1D76B Lu\nChiboldsans 1D76C Lu\nPsiboldsans 1D76D Lu\nOmegaboldsans 1D76E Lu\nboldsansnabla 1D76F Sm\nalphaboldsans 1D770 Ll\nbetaboldsans 1D771 Ll\ngammaboldsans 1D772 Ll\ndeltaboldsans 1D773 Ll\nepsilonboldsans 1D774 Ll\nzetaboldsans 1D775 Ll\netaboldsans 1D776 Ll\nthetaboldsans 1D777 Ll\niotaboldsans 1D778 Ll\nkappaboldsans 1D779 Ll\nlamdaboldsans 1D77A Ll\nmuboldsans 1D77B Ll\nnuboldsans 1D77C Ll\nxiboldsans 1D77D Ll\nomicronboldsans 1D77E Ll\npiboldsans 1D77F Ll\nrhoboldsans 1D780 Ll\nfinalsigmaboldsans 1D781 Ll\nsigmaboldsans 1D782 Ll\ntauboldsans 1D783 Ll\nupsilonboldsans 1D784 Ll\nphiboldsans 1D785 Ll\nchiboldsans 1D786 Ll\npsiboldsans 1D787 Ll\nomegaboldsans 1D788 Ll\nboldsanspartialdiff 1D789 Sm\nepsilonsymbolboldsans 1D78A Ll\nthetasymbolboldsans 1D78B Ll\nkappasymbolboldsans 1D78C Ll\nphisymbolboldsans 1D78D Ll\nrhosymbolboldsans 1D78E Ll\npisymbolboldsans 1D78F Ll\nAlphabolditalicsans 1D790 Lu\nBetabolditalicsans 1D791 Lu\nGammabolditalicsans 1D792 Lu\nDeltabolditalicsans 1D793 Lu\nEpsilonbolditalicsans 1D794 Lu\nZetabolditalicsans 1D795 Lu\nEtabolditalicsans 1D796 Lu\nThetabolditalicsans 1D797 Lu\nIotabolditalicsans 1D798 Lu\nKappabolditalicsans 1D799 Lu\nLamdabolditalicsans 1D79A Lu\nMubolditalicsans 1D79B Lu\nNubolditalicsans 1D79C Lu\nXibolditalicsans 1D79D Lu\nOmicronbolditalicsans 1D79E Lu\nPibolditalicsans 1D79F Lu\nRhobolditalicsans 1D7A0 Lu\nThetasymbolbolditalicsans 1D7A1 Lu\nSigmabolditalicsans 1D7A2 Lu\nTaubolditalicsans 1D7A3 Lu\nUpsilonbolditalicsans 1D7A4 Lu\nPhibolditalicsans 1D7A5 Lu\nChibolditalicsans 1D7A6 Lu\nPsibolditalicsans 1D7A7 Lu\nOmegabolditalicsans 1D7A8 Lu\nbolditalicsansnabla 1D7A9 Sm\nalphabolditalicsans 1D7AA Ll\nbetabolditalicsans 1D7AB Ll\ngammabolditalicsans 1D7AC Ll\ndeltabolditalicsans 1D7AD Ll\nepsilonbolditalicsans 1D7AE Ll\nzetabolditalicsans 1D7AF Ll\netabolditalicsans 1D7B0 Ll\nthetabolditalicsans 1D7B1 Ll\niotabolditalicsans 1D7B2 Ll\nkappabolditalicsans 1D7B3 Ll\nlamdabolditalicsans 1D7B4 Ll\nmubolditalicsans 1D7B5 Ll\nnubolditalicsans 1D7B6 Ll\nxibolditalicsans 1D7B7 Ll\nomicronbolditalicsans 1D7B8 Ll\npibolditalicsans 1D7B9 Ll\nrhobolditalicsans 1D7BA Ll\nfinalsigmabolditalicsans 1D7BB Ll\nsigmabolditalicsans 1D7BC Ll\ntaubolditalicsans 1D7BD Ll\nupsilonbolditalicsans 1D7BE Ll\nphibolditalicsans 1D7BF Ll\nchibolditalicsans 1D7C0 Ll\npsibolditalicsans 1D7C1 Ll\nomegabolditalicsans 1D7C2 Ll\nbolditalicsanspartialdiff 1D7C3 Sm\nepsilonsymbolbolditalicsans 1D7C4 Ll\nthetasymbolbolditalicsans 1D7C5 Ll\nkappasymbolbolditalicsans 1D7C6 Ll\nphisymbolbolditalicsans 1D7C7 Ll\nrhosymbolbolditalicsans 1D7C8 Ll\npisymbolbolditalicsans 1D7C9 Ll\nDigammabold 1D7CA Lu\ndigammabold 1D7CB Ll\nzerobold 1D7CE Nd\nonebold 1D7CF Nd\ntwobold 1D7D0 Nd\nthreebold 1D7D1 Nd\nfourbold 1D7D2 Nd\nfivebold 1D7D3 Nd\nsixbold 1D7D4 Nd\nsevenbold 1D7D5 Nd\neightbold 1D7D6 Nd\nninebold 1D7D7 Nd\nzerodblstruck 1D7D8 Nd\nonedblstruck 1D7D9 Nd\ntwodblstruck 1D7DA Nd\nthreedblstruck 1D7DB Nd\nfourdblstruck 1D7DC Nd\nfivedblstruck 1D7DD Nd\nsixdblstruck 1D7DE Nd\nsevendblstruck 1D7DF Nd\neightdblstruck 1D7E0 Nd\nninedblstruck 1D7E1 Nd\nzerosans 1D7E2 Nd\nonesans 1D7E3 Nd\ntwosans 1D7E4 Nd\nthreesans 1D7E5 Nd\nfoursans 1D7E6 Nd\nfivesans 1D7E7 Nd\nsixsans 1D7E8 Nd\nsevensans 1D7E9 Nd\neightsans 1D7EA Nd\nninesans 1D7EB Nd\nzeroboldsans 1D7EC Nd\noneboldsans 1D7ED Nd\ntwoboldsans 1D7EE Nd\nthreeboldsans 1D7EF Nd\nfourboldsans 1D7F0 Nd\nfiveboldsans 1D7F1 Nd\nsixboldsans 1D7F2 Nd\nsevenboldsans 1D7F3 Nd\neightboldsans 1D7F4 Nd\nnineboldsans 1D7F5 Nd\nzeromono 1D7F6 Nd\nonemono 1D7F7 Nd\ntwomono 1D7F8 Nd\nthreemono 1D7F9 Nd\nfourmono 1D7FA Nd\nfivemono 1D7FB Nd\nsixmono 1D7FC Nd\nsevenmono 1D7FD Nd\neightmono 1D7FE Nd\nninemono 1D7FF Nd\n# Domino Tiles\ndominohorizontalback 1F030 So\ndominohorizontal_00_00 1F031 So\ndominohorizontal_00_01 1F032 So\ndominohorizontal_00_02 1F033 So\ndominohorizontal_00_03 1F034 So\ndominohorizontal_00_04 1F035 So\ndominohorizontal_00_05 1F036 So\ndominohorizontal_00_06 1F037 So\ndominohorizontal_01_00 1F038 So\ndominohorizontal_01_01 1F039 So\ndominohorizontal_01_02 1F03A So\ndominohorizontal_01_03 1F03B So\ndominohorizontal_01_04 1F03C So\ndominohorizontal_01_05 1F03D So\ndominohorizontal_01_06 1F03E So\ndominohorizontal_02_00 1F03F So\ndominohorizontal_02_01 1F040 So\ndominohorizontal_02_02 1F041 So\ndominohorizontal_02_03 1F042 So\ndominohorizontal_02_04 1F043 So\ndominohorizontal_02_05 1F044 So\ndominohorizontal_02_06 1F045 So\ndominohorizontal_03_00 1F046 So\ndominohorizontal_03_01 1F047 So\ndominohorizontal_03_02 1F048 So\ndominohorizontal_03_03 1F049 So\ndominohorizontal_03_04 1F04A So\ndominohorizontal_03_05 1F04B So\ndominohorizontal_03_06 1F04C So\ndominohorizontal_04_00 1F04D So\ndominohorizontal_04_01 1F04E So\ndominohorizontal_04_02 1F04F So\ndominohorizontal_04_03 1F050 So\ndominohorizontal_04_04 1F051 So\ndominohorizontal_04_05 1F052 So\ndominohorizontal_04_06 1F053 So\ndominohorizontal_05_00 1F054 So\ndominohorizontal_05_01 1F055 So\ndominohorizontal_05_02 1F056 So\ndominohorizontal_05_03 1F057 So\ndominohorizontal_05_04 1F058 So\ndominohorizontal_05_05 1F059 So\ndominohorizontal_05_06 1F05A So\ndominohorizontal_06_00 1F05B So\ndominohorizontal_06_01 1F05C So\ndominohorizontal_06_02 1F05D So\ndominohorizontal_06_03 1F05E So\ndominohorizontal_06_04 1F05F So\ndominohorizontal_06_05 1F060 So\ndominohorizontal_06_06 1F061 So\ndominoverticalback 1F062 So\ndominovertical_00_00 1F063 So\ndominovertical_00_01 1F064 So\ndominovertical_00_02 1F065 So\ndominovertical_00_03 1F066 So\ndominovertical_00_04 1F067 So\ndominovertical_00_05 1F068 So\ndominovertical_00_06 1F069 So\ndominovertical_01_00 1F06A So\ndominovertical_01_01 1F06B So\ndominovertical_01_02 1F06C So\ndominovertical_01_03 1F06D So\ndominovertical_01_04 1F06E So\ndominovertical_01_05 1F06F So\ndominovertical_01_06 1F070 So\ndominovertical_02_00 1F071 So\ndominovertical_02_01 1F072 So\ndominovertical_02_02 1F073 So\ndominovertical_02_03 1F074 So\ndominovertical_02_04 1F075 So\ndominovertical_02_05 1F076 So\ndominovertical_02_06 1F077 So\ndominovertical_03_00 1F078 So\ndominovertical_03_01 1F079 So\ndominovertical_03_02 1F07A So\ndominovertical_03_03 1F07B So\ndominovertical_03_04 1F07C So\ndominovertical_03_05 1F07D So\ndominovertical_03_06 1F07E So\ndominovertical_04_00 1F07F So\ndominovertical_04_01 1F080 So\ndominovertical_04_02 1F081 So\ndominovertical_04_03 1F082 So\ndominovertical_04_04 1F083 So\ndominovertical_04_05 1F084 So\ndominovertical_04_06 1F085 So\ndominovertical_05_00 1F086 So\ndominovertical_05_01 1F087 So\ndominovertical_05_02 1F088 So\ndominovertical_05_03 1F089 So\ndominovertical_05_04 1F08A So\ndominovertical_05_05 1F08B So\ndominovertical_05_06 1F08C So\ndominovertical_06_00 1F08D So\ndominovertical_06_01 1F08E So\ndominovertical_06_02 1F08F So\ndominovertical_06_03 1F090 So\ndominovertical_06_04 1F091 So\ndominovertical_06_05 1F092 So\ndominovertical_06_06 1F093 So\n# Playing Cards\ncards:back 1F0A0 So\ncards:aceofspades 1F0A1 So\ncards:twoofspades 1F0A2 So\ncards:threeofspades 1F0A3 So\ncards:fourofspades 1F0A4 So\ncards:fiveofspades 1F0A5 So\ncards:sixofspades 1F0A6 So\ncards:sevenofspades 1F0A7 So\ncards:eightofspades 1F0A8 So\ncards:nineofspades 1F0A9 So\ncards:tenofspades 1F0AA So\ncards:jackofspades 1F0AB So\ncards:knightofspades 1F0AC So\ncards:queenofspades 1F0AD So\ncards:kingofspades 1F0AE So\ncards:aceofhearts 1F0B1 So\ncards:twoofhearts 1F0B2 So\ncards:threeofhearts 1F0B3 So\ncards:fourofhearts 1F0B4 So\ncards:fiveofhearts 1F0B5 So\ncards:sixofhearts 1F0B6 So\ncards:sevenofhearts 1F0B7 So\ncards:eightofhearts 1F0B8 So\ncards:nineofhearts 1F0B9 So\ncards:tenofhearts 1F0BA So\ncards:jackofhearts 1F0BB So\ncards:knightofhearts 1F0BC So\ncards:queenofhearts 1F0BD So\ncards:kingofhearts 1F0BE So\ncards:redjoker 1F0BF So\ncards:aceofdiamonds 1F0C1 So\ncards:twoofdiamonds 1F0C2 So\ncards:threeofdiamonds 1F0C3 So\ncards:fourofdiamonds 1F0C4 So\ncards:fiveofdiamonds 1F0C5 So\ncards:sixofdiamonds 1F0C6 So\ncards:sevenofdiamonds 1F0C7 So\ncards:eightofdiamonds 1F0C8 So\ncards:nineofdiamonds 1F0C9 So\ncards:tenofdiamonds 1F0CA So\ncards:jackofdiamonds 1F0CB So\ncards:knightofdiamonds 1F0CC So\ncards:queenofdiamonds 1F0CD So\ncards:kingofdiamonds 1F0CE So\ncards:blackjoker 1F0CF So\ncards:aceofclubs 1F0D1 So\ncards:twoofclubs 1F0D2 So\ncards:threeofclubs 1F0D3 So\ncards:fourofclubs 1F0D4 So\ncards:fiveofclubs 1F0D5 So\ncards:sixofclubs 1F0D6 So\ncards:sevenofclubs 1F0D7 So\ncards:eightofclubs 1F0D8 So\ncards:nineofclubs 1F0D9 So\ncards:tenofclubs 1F0DA So\ncards:jackofclubs 1F0DB So\ncards:knightofclubs 1F0DC So\ncards:queenofclubs 1F0DD So\ncards:kingofclubs 1F0DE So\ncards:whitejoker 1F0DF So\ncards:fool 1F0E0 So\ncards:trump1 1F0E1 So\ncards:trump2 1F0E2 So\ncards:trump3 1F0E3 So\ncards:trump4 1F0E4 So\ncards:trump5 1F0E5 So\ncards:trump6 1F0E6 So\ncards:trump7 1F0E7 So\ncards:trump8 1F0E8 So\ncards:trump9 1F0E9 So\ncards:trump10 1F0EA So\ncards:trump11 1F0EB So\ncards:trump12 1F0EC So\ncards:trump13 1F0ED So\ncards:trump14 1F0EE So\ncards:trump15 1F0EF So\ncards:trump16 1F0F0 So\ncards:trump17 1F0F1 So\ncards:trump18 1F0F2 So\ncards:trump19 1F0F3 So\ncards:trump20 1F0F4 So\ncards:trump21 1F0F5 So\n# Enclosed Alphanumeric Supplement\nzerofullstop 1F100 No\nzerocomma 1F101 No\nonecomma 1F102 No\ntwocomma 1F103 No\nthreecomma 1F104 No\nfourcomma 1F105 No\nfivecomma 1F106 No\nsixcomma 1F107 No\nsevencomma 1F108 No\neightcomma 1F109 No\nninecomma 1F10A No\ndingbatSAns-serifzerocircle 1F10B No\ndingbatSAns-serifzerocircleblack 1F10C No\nAparens 1F110 So\nBparens 1F111 So\nCparens 1F112 So\nDparens 1F113 So\nEparens 1F114 So\nFparens 1F115 So\nGparens 1F116 So\nHparens 1F117 So\nIparens 1F118 So\nJparens 1F119 So\nKparens 1F11A So\nLparens 1F11B So\nMparens 1F11C So\nNparens 1F11D So\nOparens 1F11E So\nPparens 1F11F So\nQparens 1F120 So\nRparens 1F121 So\nSparens 1F122 So\nTparens 1F123 So\nUparens 1F124 So\nVparens 1F125 So\nWparens 1F126 So\nXparens 1F127 So\nYparens 1F128 So\nZparens 1F129 So\nSshell 1F12A So\nCitaliccircle 1F12B So\nRitaliccircle 1F12C So\nCDcircle 1F12D So\nWZcircle 1F12E So\ncopyleftsymbol 1F12F So\nAsquare 1F130 So\nBsquare 1F131 So\nCsquare 1F132 So\nDsquare 1F133 So\nEsquare 1F134 So\nFsquare 1F135 So\nGsquare 1F136 So\nHsquare 1F137 So\nIsquare 1F138 So\nJsquare 1F139 So\nKsquare 1F13A So\nLsquare 1F13B So\nMsquare 1F13C So\nNsquare 1F13D So\nOsquare 1F13E So\nPsquare 1F13F So\nQsquare 1F140 So\nRsquare 1F141 So\nSsquare 1F142 So\nTsquare 1F143 So\nUsquare 1F144 So\nVsquare 1F145 So\nWsquare 1F146 So\nXsquare 1F147 So\nYsquare 1F148 So\nZsquare 1F149 So\nHVsquare 1F14A So\nMVsquare 1F14B So\nSDsquare 1F14C So\nSSsquare 1F14D So\nPPVsquare 1F14E So\nwcsquare 1F14F So\nAcircleblack 1F150 So\nBcircleblack 1F151 So\nCcircleblack 1F152 So\nDcircleblack 1F153 So\nEcircleblack 1F154 So\nFcircleblack 1F155 So\nGcircleblack 1F156 So\nHcircleblack 1F157 So\nIcircleblack 1F158 So\nJcircleblack 1F159 So\nKcircleblack 1F15A So\nLcircleblack 1F15B So\nMcircleblack 1F15C So\nNcircleblack 1F15D So\nOcircleblack 1F15E So\nPcircleblack 1F15F So\nQcircleblack 1F160 So\nRcircleblack 1F161 So\nScircleblack 1F162 So\nTcircleblack 1F163 So\nUcircleblack 1F164 So\nVcircleblack 1F165 So\nWcircleblack 1F166 So\nXcircleblack 1F167 So\nYcircleblack 1F168 So\nZcircleblack 1F169 So\nraisedmcsign 1F16A So\nraisedmdsign 1F16B So\nraisedmrsign 1F16C So\nAsquareblack 1F170 So\nBsquareblack 1F171 So\nCsquareblack 1F172 So\nDsquareblack 1F173 So\nEsquareblack 1F174 So\nFsquareblack 1F175 So\nGsquareblack 1F176 So\nHsquareblack 1F177 So\nIsquareblack 1F178 So\nJsquareblack 1F179 So\nKsquareblack 1F17A So\nLsquareblack 1F17B So\nMsquareblack 1F17C So\nNsquareblack 1F17D So\nOsquareblack 1F17E So\nPsquareblack 1F17F So\nQsquareblack 1F180 So\nRsquareblack 1F181 So\nSsquareblack 1F182 So\nTsquareblack 1F183 So\nUsquareblack 1F184 So\nVsquareblack 1F185 So\nWsquareblack 1F186 So\nXsquareblack 1F187 So\nYsquareblack 1F188 So\nZsquareblack 1F189 So\nPcrosssquareblack 1F18A So\nICsquareblack 1F18B So\nPAsquareblack 1F18C So\nSAsquareblack 1F18D So\nabsquareblack 1F18E So\nwcsquareblack 1F18F So\nsquaredj 1F190 So\nclsquare 1F191 So\ncoolsquare 1F192 So\nfreesquare 1F193 So\nidsquare 1F194 So\nnewsquare 1F195 So\nngsquare 1F196 So\noksquare 1F197 So\nsossquare 1F198 So\nupwithexclamationmarksquare 1F199 So\nvssquare 1F19A So\nthreedsquare 1F19B So\nsecondscreensquare 1F19C So\ntwoksquare 1F19D So\nfourksquare 1F19E So\neightksquare 1F19F So\nfivepointonesquare 1F1A0 So\nsevenpointonesquare 1F1A1 So\ntwenty-twopointtwosquare 1F1A2 So\nsixtypsquare 1F1A3 So\nonehundredtwentypsquare 1F1A4 So\ndsquare 1F1A5 So\nhcsquare 1F1A6 So\nhdrsquare 1F1A7 So\nhi-ressquare 1F1A8 So\nlosslesssquare 1F1A9 So\nshvsquare 1F1AA So\nuhdsquare 1F1AB So\nvodsquare 1F1AC So\nregionalindicatorsymbollettera 1F1E6 So\nregionalindicatorsymbolletterb 1F1E7 So\nregionalindicatorsymbolletterc 1F1E8 So\nregionalindicatorsymbolletterd 1F1E9 So\nregionalindicatorsymbollettere 1F1EA So\nregionalindicatorsymbolletterf 1F1EB So\nregionalindicatorsymbolletterg 1F1EC So\nregionalindicatorsymbolletterh 1F1ED So\nregionalindicatorsymbolletteri 1F1EE So\nregionalindicatorsymbolletterj 1F1EF So\nregionalindicatorsymbolletterk 1F1F0 So\nregionalindicatorsymbolletterl 1F1F1 So\nregionalindicatorsymbolletterm 1F1F2 So\nregionalindicatorsymbollettern 1F1F3 So\nregionalindicatorsymbollettero 1F1F4 So\nregionalindicatorsymbolletterp 1F1F5 So\nregionalindicatorsymbolletterq 1F1F6 So\nregionalindicatorsymbolletterr 1F1F7 So\nregionalindicatorsymbolletters 1F1F8 So\nregionalindicatorsymbollettert 1F1F9 So\nregionalindicatorsymbolletteru 1F1FA So\nregionalindicatorsymbolletterv 1F1FB So\nregionalindicatorsymbolletterw 1F1FC So\nregionalindicatorsymbolletterx 1F1FD So\nregionalindicatorsymbollettery 1F1FE So\nregionalindicatorsymbolletterz 1F1FF So\n# Miscellaneous Symbols and Pictographs\ncyclone 1F300 So\nfoggy 1F301 So\nclosedUmbrella 1F302 So\nnightStars 1F303 So\nsunriseOverMountains 1F304 So\nsunrise 1F305 So\ncityscapeAtDusk 1F306 So\nsunsetOverBuildings 1F307 So\nrainbow 1F308 So\nbridgeAtNight 1F309 So\nwaterWave 1F30A So\nvolcano 1F30B So\nmilkyWay 1F30C So\nearthGlobeEuropeAfrica 1F30D So\nearthGlobeAmericas 1F30E So\nearthGlobeAsiaAustralia 1F30F So\nglobeMeridians 1F310 So\nnewMoon 1F311 So\nwaxingCrescentMoon 1F312 So\nfirstQuarterMoon 1F313 So\nwaxingGibbousMoon 1F314 So\nfullMoon 1F315 So\nwaningGibbousMoon 1F316 So\nlastQuarterMoon 1F317 So\nwaningCrescentMoon 1F318 So\ncrescentMoon 1F319 So\nnewMoonFace 1F31A So\nfirstQuarterMoonFace 1F31B So\nlastQuarterMoonFace 1F31C So\nfullMoonFace 1F31D So\nsunFace 1F31E So\nglowingStar 1F31F So\nshootingStar 1F320 So\nthermometer 1F321 So\nblackDroplet 1F322 So\nwhiteSun 1F323 So\nwhiteSunSmallCloud 1F324 So\nwhiteSunBehindCloud 1F325 So\nwhiteSunBehindCloudRain 1F326 So\ncloudRain 1F327 So\ncloudSnow 1F328 So\ncloudLightning 1F329 So\ncloudTornado 1F32A So\nfog 1F32B So\nwindBlowingFace 1F32C So\nhotDog 1F32D So\ntaco 1F32E So\nburrito 1F32F So\nchestnut 1F330 So\nseedling 1F331 So\nevergreenTree 1F332 So\ndeciduousTree 1F333 So\npalmTree 1F334 So\ncactus 1F335 So\nhotPepper 1F336 So\ntulip 1F337 So\ncherryBlossom 1F338 So\nrose 1F339 So\nhibiscus 1F33A So\nsunflower 1F33B So\nblossom 1F33C So\nearOfMaize 1F33D So\nearOfRice 1F33E So\nherb 1F33F So\nfourLeafClover 1F340 So\nmapleLeaf 1F341 So\nfallenLeaf 1F342 So\nleafFlutteringInWind 1F343 So\nmushroom 1F344 So\ntomato 1F345 So\naubergine 1F346 So\ngrapes 1F347 So\nmelon 1F348 So\nwatermelon 1F349 So\ntangerine 1F34A So\nlemon 1F34B So\nbanana 1F34C So\npineapple 1F34D So\nredApple 1F34E So\ngreenApple 1F34F So\npear 1F350 So\npeach 1F351 So\ncherries 1F352 So\nstrawberry 1F353 So\nhamburger 1F354 So\nsliceOfPizza 1F355 So\nmeatOnBone 1F356 So\npoultryLeg 1F357 So\nriceCracker 1F358 So\nriceBall 1F359 So\ncookedRice 1F35A So\ncurryAndRice 1F35B So\nsteamingBowl 1F35C So\nspaghetti 1F35D So\nbread 1F35E So\nfrenchFries 1F35F So\nroastedSweetPotato 1F360 So\ndango 1F361 So\noden 1F362 So\nsushi 1F363 So\nfriedShrimp 1F364 So\nfishCakeSwirlDesign 1F365 So\nsoftIceCream 1F366 So\nshavedIce 1F367 So\niceCream 1F368 So\ndoughnut 1F369 So\ncookie 1F36A So\nchocolateBar 1F36B So\ncandy 1F36C So\nlollipop 1F36D So\ncustard 1F36E So\nhoneyPot 1F36F So\nshortcake 1F370 So\nbentoBox 1F371 So\npotOfFood 1F372 So\ncooking 1F373 So\nforkKnife 1F374 So\nteacupOutHandle 1F375 So\nsakeBottleAndCup 1F376 So\nwineGlass 1F377 So\ncocktailGlass 1F378 So\ntropicalDrink 1F379 So\nbeerMug 1F37A So\nclinkingBeerMugs 1F37B So\nbabyBottle 1F37C So\nforkKnifePlate 1F37D So\nbottlePoppingCork 1F37E So\npopcorn 1F37F So\nribbon 1F380 So\nwrappedPresent 1F381 So\nbirthdayCake 1F382 So\njackOLantern 1F383 So\nchristmasTree 1F384 So\nfatherChristmas 1F385 So\nfireworks 1F386 So\nfireworkSparkler 1F387 So\nballoon 1F388 So\npartyPopper 1F389 So\nconfettiBall 1F38A So\ntanabataTree 1F38B So\ncrossedFlags 1F38C So\npineDecoration 1F38D So\njapaneseDolls 1F38E So\ncarpStreamer 1F38F So\nwindChime 1F390 So\nmoonViewingCeremony 1F391 So\nschoolSatchel 1F392 So\ngraduationCap 1F393 So\nheartTipOnTheLeft 1F394 So\nbouquetOfFlowers 1F395 So\nmilitaryMedal 1F396 So\nreminderRibbon 1F397 So\nmusicalKeyboardJacks 1F398 So\nstudioMicrophone 1F399 So\nlevelSlider 1F39A So\ncontrolKnobs 1F39B So\nbeamedAscendingMusicalNotes 1F39C So\nbeamedDescendingMusicalNotes 1F39D So\nfilmFrames 1F39E So\nadmissionTickets 1F39F So\ncarouselHorse 1F3A0 So\nferrisWheel 1F3A1 So\nrollerCoaster 1F3A2 So\nfishingPoleAndFish 1F3A3 So\nmicrophone 1F3A4 So\nmovieCamera 1F3A5 So\ncinema 1F3A6 So\nheadphone 1F3A7 So\nartistPalette 1F3A8 So\ntopHat 1F3A9 So\ncircusTent 1F3AA So\nticket 1F3AB So\nclapperBoard 1F3AC So\nperformingArts 1F3AD So\nvideoGame 1F3AE So\ndirectHit 1F3AF So\nslotMachine 1F3B0 So\nbilliards 1F3B1 So\ngameDie 1F3B2 So\nbowling 1F3B3 So\nflowerPlayingCards 1F3B4 So\nmusicalNote 1F3B5 So\nmultipleMusicalNotes 1F3B6 So\nsaxophone 1F3B7 So\nguitar 1F3B8 So\nmusicalKeyboard 1F3B9 So\ntrumpet 1F3BA So\nviolin 1F3BB So\nmusicalScore 1F3BC So\nrunningShirtSash 1F3BD So\ntennisRacquetAndBall 1F3BE So\nskiAndSkiBoot 1F3BF So\nbasketballAndHoop 1F3C0 So\nchequeredFlag 1F3C1 So\nsnowboarder 1F3C2 So\nrunner 1F3C3 So\nsurfer 1F3C4 So\nsportsMedal 1F3C5 So\ntrophy 1F3C6 So\nhorseRacing 1F3C7 So\namericanFootball 1F3C8 So\nrugbyFootball 1F3C9 So\nswimmer 1F3CA So\nweightLifter 1F3CB So\ngolfer 1F3CC So\nracingMotorcycle 1F3CD So\nracingCar 1F3CE So\ncricketBatAndBall 1F3CF So\nvolleyball 1F3D0 So\nfieldHockeyStickAndBall 1F3D1 So\niceHockeyStickAndPuck 1F3D2 So\ntableTennisPaddleAndBall 1F3D3 So\nsnowcappedMountain 1F3D4 So\ncamping 1F3D5 So\nbeachUmbrella 1F3D6 So\nbuildingConstruction 1F3D7 So\nhouseBuildings 1F3D8 So\ncityscape 1F3D9 So\nderelictHouseBuilding 1F3DA So\nclassicalBuilding 1F3DB So\ndesert 1F3DC So\ndesertIsland 1F3DD So\nnationalPark 1F3DE So\nstadium 1F3DF So\nhouseBuilding 1F3E0 So\nhouseGarden 1F3E1 So\nofficeBuilding 1F3E2 So\njapanesePostOffice 1F3E3 So\neuropeanPostOffice 1F3E4 So\nhospital 1F3E5 So\nbank 1F3E6 So\nautomatedTellerMachine 1F3E7 So\nhotel 1F3E8 So\nloveHotel 1F3E9 So\nconvenienceStore 1F3EA So\nschool 1F3EB So\ndepartmentStore 1F3EC So\nfactory 1F3ED So\nizakayaLantern 1F3EE So\njapaneseCastle 1F3EF So\neuropeanCastle 1F3F0 So\nwhitePennant 1F3F1 So\nblackPennant 1F3F2 So\nwavingWhiteFlag 1F3F3 So\nwavingBlackFlag 1F3F4 So\nrosette 1F3F5 So\nblackRosette 1F3F6 So\nlabel 1F3F7 So\nbadmintonRacquetAndShuttlecock 1F3F8 So\nbowAndArrow 1F3F9 So\namphora 1F3FA So\nemojiModifierFitzpatrickType-1-2 1F3FB Sk\nemojiModifierFitzpatrickType-3 1F3FC Sk\nemojiModifierFitzpatrickType-4 1F3FD Sk\nemojiModifierFitzpatrickType-5 1F3FE Sk\nemojiModifierFitzpatrickType-6 1F3FF Sk\nrat 1F400 So\nmouse 1F401 So\nox 1F402 So\nwaterBuffalo 1F403 So\ncow 1F404 So\ntiger 1F405 So\nleopard 1F406 So\nrabbit 1F407 So\ncat 1F408 So\ndragon 1F409 So\ncrocodile 1F40A So\nwhale 1F40B So\nsnail 1F40C So\nsnake 1F40D So\nhorse 1F40E So\nram 1F40F So\ngoat 1F410 So\nsheep 1F411 So\nmonkey 1F412 So\nrooster 1F413 So\nchicken 1F414 So\ndog 1F415 So\npig 1F416 So\nboar 1F417 So\nelephant 1F418 So\noctopus 1F419 So\nspiralShell 1F41A So\nbug 1F41B So\nant 1F41C So\nhoneybee 1F41D So\nladyBeetle 1F41E So\nfish 1F41F So\ntropicalFish 1F420 So\nblowfish 1F421 So\nturtle 1F422 So\nhatchingChick 1F423 So\nbabyChick 1F424 So\nfront-facingBabyChick 1F425 So\nbird 1F426 So\npenguin 1F427 So\nkoala 1F428 So\npoodle 1F429 So\ndromedaryCamel 1F42A So\nbactrianCamel 1F42B So\ndolphin 1F42C So\nmouseFace 1F42D So\ncowFace 1F42E So\ntigerFace 1F42F So\nrabbitFace 1F430 So\ncatFace 1F431 So\ndragonFace 1F432 So\nspoutingWhale 1F433 So\nhorseFace 1F434 So\nmonkeyFace 1F435 So\ndogFace 1F436 So\npigFace 1F437 So\nfrogFace 1F438 So\nhamsterFace 1F439 So\nwolfFace 1F43A So\nbearFace 1F43B So\npandaFace 1F43C So\npigNose 1F43D So\npawPrints 1F43E So\nchipmunk 1F43F So\neyes 1F440 So\neye 1F441 So\near 1F442 So\nnose 1F443 So\nmouth 1F444 So\ntongue 1F445 So\nwhiteUpPointingBackhandIndex 1F446 So\nwhiteDownPointingBackhandIndex 1F447 So\nwhiteLeftPointingBackhandIndex 1F448 So\nwhiteRightPointingBackhandIndex 1F449 So\nfistedHandSign 1F44A So\nwavingHandSign 1F44B So\nokHandSign 1F44C So\nthumbsUpSign 1F44D So\nthumbsDownSign 1F44E So\nclappingHandsSign 1F44F So\nopenHandsSign 1F450 So\ncrown 1F451 So\nwomansHat 1F452 So\neyeglasses 1F453 So\nnecktie 1F454 So\nt-shirt 1F455 So\njeans 1F456 So\ndress 1F457 So\nkimono 1F458 So\nbikini 1F459 So\nwomansClothes 1F45A So\npurse 1F45B So\nhandbag 1F45C So\npouch 1F45D So\nmansShoe 1F45E So\nathleticShoe 1F45F So\nhigh-heeledShoe 1F460 So\nwomansSandal 1F461 So\nwomansBoots 1F462 So\nfootprints 1F463 So\nbustInSilhouette 1F464 So\nbustsInSilhouette 1F465 So\nboy 1F466 So\ngirl 1F467 So\nman 1F468 So\nwoman 1F469 So\nfamily 1F46A So\nmanAndWomanHoldingHands 1F46B So\ntwoMenHoldingHands 1F46C So\ntwoWomenHoldingHands 1F46D So\npoliceOfficer 1F46E So\nwomanBunnyEars 1F46F So\nbrideVeil 1F470 So\npersonBlondHair 1F471 So\nmanGuaPiMao 1F472 So\nmanTurban 1F473 So\nolderMan 1F474 So\nolderWoman 1F475 So\nmisc:baby 1F476 So\nconstructionWorker 1F477 So\nprincess 1F478 So\njapaneseOgre 1F479 So\njapaneseGoblin 1F47A So\nghost 1F47B So\nbabyAngel 1F47C So\nextraterrestrialAlien 1F47D So\nalienMonster 1F47E So\nimp 1F47F So\nskull 1F480 So\ninmationDeskPerson 1F481 So\nguardsman 1F482 So\ndancer 1F483 So\nlipstick 1F484 So\nnailPolish 1F485 So\nfaceMassage 1F486 So\nhaircut 1F487 So\nbarberPole 1F488 So\nsyringe 1F489 So\npill 1F48A So\nkissMark 1F48B So\nloveLetter 1F48C So\nmisc:ring 1F48D So\ngemStone 1F48E So\nkiss 1F48F So\nbouquet 1F490 So\ncoupleHeart 1F491 So\nwedding 1F492 So\nbeatingHeart 1F493 So\nbrokenHeart 1F494 So\ntwoHearts 1F495 So\nsparklingHeart 1F496 So\ngrowingHeart 1F497 So\nheartArrow 1F498 So\nblueHeart 1F499 So\ngreenHeart 1F49A So\nyellowHeart 1F49B So\npurpleHeart 1F49C So\nheartRibbon 1F49D So\nrevolvingHearts 1F49E So\nheartDecoration 1F49F So\ndiamondShapeADotInside 1F4A0 So\nelectricLightBulb 1F4A1 So\nanger 1F4A2 So\nbomb 1F4A3 So\nsleeping 1F4A4 So\ncollision 1F4A5 So\nsplashingSweat 1F4A6 So\ndroplet 1F4A7 So\nmisc:dash 1F4A8 So\npileOfPoo 1F4A9 So\nflexedBiceps 1F4AA So\ndizzy 1F4AB So\nspeechBalloon 1F4AC So\nthoughtBalloon 1F4AD So\nwhiteFlower 1F4AE So\nhundredPoints 1F4AF So\nmoneyBag 1F4B0 So\ncurrencyExchange 1F4B1 So\nheavyDollarSign 1F4B2 So\ncreditCard 1F4B3 So\nbanknoteYenSign 1F4B4 So\nbanknoteDollarSign 1F4B5 So\nbanknoteEuroSign 1F4B6 So\nbanknotePoundSign 1F4B7 So\nmoneyWings 1F4B8 So\nchartUpwardsTrendAndYenSign 1F4B9 So\nseat 1F4BA So\npersonalComputer 1F4BB So\nbriefcase 1F4BC So\nminidisc 1F4BD So\nfloppyDisk 1F4BE So\nopticalDisc 1F4BF So\ndvd 1F4C0 So\nfileFolder 1F4C1 So\nopenFileFolder 1F4C2 So\npageCurl 1F4C3 So\npageFacingUp 1F4C4 So\ncalendar 1F4C5 So\ntear-offCalendar 1F4C6 So\ncardIndex 1F4C7 So\nchartUpwardsTrend 1F4C8 So\nchartDownwardsTrend 1F4C9 So\nbarChart 1F4CA So\nclipboard 1F4CB So\npushpin 1F4CC So\nroundPushpin 1F4CD So\npaperclip 1F4CE So\nstraightRuler 1F4CF So\ntriangularRuler 1F4D0 So\nbookmarkTabs 1F4D1 So\nledger 1F4D2 So\nnotebook 1F4D3 So\nnotebookDecorativeCover 1F4D4 So\nclosedBook 1F4D5 So\nopenBook 1F4D6 So\ngreenBook 1F4D7 So\nblueBook 1F4D8 So\norangeBook 1F4D9 So\nbooks 1F4DA So\nnameBadge 1F4DB So\nscroll 1F4DC So\nmemo 1F4DD So\ntelephoneReceiver 1F4DE So\npager 1F4DF So\nfaxMachine 1F4E0 So\nsatelliteAntenna 1F4E1 So\npublicAddressLoudspeaker 1F4E2 So\ncheeringMegaphone 1F4E3 So\noutboxTray 1F4E4 So\ninboxTray 1F4E5 So\npackage 1F4E6 So\ne-mail 1F4E7 So\nincomingEnvelope 1F4E8 So\nenvelopeDownwardsArrowAbove 1F4E9 So\nclosedMailboxLoweredFlag 1F4EA So\nclosedMailboxRaisedFlag 1F4EB So\nopenMailboxRaisedFlag 1F4EC So\nopenMailboxLoweredFlag 1F4ED So\npostbox 1F4EE So\npostalHorn 1F4EF So\nnewspaper 1F4F0 So\nmobilePhone 1F4F1 So\nmobilePhoneRightwardsArrowAtLeft 1F4F2 So\nvibrationMode 1F4F3 So\nmobilePhoneOff 1F4F4 So\nnoMobilePhones 1F4F5 So\nantennaBars 1F4F6 So\ncamera 1F4F7 So\ncameraFlash 1F4F8 So\nvideoCamera 1F4F9 So\ntelevision 1F4FA So\nradio 1F4FB So\nvideocassette 1F4FC So\nfilmProjector 1F4FD So\nportableStereo 1F4FE So\nprayerBeads 1F4FF So\ntwistedRightwardsArrows 1F500 So\nclockwiseRightwardsAndLeftwardsOpenCircleArrows 1F501 So\nclockwiseRightwardsAndLeftwardsOpenCircleArrowsCircledOneOverlay 1F502 So\nclockwiseDownwardsAndUpwardsOpenCircleArrows 1F503 So\nanticlockwiseDownwardsAndUpwardsOpenCircleArrows 1F504 So\nlowBrightness 1F505 So\nhighBrightness 1F506 So\nspeakerCancellationStroke 1F507 So\nspeaker 1F508 So\nspeakerOneSoundWave 1F509 So\nspeakerThreeSoundWaves 1F50A So\nbattery 1F50B So\nelectricPlug 1F50C So\nleft-pointingMagnifyingGlass 1F50D So\nright-pointingMagnifyingGlass 1F50E So\nlockInkPen 1F50F So\nclosedLockKey 1F510 So\nkey 1F511 So\nlock 1F512 So\nopenLock 1F513 So\nmisc:bell 1F514 So\nbellCancellationStroke 1F515 So\nbookmark 1F516 So\nlink 1F517 So\nradioButton 1F518 So\nbackLeftwardsArrowAbove 1F519 So\nendLeftwardsArrowAbove 1F51A So\nonExclamationMarkLeftRightArrowAbove 1F51B So\nsoonRightwardsArrowAbove 1F51C So\ntopUpwardsArrowAbove 1F51D So\nnoOneUnderEighteen 1F51E So\nkeycapTen 1F51F So\ninputLatinCapitalLetters 1F520 So\ninputLatinSmallLetters 1F521 So\ninputNumbers 1F522 So\ninputS 1F523 So\ninputLatinLetters 1F524 So\nfire 1F525 So\nelectricTorch 1F526 So\nwrench 1F527 So\nhammer 1F528 So\nnutAndBolt 1F529 So\nhocho 1F52A So\npistol 1F52B So\nmicroscope 1F52C So\ntelescope 1F52D So\ncrystalBall 1F52E So\nsixPointedStarMiddleDot 1F52F So\njapaneseBeginner 1F530 So\ntridentEmblem 1F531 So\nblackSquareButton 1F532 So\nwhiteSquareButton 1F533 So\nlargeRedCircle 1F534 So\nlargeBlueCircle 1F535 So\nlargeOrangeDiamond 1F536 So\nlargeBlueDiamond 1F537 So\nsmallOrangeDiamond 1F538 So\nsmallBlueDiamond 1F539 So\nredTriangleUp 1F53A So\nredTriangleDOwn 1F53B So\nsmallRedTriangleUp 1F53C So\nsmallRedTriangleDOwn 1F53D So\nlowerRightShadowedWhiteCircle 1F53E So\nupperRightShadowedWhiteCircle 1F53F So\ncircledCrossPommee 1F540 So\ncrossPommeeHalf-circleBelow 1F541 So\ncrossPommee 1F542 So\nnotchedLeftSemicircleThreeDots 1F543 So\nnotchedRightSemicircleThreeDots 1F544 So\nmarksChapter 1F545 So\nwhiteLatinCross 1F546 So\nheavyLatinCross 1F547 So\ncelticCross 1F548 So\nom 1F549 So\ndoveOfPeace 1F54A So\nkaaba 1F54B So\nmosque 1F54C So\nsynagogue 1F54D So\nmenorahNineBranches 1F54E So\nbowlOfHygieia 1F54F So\nclockFaceOneOclock 1F550 So\nclockFaceTwoOclock 1F551 So\nclockFaceThreeOclock 1F552 So\nclockFaceFourOclock 1F553 So\nclockFaceFiveOclock 1F554 So\nclockFaceSixOclock 1F555 So\nclockFaceSevenOclock 1F556 So\nclockFaceEightOclock 1F557 So\nclockFaceNineOclock 1F558 So\nclockFaceTenOclock 1F559 So\nclockFaceElevenOclock 1F55A So\nclockFaceTwelveOclock 1F55B So\nclockFaceOne-thirty 1F55C So\nclockFaceTwo-thirty 1F55D So\nclockFaceThree-thirty 1F55E So\nclockFaceFour-thirty 1F55F So\nclockFaceFive-thirty 1F560 So\nclockFaceSix-thirty 1F561 So\nclockFaceSeven-thirty 1F562 So\nclockFaceEight-thirty 1F563 So\nclockFaceNine-thirty 1F564 So\nclockFaceTen-thirty 1F565 So\nclockFaceEleven-thirty 1F566 So\nclockFaceTwelve-thirty 1F567 So\nrightSpeaker 1F568 So\nrightSpeakerOneSoundWave 1F569 So\nrightSpeakerThreeSoundWaves 1F56A So\nbullhorn 1F56B So\nbullhornSoundWaves 1F56C So\nringingBell 1F56D So\nbook 1F56E So\ncandle 1F56F So\nmantelpieceClock 1F570 So\nblackSkullAndCrossbones 1F571 So\nnoPiracy 1F572 So\nhole 1F573 So\nmanInBusinessSuitLevitating 1F574 So\nsleuthOrSpy 1F575 So\ndarkSunglasses 1F576 So\nspider 1F577 So\nspiderWeb 1F578 So\njoystick 1F579 So\nmanDancing 1F57A So\nleftHandTelephoneReceiver 1F57B So\ntelephoneReceiverPage 1F57C So\nrightHandTelephoneReceiver 1F57D So\nwhiteTouchtoneTelephone 1F57E So\nblackTouchtoneTelephone 1F57F So\ntelephoneOnTopOfModem 1F580 So\nclamshellMobilePhone 1F581 So\nbackOfEnvelope 1F582 So\nstampedEnvelope 1F583 So\nenvelopeLightning 1F584 So\nflyingEnvelope 1F585 So\npenOverStampedEnvelope 1F586 So\nlinkedPaperclips 1F587 So\nblackPushpin 1F588 So\nlowerLeftPencil 1F589 So\nlowerLeftBallpointPen 1F58A So\nlowerLeftFountainPen 1F58B So\nlowerLeftPaintbrush 1F58C So\nlowerLeftCrayon 1F58D So\nleftWritingHand 1F58E So\nturnedOkHandSign 1F58F So\nraisedHandFingersSplayed 1F590 So\nreversedRaisedHandFingersSplayed 1F591 So\nreversedThumbsUpSign 1F592 So\nreversedThumbsDownSign 1F593 So\nreversedVictoryHand 1F594 So\nreversedHandMiddleFingerExtended 1F595 So\nraisedHandPartBetweenMiddleAndRingFingers 1F596 So\nwhiteDownPointingLeftHandIndex 1F597 So\nsidewaysWhiteLeftPointingIndex 1F598 So\nsidewaysWhiteRightPointingIndex 1F599 So\nsidewaysBlackLeftPointingIndex 1F59A So\nsidewaysBlackRightPointingIndex 1F59B So\nblackLeftPointingBackhandIndex 1F59C So\nblackRightPointingBackhandIndex 1F59D So\nsidewaysWhiteUpPointingIndex 1F59E So\nsidewaysWhiteDownPointingIndex 1F59F So\nsidewaysBlackUpPointingIndex 1F5A0 So\nsidewaysBlackDownPointingIndex 1F5A1 So\nblackUpPointingBackhandIndex 1F5A2 So\nblackDownPointingBackhandIndex 1F5A3 So\nblackHeart 1F5A4 So\ndesktopComputer 1F5A5 So\nkeyboardAndMouse 1F5A6 So\nthreeNetworkedComputers 1F5A7 So\nprinter 1F5A8 So\npocketCalculator 1F5A9 So\nblackHardShellFloppyDisk 1F5AA So\nwhiteHardShellFloppyDisk 1F5AB So\nsoftShellFloppyDisk 1F5AC So\ntapeCartridge 1F5AD So\nwiredKeyboard 1F5AE So\noneButtonMouse 1F5AF So\ntwoButtonMouse 1F5B0 So\nthreeButtonMouse 1F5B1 So\ntrackball 1F5B2 So\noldPersonalComputer 1F5B3 So\nhardDisk 1F5B4 So\nscreen 1F5B5 So\nprinterIcon 1F5B6 So\nfaxIcon 1F5B7 So\nopticalDiscIcon 1F5B8 So\ndocumentText 1F5B9 So\ndocumentTextAndPicture 1F5BA So\ndocumentPicture 1F5BB So\nframePicture 1F5BC So\nframeTiles 1F5BD So\nframeAnX 1F5BE So\nblackFolder 1F5BF So\nfolder 1F5C0 So\nopenFolder 1F5C1 So\ncardIndexDividers 1F5C2 So\ncardFileBox 1F5C3 So\nfileCabinet 1F5C4 So\nemptyNote 1F5C5 So\nemptyNotePage 1F5C6 So\nemptyNotePad 1F5C7 So\nnote 1F5C8 So\nnotePage 1F5C9 So\nnotePad 1F5CA So\nemptyDocument 1F5CB So\nemptyPage 1F5CC So\nemptyPages 1F5CD So\ndocument 1F5CE So\npage 1F5CF So\npages 1F5D0 So\nwastebasket 1F5D1 So\nspiralNotePad 1F5D2 So\nspiralCalendarPad 1F5D3 So\ndesktopWindow 1F5D4 So\nminimize 1F5D5 So\nmaximize 1F5D6 So\noverlap 1F5D7 So\nclockwiseRightAndLeftSemicircleArrows 1F5D8 So\ncancellationX 1F5D9 So\nincreaseFontSize 1F5DA So\ndecreaseFontSize 1F5DB So\ncompression 1F5DC So\noldKey 1F5DD So\nrolled-upNewspaper 1F5DE So\npageCircledText 1F5DF So\nstockChart 1F5E0 So\ndaggerKnife 1F5E1 So\nlips 1F5E2 So\nspeakingHeadInSilhouette 1F5E3 So\nthreeRaysAbove 1F5E4 So\nthreeRaysBelow 1F5E5 So\nthreeRaysLeft 1F5E6 So\nthreeRaysRight 1F5E7 So\nleftSpeechBubble 1F5E8 So\nrightSpeechBubble 1F5E9 So\ntwoSpeechBubbles 1F5EA So\nthreeSpeechBubbles 1F5EB So\nleftThoughtBubble 1F5EC So\nrightThoughtBubble 1F5ED So\nleftAngerBubble 1F5EE So\nrightAngerBubble 1F5EF So\nmoodBubble 1F5F0 So\nlightningMoodBubble 1F5F1 So\nlightningMood 1F5F2 So\nballotBoxBallot 1F5F3 So\nballotScriptX 1F5F4 So\nballotBoxScriptX 1F5F5 So\nballotBoldScriptX 1F5F6 So\nballotBoxBoldScriptX 1F5F7 So\nlightCheckMark 1F5F8 So\nballotBoxBoldCheck 1F5F9 So\nworldMap 1F5FA So\nmountFuji 1F5FB So\ntokyoTower 1F5FC So\nstatueOfLiberty 1F5FD So\nsilhouetteOfJapan 1F5FE So\nmoyai 1F5FF So\n# Emoticons\ngrinningFace 1F600 So\ngrinningFaceWithSmilingEyes 1F601 So\nfaceWithTearsOfJoy 1F602 So\nsmilingFaceWithOpenMouth 1F603 So\nsmilingFaceWithOpenMouthAndSmilingEyes 1F604 So\nsmilingFaceWithOpenMouthAndColdSweat 1F605 So\nsmilingFaceWithOpenMouthAndTightlyClosedEyes 1F606 So\nsmilingFaceWithHalo 1F607 So\nsmilingFaceWithHorns 1F608 So\nwinkingFace 1F609 So\nsmilingFaceWithSmilingEyes 1F60A So\nfaceSavouringDeliciousFood 1F60B So\nrelievedFace 1F60C So\nsmilingFaceWithHeartShapedEyes 1F60D So\nsmilingFaceWithSunglasses 1F60E So\nsmirkingFace 1F60F So\nneutralFace 1F610 So\nexpressionlessFace 1F611 So\nunamusedFace 1F612 So\nfaceWithColdSweat 1F613 So\npensiveFace 1F614 So\nconfusedFace 1F615 So\nconfoundedFace 1F616 So\nkissingFace 1F617 So\nfaceThrowingAKiss 1F618 So\nkissingFaceWithSmilingEyes 1F619 So\nkissingFaceWithClosedEyes 1F61A So\nfaceWithStuckOutTongue 1F61B So\nfaceWithStuckOutTongueAndWinkingEye 1F61C So\nfaceWithStuckOutTongueAndTightlyClosedEyes 1F61D So\ndisappointedFace 1F61E So\nworriedFace 1F61F So\nangryFace 1F620 So\npoutingFace 1F621 So\ncryingFace 1F622 So\nperseveringFace 1F623 So\nfaceWithLookOfTriumph 1F624 So\ndisappointedButRelievedFace 1F625 So\nfrowningFaceWithOpenMouth 1F626 So\nanguishedFace 1F627 So\nfearfulFace 1F628 So\nwearyFace 1F629 So\nsleepyFace 1F62A So\ntiredFace 1F62B So\ngrimacingFace 1F62C So\nloudlyCryingFace 1F62D So\nfaceWithOpenMouth 1F62E So\nhushedFace 1F62F So\nfaceWithOpenMouthAndColdSweat 1F630 So\nfaceScreamingInFear 1F631 So\nastonishedFace 1F632 So\nflushedFace 1F633 So\nsleepingFace 1F634 So\ndizzyFace 1F635 So\nfaceWithoutMouth 1F636 So\nfaceWithMedicalMask 1F637 So\ngrinningCatFaceWithSmilingEyes 1F638 So\ncatFaceWithTearsOfJoy 1F639 So\nsmilingCatFaceWithOpenMouth 1F63A So\nsmilingCatFaceWithHeartShapedEyes 1F63B So\ncatFaceWithWrySmile 1F63C So\nkissingCatFaceWithClosedEyes 1F63D So\npoutingCatFace 1F63E So\ncryingCatFace 1F63F So\nwearyCatFace 1F640 So\nslightlyFrowningFace 1F641 So\nslightlySmilingFace 1F642 So\nupsideDownFace 1F643 So\nfaceWithRollingEyes 1F644 So\nfaceWithNoGoodGesture 1F645 So\nfaceWithOkGesture 1F646 So\npersonBowingDeeply 1F647 So\nseeNoEvilMonkey 1F648 So\nhearNoEvilMonkey 1F649 So\nspeakNoEvilMonkey 1F64A So\nhappyPersonRaisingOneHand 1F64B So\npersonRaisingBothHandsInCelebration 1F64C So\npersonFrowning 1F64D So\npersonWithPoutingFace 1F64E So\npersonWithFoldedHands 1F64F So\n# Transport and Map Symbols\nrocket 1F680 So\nhelicopter 1F681 So\nsteamLocomotive 1F682 So\nrailwayCar 1F683 So\nhighSpeedTrain 1F684 So\nhighSpeedTrainWithBulletNose 1F685 So\ntrain 1F686 So\nmetro 1F687 So\nlightRail 1F688 So\nstation 1F689 So\ntram 1F68A So\ntramCar 1F68B So\nbus 1F68C So\noncomingBus 1F68D So\ntrolleybus 1F68E So\nbusStop 1F68F So\nminibus 1F690 So\nambulance 1F691 So\nfireEngine 1F692 So\npoliceCar 1F693 So\noncomingPoliceCar 1F694 So\ntaxi 1F695 So\noncomingTaxi 1F696 So\nautomobile 1F697 So\noncomingAutomobile 1F698 So\nrecreationalVehicle 1F699 So\ndeliveryTruck 1F69A So\narticulatedLorry 1F69B So\ntractor 1F69C So\nmonorail 1F69D So\nmountainRailway 1F69E So\nsuspensionRailway 1F69F So\nmountainCableway 1F6A0 So\naerialTramway 1F6A1 So\nship 1F6A2 So\nrowboat 1F6A3 So\nspeedboat 1F6A4 So\nhorizontalTrafficLight 1F6A5 So\nverticalTrafficLight 1F6A6 So\nconstructionSign 1F6A7 So\npoliceCarsRevolvingLight 1F6A8 So\ntriangularFlagOnPost 1F6A9 So\ndoor 1F6AA So\nnoEntrySign 1F6AB So\nsmoking 1F6AC So\nnoSmoking 1F6AD So\nputLitterInItsPlace 1F6AE So\ndoNotLitter 1F6AF So\npotableWater 1F6B0 So\nnonPotableWater 1F6B1 So\nbicycle 1F6B2 So\nnoBicycles 1F6B3 So\nbicyclist 1F6B4 So\nmountainBicyclist 1F6B5 So\npedestrian 1F6B6 So\nnoPedestrians 1F6B7 So\nchildrenCrossing 1F6B8 So\nmens 1F6B9 So\nwomens 1F6BA So\nrestroom 1F6BB So\ntrns:baby 1F6BC So\ntoilet 1F6BD So\nwaterCloset 1F6BE So\nshower 1F6BF So\nbath 1F6C0 So\nbathtub 1F6C1 So\npassportControl 1F6C2 So\ncustoms 1F6C3 So\nbaggageClaim 1F6C4 So\nleftLuggage 1F6C5 So\ntriangleWithRoundedCorners 1F6C6 So\nprohibitedSign 1F6C7 So\ncircledInformationSource 1F6C8 So\nboys 1F6C9 So\ngirls 1F6CA So\ncouchAndLamp 1F6CB So\nsleepingAccommodation 1F6CC So\nshoppingBags 1F6CD So\nbellhopBell 1F6CE So\nbed 1F6CF So\nplaceOfWorship 1F6D0 So\noctagonalSign 1F6D1 So\nshoppingTrolley 1F6D2 So\nstupa 1F6D3 So\npagoda 1F6D4 So\nhinduTemple 1F6D5 So\nhammerAndWrench 1F6E0 So\nshield 1F6E1 So\noilDrum 1F6E2 So\nmotorway 1F6E3 So\nrailwayTrack 1F6E4 So\nmotorBoat 1F6E5 So\nupPointingMilitaryAirplane 1F6E6 So\nupPointingAirplane 1F6E7 So\nupPointingSmallAirplane 1F6E8 So\nsmallAirplane 1F6E9 So\nnortheastPointingAirplane 1F6EA So\nairplaneDeparture 1F6EB So\nairplaneArriving 1F6EC So\nsatellite 1F6F0 So\noncomingFireEngine 1F6F1 So\ndieselLocomotive 1F6F2 So\npassengerShip 1F6F3 So\nscooter 1F6F4 So\nmotorScooter 1F6F5 So\ncanoe 1F6F6 So\nsled 1F6F7 So\nflyingSaucer 1F6F8 So\nskateboard 1F6F9 So\nautoRickshaw 1F6FA So"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/axidraw.py",
    "content": "from coldtype.pens.axidrawpen import AxiDrawPen\nfrom coldtype.runon.path import P\nfrom coldtype.renderable import renderable\nfrom coldtype.geometry import Rect, Point\nfrom time import sleep\n\ntry:\n    from pyaxidraw import axidraw\nexcept:\n    print(\"Couldn’t import pyaxidraw\")\n    print(\"https://axidraw.com/doc/py_api/#installation\")\n    print(\"pip install https://cdn.evilmadscientist.com/dl/ad/public/AxiDraw_API.zip\")\n\n\ndef aximeta(fn):\n    def _aximeta(pen:P):\n        pen.data(aximeta=dict(fn=fn))\n    return _aximeta\n\ndef dip_pen(seconds=1, location=(0, 0)):\n    return (P()\n        .ch(aximeta(lambda ad: ad\n            .moveto(*location)\n            .pendown()\n            .sleep(seconds)\n            .penup()\n            .moveto(0, 0))))\n\n\nclass AxidrawChainable():\n    def __init__(self, ad):\n        self.ad = ad\n    \n    def moveto(self, x, y):\n        self.ad.moveto(x, y)\n        return self\n    \n    def penup(self):\n        self.ad.penup()\n        return self\n    \n    def pendown(self):\n        self.ad.pendown()\n        return self\n    \n    def sleep(self, t):\n        sleep(t)\n        return self\n\n\nclass axidrawing(renderable):\n    def __init__(self,\n        vertical=False,\n        flatten=10,\n        **kwargs\n        ):\n        self.flatten = flatten\n        self.vertical = vertical\n        \n        if self.vertical:\n            super().__init__(rect=(850, 1100), **kwargs)\n        else:\n            super().__init__(rect=(1100, 850), **kwargs)\n    \n    def runpost(self, result, render_pass, renderer_state, config):\n        def normalize(p, pos, data):\n            if pos != 0:\n                return\n            \n            if self.flatten:\n                p.flatten(self.flatten, segmentLines=False)\n            \n            s = p.s()\n            if not s or (s and s.a == 0):\n                p.fssw(-1, 0, 3)\n            else:\n                p.fssw(-1, s, 3)\n        \n        res = (super()\n            .runpost(result, render_pass, renderer_state, config)\n            .walk(normalize))\n        return res\n    \n    def draw(self,\n        tag=None,\n        flatten=None,\n        frame=0,\n        test=False,\n        speed_pendown=100,\n        speed_penup=100,\n        pen_rate_raise=100,\n        pen_rate_lower=100,\n        pen_delay_down=0,\n        move_delay=0,\n        ):\n        def _draw(_):\n            ad = None\n\n            def walker(p:P, pos, _):\n                if pos == 0:\n                    ameta = p.data(\"aximeta\")\n                    if ameta:\n                        fn = ameta.get(\"fn\")\n                        if fn:\n                            fn(AxidrawChainable(ad))\n                        return\n\n                    p = p.cond(flatten,\n                        lambda p: p.flatten(\n                            flatten, segmentLines=False))\n                    ap = AxiDrawPen(p, Rect(0, 0, 1100, 850))\n                    ap.draw(ad=ad,\n                        move_delay=move_delay,\n                        zero=False)\n\n            res = self.frame_result(frame, post=True)\n            if self.vertical:\n                res = res.copy().rotate(90, point=Point(0, 0)).translate(1100, 0)\n            if tag is not None:\n                if isinstance(tag, int):\n                    res = res[tag].copy(with_data=True)\n                else:\n                    res = res.find_(tag).copy(with_data=True)\n            \n            if test:\n                print(\"-\"*30)\n                print(\"AXIDRAW TEST\")\n                print(\">\", res)\n                print(\"-\"*30)\n            else:\n                ad = axidraw.AxiDraw()\n                ad.interactive()\n                ad.options.units = 0\n                ad.options.speed_pendown = speed_pendown\n                ad.options.speed_penup = speed_penup\n                ad.options.pen_rate_raise = pen_rate_raise\n                ad.options.pen_rate_lower = pen_rate_lower\n                ad.options.pen_delay_down = pen_delay_down\n                ad.connect()\n                print(\"connected/\")\n                ad.penup()\n                ad.moveto(0,0)\n                try:\n                    res.walk(walker)\n                except Exception as e:\n                    print(\">>>\", e)\n                finally:\n                    ad.penup()\n                    ad.moveto(0,0)\n                    ad.disconnect()\n                    print(\"/disconnected\")\n        \n        return _draw"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/beziers.py",
    "content": "import math\nfrom re import sub\nfrom fontTools.pens.recordingPen import RecordingPen, replayRecording\nfrom fontTools.misc.bezierTools import calcCubicArcLength, splitCubicAtT, calcQuadraticArcLength, splitQuadraticAtT\nfrom coldtype.geometry import Rect, Point, Line\n\n\ndef raise_quadratic(start, a, b):\n    c0 = start\n    c1 = (c0[0] + (2/3)*(a[0] - c0[0]), c0[1] + (2/3)*(a[1] - c0[1]))\n    c2 = (b[0] + (2/3)*(a[0] - b[0]), b[1] + (2/3)*(a[1] - b[1]))\n    c3 = (b[0], b[1])\n    return [c1, c2, c3]\n\n__length_cache = {}\n__split_cache = {}\n\ndef splitCubicAtT_cached(a, b, c, d, t):\n    global __split_cache\n    abcdt = (a, b, c, d, t)\n    sc = __split_cache.get(abcdt)\n    if sc:\n        return sc\n    else:\n        s = splitCubicAtT(a, b, c, d, t)\n        __split_cache[abcdt] = s\n        return s\n\ndef splitQuadraticAtT_cached(a, b, c, t):\n    global __split_cache\n    abct = (a, b, c, t)\n    sc = __split_cache.get(abct)\n    if sc:\n        return sc\n    else:\n        s = splitQuadraticAtT(a, b, c, t)\n        __split_cache[abct] = s\n        return s\n\ndef calcCubicArcLength_cached(a, b, c, d):\n    #return calcCubicArcLength(a, b, c, d)\n    global __length_cache\n    abcd = (a, b, c, d)\n    lc = __length_cache.get(abcd)\n    if lc:\n        return lc\n    else:\n        l = calcCubicArcLength(a, b, c, d)\n        __length_cache[abcd] = l\n        return l\n\ndef calcQuadraticArcLength_cached(a, b, c):\n    global __length_cache\n    abc = (a, b, c)\n    lc = __length_cache.get(abc)\n    if lc:\n        return lc\n    else:\n        l = calcQuadraticArcLength(a, b, c)\n        __length_cache[abc] = l\n        return l\n\nclass CurveCutter():\n    def __init__(self, g, inc=0.0015):\n        self.pen = RecordingPen()\n        if hasattr(g, \"value\"):\n            self.pen = g.copy()\n        else:\n            g.replay(self.pen)\n        #g.draw(self.pen)\n        #self.pen.ensure_fully_closed_path()\n        self.inc = inc\n        self.length = self.calcCurveLength()\n    \n    def calcCurveLength(self):\n        length = 0\n        for i, (t, pts) in enumerate(self.pen.value):\n            if t == \"curveTo\":\n                p1, p2, p3 = pts\n                p0 = self.pen.value[i-1][-1][-1]\n                length += calcCubicArcLength_cached(p0, p1, p2, p3)\n            elif t == \"qCurveTo\":\n                p1, p2 = pts\n                p0 = self.pen.value[i-1][-1][-1]\n                length += calcQuadraticArcLength_cached(p0, p1, p2)\n            elif t == \"lineTo\":\n                p0 = self.pen.value[i-1][-1][-1]\n                p1, = pts\n                l = Line(p0, p1)\n                length += l.length()\n        return length\n\n    def subsegment(self, start=None, end=None):\n        global __cut_cache\n        inc = self.inc\n        length = self.length\n        ended = False\n        _length = 0\n        out = []\n        for i, (t, pts) in enumerate(self.pen.value):\n            if t == \"curveTo\":\n                p1, p2, p3 = pts\n                p0 = self.pen.value[i-1][-1][-1]\n                length_arc = calcCubicArcLength_cached(p0, p1, p2, p3)\n                if _length + length_arc < end:\n                    _length += length_arc\n                else:\n                    t = inc\n                    tries = 0\n                    while not ended:\n                        a, b = splitCubicAtT_cached(p0, p1, p2, p3, t)\n                        length_a = calcCubicArcLength_cached(*a)\n                        if _length + length_a > end:\n                            ended = True\n                            out.append((\"curveTo\", a[1:]))\n                        else:\n                            t += inc\n                            tries += 1\n            elif t == \"qCurveTo\":\n                p1, p2 = pts\n                p0 = self.pen.value[i-1][-1][-1]\n                length_arc = calcQuadraticArcLength_cached(p0, p1, p2)\n                if _length + length_arc < end:\n                    _length += length_arc\n                else:\n                    t = inc\n                    tries = 0\n                    while not ended:\n                        a, b = splitQuadraticAtT_cached(p0, p1, p2, t)\n                        length_a = calcQuadraticArcLength_cached(*a)\n                        if _length + length_a > end:\n                            ended = True\n                            out.append((\"qCurveTo\", a[1:]))\n                        else:\n                            t += inc\n                            tries += 1\n            elif t == \"lineTo\":\n                p0 = self.pen.value[i-1][-1][-1]\n                p1, = pts\n                l = Line(p0, p1)\n                length_line = l.length()\n                if ended:\n                    pass\n                elif _length + length_line < end:\n                    _length += length_line\n                else:\n                    res = l.tpx(end - _length)\n                    out.append((\"lineTo\", (res,)))\n                    ended = True\n            \n            if not ended:\n                out.append((t, pts))\n    \n        if out[-1][0] != \"endPath\":\n            out.append((\"endPath\",[]))\n        return out\n\n    def subsegmentPoint(self, start=0, end=1):\n        subsegment = self.subsegment(start=start, end=end)\n        try:\n            t, ps = subsegment[-2]\n            if t == \"lineTo\":\n                a = subsegment[-3][1][0]\n                b, = ps\n                tangent = math.degrees(math.atan2(b[1] - a[1], b[0] - a[0]) + math.pi*.5)\n                return Point(b), tangent\n            elif t == \"curveTo\":\n                t, (a, b, c) = subsegment[-2]\n                tangent = math.degrees(math.atan2(c[1] - b[1], c[0] - b[0]) + math.pi*.5)\n                return Point(c), tangent\n            elif t == \"qCurveTo\":\n                t, (a, b) = subsegment[-2]\n                tangent = math.degrees(math.atan2(b[1] - a[1], b[0] - a[0]) + math.pi*.5)\n                return Point(b), tangent\n        except ValueError as e:\n            print(e)\n            return None, None\n\n\nclass CurveSample():\n    def __init__(self, idx, pt, e, tan):\n        self.idx = idx\n        self.pt = pt\n        self.e = e\n        self.tan = tan\n    \n    def neighbors(self, prev, next):\n        self.prev = prev\n        self.next = next\n        #self.difft = ((next-prev) + 180) % 360 - 180"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/__init__.py",
    "content": "# to be loaded from within Blender\n\nfrom enum import Enum\nimport os, math, json, time\nfrom pathlib import Path\nfrom coldtype.geometry import curve\n\nfrom coldtype.geometry.rect import Rect\nfrom coldtype.runon.path import P\nfrom coldtype.pens.blenderpen import BlenderPen, BlenderPenCube, BPH\nfrom coldtype.color import hsl\n\nfrom coldtype.timing import Frame, Timeline, Timeable\nfrom coldtype.renderable import renderable, Overlay, Action, runnable\nfrom coldtype.renderable.animation import animation\n\nfrom coldtype.blender.render import blend_source\nfrom coldtype.timing.sequence import ClipTrack, Clip, Sequence\n\nfrom coldtype.blender.fluent import BpyWorld, BpyObj, BpyCollection, BpyGroup, BpyMaterial\n\nfrom typing import Callable\n\ntry:\n    import bpy # noqa\nexcept ImportError:\n    bpy = None\n    pass\n\n\nclass BlenderIO():\n    def __init__(self, file):\n        file = Path(str(file)).expanduser()\n        #file.parent.mkdir(exist_ok=True, parents=True)\n\n        self.blend_file = file\n        self.data_file = Path(str(file) + \".json\")\n    \n    def data(self):\n        if self.data_file.exists():\n            return json.loads(self.data_file.read_text())\n\n\nclass BlenderTimeline(Timeline):\n    def __init__(self, file, duration=None, fps=30, **kwargs):\n        if isinstance(file, BlenderIO):\n            file = file.data_file\n\n        self.file = file\n        if not self.file.exists():\n            self.file.parent.mkdir(parents=True, exist_ok=True)\n            self.file.write_text('{}')\n\n        try:        \n            data = json.loads(file.read_text())\n        except:\n            data = dict()\n\n        timeables = []\n        for track in data.get(\"tracks\", []):\n            for tidx, t in enumerate(track[\"clips\"]):\n                timeables.append(Timeable(\n                    t[\"start\"],\n                    t[\"end\"],\n                    name=t[\"text\"],\n                    index=tidx,\n                    track=track[\"index\"]))\n        \n        self.livepreview_disabled = bool(data.get(\"livepreview_disabled\", False))\n        self.workarea_set = bool(data.get(\"workarea_set\", 0))\n\n        self.workarea = range(\n            data.get(\"start\", 0),\n            data.get(\"end\", 30)+1)\n    \n        super().__init__(\n            fps=fps #data.get(\"fps\", 30)\n            , timeables=timeables\n            , start=0\n            , end=duration or data.get(\"end\")+1\n            , **kwargs)\n\n\ndef b3d(callback:Callable[[BlenderPen], BlenderPen],\n    collection=\"Coldtype\",\n    primitive=None,\n    dn=False,\n    cyclic=True,\n    material=None,\n    zero=False,\n    upright=False,\n    tag_prefix=None,\n    ):\n    if not bpy: # short-circuit if this is meaningless\n        return lambda x: x\n\n    pen_mod = None\n    if callback and not callable(callback):\n        pen_mod = callback[0]\n        callback = callback[1]\n\n    def annotate(pen:P):\n        if bpy and bpy.data and pen_mod:\n            pen_mod(pen)\n        \n        prev = pen.data(\"b3d\", {})\n        if prev:\n            callbacks = [*prev.get(\"callbacks\"), callback]\n        else:\n            callbacks = [callback]\n\n        #c = None\n        #if zero:\n        #    c = pen.ambit().pc\n        #    pen.translate(-c.x, -c.y)\n\n        pen.data(b3d=dict(\n            collection=(collection\n                or prev.get(\"collection\", \"Coldtype\")),\n            callbacks=callbacks,\n            material=(material\n                or prev.get(\"material\", \"ColdtypeDefault\")),\n            tag_prefix=(tag_prefix or prev.get(\"tag_prefix\")),\n            dn=dn,\n            cyclic=cyclic,\n            primitive=primitive,\n            zero=zero,\n            #reposition=c,\n            upright=upright))\n    \n    return annotate\n\n\ndef b3d_post(callback:Callable[[BlenderPen], BlenderPen]):\n    if not bpy: # short-circuit for non-bpy\n        return lambda x: x\n\n    def _b3d_post(pen:P):\n        prev = pen.data(\"b3d_post\")\n        if prev:\n            callbacks = [*prev, callback]\n        else:\n            callbacks = [callback]\n        pen.data(b3d_post=callbacks)\n    \n    return _b3d_post\n\n\ndef b3d_pre(callback:Callable[[P], P]):\n    def _cast(pen:P):\n        if bpy and bpy.data:\n            callback(pen)\n    return _cast\n\n\ndef walk_to_b3d(result:P,\n    dn=False,\n    renderable=None,\n    ):\n    built = {}\n\n    center = renderable.center\n    center_rect = renderable.rect\n\n    def walker(p:P, pos, data):\n        bp = None\n\n        if pos == 0:\n            bdata = p.data(\"b3d\")\n            if not bdata:\n                p.ch(b3d(lambda bp: bp.extrude(0.01)))\n                bdata = p.data(\"b3d\")\n            \n            zero = bdata.get(\"zero\", False)\n\n            if center and True:\n                cx = -center_rect.w/2*(1-center[0])\n                cy = -center_rect.h/2*(1-center[1])\n                p.translate(cx, cy)\n\n            pc = p.ambit().pc\n            if zero:\n                p.translate(-pc.x, -pc.y)\n            \n            if p.tag() is None:\n                tag = data[\"utag\"]\n                if bdata.get(\"tag_prefix\"):\n                    tag = bdata.get(\"tag_prefix\") + tag\n                else:\n                    tag = \"ct_autotag_\" + tag\n                p.tag(tag)\n\n            if bdata:\n                coll = BPH.Collection(bdata[\"collection\"])\n                material = bdata.get(\"material\", \"ColdtypeDefault\")\n\n                if len(p.v.value) == 0:\n                    p.hide()\n\n                denovo = bdata.get(\"dn\", dn)\n                cyclic = bdata.get(\"cyclic\", True)\n\n                primitive = bdata.get(\"primitive\")\n\n                if primitive is not None:\n                    _class = BlenderPen\n                    if primitive == \"cube\":\n                        _class = BlenderPenCube\n                    \n                    bp = p.cast(_class).draw(coll, primitive=primitive, material=material, dn=True)\n                else:\n                    bp = p.cast(BlenderPen).draw(coll, dn=denovo, material=material, cyclic=cyclic)\n                \n                bp.rotate(0)\n                \n                if bdata.get(\"callbacks\"):\n                    for cb in bdata.get(\"callbacks\"):\n                        cb(bp)\n\n                bp.hide(not p._visible)\n\n                # if center and False:\n                #     cx = -center_rect.w/2*(1-center[0])\n                #     cy = -center_rect.h/2*(1-center[1])\n                #     bp.locate_relative(cx/100, cy/100)\n\n                if renderable:\n                    if renderable.upright:\n                        bp.rotate(90)\n\n                if zero: #bdata.get(\"reposition\"):\n                    pt = pc #bdata.get(\"reposition\")\n                    if bdata.get(\"upright\"):\n                        bp.locate_relative(pt.x/100, 0, pt.y/100)\n                    else:\n                        bp.locate_relative(pt.x/100, pt.y/100)\n                \n                built[p.tag()] = (p, bp)\n\n        if pos == 0 or pos == 1:\n            b3d_post = p.data(\"b3d_post\")\n            if b3d_post:\n                for post in b3d_post:\n                    post(bp)\n                \n    result.walk(walker)\n\n\nclass B3DPlayback(Enum):\n    AlwaysStop = 0\n    AlwaysPlay = 1\n    KeepPlaying = 2\n\n\nclass b3d_runnable(runnable):\n    def __init__(self,\n        solo=False,\n        cond=None,\n        once=True,\n        delay=False,\n        playback:B3DPlayback=B3DPlayback.AlwaysStop,\n        force_refresh=False,\n        ):\n        self.once = once\n        self.delay = delay\n        self.playback = playback\n        self.force_refresh = force_refresh\n\n        if cond is not None:\n            super().__init__(solo=solo, cond=lambda: cond and bool(bpy) and bool(bpy.data))\n        else:\n            super().__init__(solo=solo, cond=lambda: bool(bpy) and bool(bpy.data))\n    \n    def run(self):\n        if not bpy:\n            return None\n        else:\n            return self.func(BpyWorld().deselect_all())\n\n\nclass b3d_renderable(renderable):\n    def __init__(self,\n        rect=(1080, 1080),\n        center=(0, 0),\n        upright=False,\n        post_run=None,\n        reset_to_zero=False,\n        force_refresh=False,\n        **kwargs\n        ):\n        self.center = center\n        self.upright = upright\n        self.post_run = post_run\n        self.blender_io:BlenderIO = None\n        self.reset_to_zero = reset_to_zero\n        self.force_refresh = force_refresh\n\n        super().__init__(rect, **kwargs)\n\n\nclass b3d_animation(animation):\n    def __init__(self,\n        rect=(1080, 1080),\n        samples=-1,\n        denoise=False,\n        match_length=True,\n        match_output=True,\n        match_fps=True,\n        bake=False,\n        center=(0, 0),\n        upright=False,\n        autosave=False,\n        renderer=\"b3d\",\n        force_refresh=False,\n        **kwargs\n        ):\n        self.func = None\n        self.name = None\n        self.current_frame = -1\n        \n        self.samples = samples\n        self.denoise = denoise\n        self.bake = bake\n        self.center = center\n        self.upright = upright\n        self.match_length = match_length\n        self.match_output = match_output\n        self.match_fps = match_fps\n        self.renderer = renderer\n        self.autosave = autosave\n        self.force_refresh = force_refresh\n\n        self._bt = False\n        self.blender_io:BlenderIO = None\n\n        if \"timeline\" not in kwargs:\n            kwargs[\"timeline\"] = Timeline(30)\n        \n        super().__init__(rect=rect, **kwargs)\n        \n        do_match_length = self.match_length\n\n        if bpy and bpy.data and do_match_length and bpy:\n            scene = bpy.data.scenes[0]\n            \n            if hasattr(self.timeline, \"workarea_set\") and self.timeline.workarea_set:\n                pass\n            else:\n                scene.frame_start = 0\n                scene.frame_end = self.t.duration-1\n        \n        if bpy and bpy.data and self.match_fps:\n            # don't think this is totally accurate but good enough for now\n            if isinstance(self.t.fps, float):\n                bpy.data.scenes[0].render.fps = round(self.t.fps)\n                bpy.data.scenes[0].render.fps_base = 1.001\n            else:\n                bpy.data.scenes[0].render.fps = self.t.fps\n                bpy.data.scenes[0].render.fps_base = 1\n        \n        if isinstance(self.timeline, BlenderTimeline):\n            self.add_watchee(self.timeline.file)\n    \n    def post_read(self):\n        out = super().post_read()\n        if bpy and bpy.data and self.match_output:\n            bpy.data.scenes[0].render.filepath = str(self.pass_path(index=None))\n        return out\n        \n    def running_in_viewer(self):\n        return not bpy or bpy.data\n    \n    def rasterize(self, config, content, rp):\n        if self.renderer == \"skia\":\n            return super().rasterize(config, content, rp)\n        \n        try:\n            from b3denv import get_vars\n            b3d_vars = get_vars(None)\n            blender_path = Path(b3d_vars[\"blender\"])\n        except:\n            raise Exception(\"NO BLENDER FOUND (via b3denv)\")\n        \n        fi = rp.args[0].i\n        blend_source(blender_path,\n            self.filepath,\n            self.blender_io.blend_file,\n            fi,\n            self.pass_path(index=None),\n            self.samples,\n            denoise=self.denoise)\n        return True\n    \n    def baked_frames(self):\n        def bakewalk(p, pos, data):\n            if pos == 0:\n                fi = data[\"idx\"][0]\n                (p.ch(b3d(callback=lambda bp: bp\n                        .show_on_frame(fi)\n                        .print(f\"Baking frame {fi}...\"),\n                    collection=f\"CTBakedAnimation_{self.name}\",\n                    dn=True,\n                    tag_prefix=f\"ct_baked_frame_{fi}_{self.name}__\")))\n        \n        to_bake = P()\n        for ps in self.passes(Action.RenderAll, None)[:]:\n            to_bake += self.run_normal(ps, None)\n        \n        return to_bake.walk(bakewalk)\n\n\nclass b3d_sequencer(b3d_animation):\n    def __init__(self,\n        rect=Rect(1080, 1080),\n        autosave=True,\n        in_blender=False,\n        match_output=False,\n        live_preview_scale=0.25,\n        timeline:BlenderTimeline=None,\n        **kwargs\n        ):\n        self.live_preview = not timeline.livepreview_disabled\n        self.live_preview_scale = live_preview_scale\n\n        super().__init__(\n            rect=rect,\n            timeline=timeline,\n            match_fps=True,\n            match_length=True,\n            match_output=match_output,\n            autosave=autosave,\n            renderer=\"b3d\" if in_blender else \"skia\",\n            **kwargs)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/fluent.py",
    "content": "import math, time, re\n\nfrom pathlib import Path\nfrom typing import Callable\nfrom contextlib import contextmanager\nfrom typing import List\n\nfrom coldtype.runon.path import P\nfrom coldtype.runon.runon import Runon\nfrom coldtype.timing.timeline import Timeline\nfrom coldtype.geometry import Rect\nfrom coldtype.color import Gradient, normalize_color, bw, Color\nfrom coldtype.renderable.animation import animation\n\ntry:\n    import bpy\n    from mathutils import Vector, Euler\nexcept ImportError:\n    bpy = None\n    pass\n\n\n# ensure_channelbag & get_fcurves are taken/modified from\n# https://blenderartists.org/t/how-to-access-fcurves-in-blender-5-0/1623022/6\n\ndef ensure_channelbag(data_block):\n    \"\"\"\n    Returns the channelbag of f-curves for a given ID, or `None` if the ID doesn't\n    have an animation data, an action, or a slot.\n    \"\"\"\n\n    if data_block.animation_data is None: return None\n\n    anim_data = data_block.animation_data\n    if anim_data.action is None: return None\n\n    action = anim_data.action\n    if action.is_empty: return None\n\n    if anim_data.action_slot is None: return None\n\n    try:\n        from bpy_extras.anim_utils import action_ensure_channelbag_for_slot\n        return action_ensure_channelbag_for_slot(action, anim_data.action_slot)\n    except ImportError:\n        #print(\"could not import action_ensure_channelbag_for_slot\")\n        pass\n\n\ndef get_fcurves(obj, matching: re.Pattern = None):\n    if not obj.animation_data:\n        return None\n\n    fcurves_out = []\n\n    # --- Keyframed FCurves (action) ---\n    if obj.animation_data.action:\n        if hasattr(obj.animation_data.action, 'fcurves'):\n            fcurves = obj.animation_data.action.fcurves\n        else:\n            channelbag = ensure_channelbag(obj)\n            if channelbag is not None:\n                fcurves = channelbag.fcurves\n            else:\n                fcurves = []\n\n        for fcurve in fcurves:\n            if matching is None or re.match(matching, fcurve.data_path):\n                fcurves_out.append(fcurve)\n\n    # --- Driver FCurves ---\n    for fcurve in obj.animation_data.drivers:\n        if matching is None or re.match(matching, fcurve.data_path):\n            fcurves_out.append(fcurve)\n\n    return fcurves_out if fcurves_out else None\n\n# TODO easy, chainable interface for\n# blender objects (could be a separate library)\n\ndef set_b3d_color(value, color):\n    color = normalize_color(color)\n    value[0] = color.r\n    value[1] = color.g\n    value[2] = color.b\n    value[3] = 1\n\nclass _Chainable():\n    def noop(self):\n        return self\n    \n    def op(self, fn):\n        fn(self)\n        return self\n    \n    def data(self, key=None, default=None, **kwargs):\n        if not hasattr(self, \"_data\"):\n            self._data = {}\n\n        if key is None and len(kwargs) > 0:\n            for k, v in kwargs.items():\n                self._data[k] = v\n            return self\n        elif key is not None:\n            return self._data.get(key, default)\n        else:\n            return self\n\nclass BpyWorld(_Chainable):\n    def __init__(self, scene=\"Scene\"):\n        try:\n            self.scene = bpy.data.scenes[scene]\n        except Exception as _:\n            self.scene = None\n    \n    def deselect_all(self):\n        active = bpy.context.view_layer.objects.active\n        if active and active.mode == \"EDIT\":\n            bpy.ops.object.mode_set(mode='OBJECT')\n\n        bpy.ops.object.select_all(action='DESELECT')\n        return self\n    \n    deselectAll = deselect_all\n    \n    def delete_previous(self, collection=\"Coldtype\", keep=[], materials=True, curves=True, meshes=True, objects=True, grease_pencils=True) -> \"BpyWorld\":\n        self.deselect_all()\n\n        BpyCollection.Find(collection, create=False).delete_hierarchy()\n        self.deleteOrphans(keep=keep, materials=materials, curves=curves, meshes=meshes, objects=objects, grease_pencils=grease_pencils)\n        return self\n    \n    deletePrevious = delete_previous\n\n    def deleteOrphans(self, keep=[], **kwargs):\n        from bpy import data as D\n        \n        props = [\"curves\", \"meshes\", \"materials\", \"objects\", \"grease_pencils\"]\n        for x in range(2):\n            for c in D.collections:\n                if (\"RigidBodyWorld\" in c.name or c.users == 0) and c.name not in keep:\n                    bpy.data.collections.remove(c)\n\n            for p in props:\n                if kwargs.get(p):\n                    for block in getattr(D, p):\n                        #print(\">>\", getattr(D, p))\n                        if block.users == 0 and block.name not in keep:\n                            getattr(D, p).remove(block)\n        \n        return self\n    \n    def timeline(self, t:Timeline, resetFrame=None, output=None, version=None):\n        self.scene.frame_start = 0\n        self.scene.frame_end = t.duration-1\n\n        if isinstance(t.fps, float):\n            self.scene.render.fps = round(t.fps)\n            self.scene.render.fps_base = 1.001\n        else:\n            self.scene.render.fps = t.fps\n            self.scene.render.fps_base = 1\n        \n        if resetFrame is not None:\n            self.scene.frame_set(resetFrame)\n        \n        if output:\n            output = Path(output)\n            if output.is_file():\n                folder = output.stem\n                if version:\n                    folder = f\"{output.stem}_{version}\"\n                \n                output = output.parent / \"renders\" / folder / f\"{folder}_\"\n            \n            self.scene.render.filepath = str(output)\n\n        return self\n    \n    def cycles(self, samples=16, denoiser=False, canvas:Rect=None, transparent=False):\n        self.scene.render.engine = \"CYCLES\"\n\n        if samples > 0:\n            self.scene.cycles.samples = samples\n        \n        if denoiser:\n            self.scene.cycles.denoiser = \"OPENIMAGEDENOISE\" if denoiser == True else denoiser\n            self.scene.cycles.use_denoising = True\n        else:\n            if denoiser is False:\n                self.scene.cycles.use_denoising = False\n        \n        if canvas is not None:\n            self.scene.render.resolution_x = round(canvas.w)\n            self.scene.render.resolution_y = round(canvas.h)\n        \n        if transparent:\n            self.scene.render.film_transparent = True\n\n        return self\n    \n    render_settings = cycles\n    renderSettings = render_settings\n    \n    #@contextmanager\n    def rigidbody(self, speed=1, frame_end=250):\n        try:\n            bpy.ops.rigidbody.world_remove()\n            #yield\n        except RuntimeError as e:\n            print(\"! Failed to reset rigidbody !\", e)\n            #yield\n        \n        if self.scene:\n            try:\n                bpy.ops.rigidbody.world_add()\n            except RuntimeError:\n                pass\n            rw = self.scene.rigidbody_world\n            if rw:\n                rw.time_scale = speed\n                rw.point_cache.frame_end = frame_end\n        \n        return self\n    \n    def insert_keyframe(self, frame, path, value=None):\n        bpy.data.scenes[0].frame_set(frame)\n        if value is not None:\n            if callable(value):\n                value(self)\n            else:\n                exec(f\"self.scene.{path} = {value}\")\n        self.scene.keyframe_insert(data_path=path)\n        return self\n        #setattr(self.obj, path, value)\n    \n    def background(self, color):\n        bg = bpy.data.worlds[\"World\"].node_tree.nodes[\"Background\"].inputs[0].default_value\n        set_b3d_color(bg, color)\n        return self\n\n\nclass BpyCollection(_Chainable):\n    @staticmethod\n    def Find(tag, create=True, parent=None):\n        if \"/\" in tag:\n            if tag.startswith(\"/\"):\n                parentTag = \"Coldtype\"\n                tag = tag[1:]\n            else:\n                parentTag, tag = tag.split(\"/\")\n            parent = BpyCollection.Find(parentTag, create=create)\n\n        bc = BpyCollection()\n        c = None\n\n        if tag not in bpy.data.collections:\n            if create:\n                c = bpy.data.collections.new(tag)\n                if parent:\n                    if isinstance(parent, BpyCollection):\n                        parent = parent.c\n                    parent.children.link(c)\n                else:\n                    bpy.context.scene.collection.children.link(c)\n        \n        c = bpy.data.collections.get(tag)\n        bc.c = c\n        return bc\n\n        # try:\n        #     bc.c = bpy.data.collections[tag]\n        # except KeyError:\n        #     if create:\n        #         print(\"CREATING\", tag)\n        #         bc.c = bpy.data.collections.new(tag)\n        #     else:\n        #         bc.c = None\n        # return bc\n\n    def delete_hierarchy(self):\n        if not self.c: return\n\n        bpy.context.view_layer.objects.active = None\n        for obj in self.c.objects:\n            try:\n                BpyObj.Find(obj.name).select()\n            except Exception as e:\n                print(\"deleteHierarchy failed to delete object:\", obj.name, e)\n        bpy.ops.object.delete()\n        bpy.data.collections.remove(self.c)\n        return None\n    \n    deleteHierarchy = delete_hierarchy\n\n\nclass BpyMaterial():\n    def __init__(self, material):\n        self.m = material\n    \n    def Find(tag, create=True, use_nodes=True):\n        if not isinstance(tag, str):\n            return BpyMaterial(tag)\n\n        try:\n            m = bpy.data.materials[tag]\n            return BpyMaterial(m)\n        except KeyError:\n            if create:\n                m = bpy.data.materials.new(tag)\n                m.use_nodes = use_nodes\n                return BpyMaterial(m)\n        \n        return None\n\n    def bsdf(self):\n        return self.m.node_tree.nodes[\"Principled BSDF\"]\n    \n    def setColorValue(self, value, color):\n        value[0] = color.r\n        value[1] = color.g\n        value[2] = color.b\n        value[3] = 1\n        if color.a != 1:\n            self.transmission(1)\n\n    def f(self, color):\n        if isinstance(color, Gradient):\n            return self.f(color.stops[0][0])\n        else:\n            color = normalize_color(color)\n\n        bsdf = self.bsdf()\n        if bsdf:\n            dv = bsdf.inputs[0].default_value\n            self.setColorValue(dv, color)\n        \n        return self\n    \n    fill = f\n    \n    def specular(self, amount=0.5):\n        self.bsdf().inputs[12].default_value = amount\n        return self\n    \n    def metallic(self, amount=1):\n        self.bsdf().inputs[1].default_value = amount\n        return self\n    \n    def roughness(self, amount=0.5):\n        self.bsdf().inputs[2].default_value = amount\n        return self\n    \n    def transmission(self, amount=1):\n        self.bsdf().inputs[17].default_value = amount\n        return self\n\n    def emission(self, color, strength=1):\n        self.setColorValue(self.bsdf().inputs[19].default_value, normalize_color(color))\n        self.bsdf().inputs[20].default_value = strength\n        return self\n    \n    def animation(self, anim:animation, start=0):\n        src = anim.pass_path(start)\n        tl = anim.timeline\n        return self.image(src, timeline=tl)\n    \n    def image(self, src=None, opacity=1, rect=None, pattern=True, alpha=True, timeline:Timeline=None, emission=None, render=False) -> \"BpyObj\":\n        from coldtype.renderable import renderable, animation\n\n        if isinstance(src, animation):\n            timeline = src.timeline\n            src = src.render_and_rasterize() if render else src.pass_path(0)\n        elif isinstance(src, renderable):\n            src = src.render_and_rasterize() if render else src.pass_path(0)\n        \n        src = Path(src)\n        bsdf = self.bsdf()\n        \n        if \"Image Texture\" in self.m.node_tree.nodes:\n            tex = self.m.node_tree.nodes[\"Image Texture\"]\n        else:\n            tex = self.m.node_tree.nodes.new(\"ShaderNodeTexImage\")\n            self.m.node_tree.links.new(bsdf.inputs[\"Base Color\"], tex.outputs[\"Color\"])\n            if alpha:\n                self.m.node_tree.links.new(bsdf.inputs[\"Alpha\"], tex.outputs[\"Alpha\"])\n            if emission:\n                self.m.node_tree.links.new(bsdf.inputs[\"Emission\"], tex.outputs[\"Color\"])\n                bsdf.inputs[20].default_value = emission\n            \n            bx, by = bsdf.location\n            tex.location = (bx - 320, by)\n        \n        found = None\n\n        for img in bpy.data.images:\n            if src.name in img.name or img.name == src.name:\n                found = img\n                img.reload()\n\n        if found is None:\n            print(\"NOT FOUND\", src.name)\n            print(\"exists?\", src.exists())\n\n            found = bpy.data.images.load(str(src))\n        \n        tex.image = found\n        \n        if timeline is not None:\n            tex.image.source = \"SEQUENCE\"\n            tex.image_user.frame_duration = timeline.duration\n            tex.image_user.frame_start = 0\n            tex.image_user.frame_offset = -1\n            tex.image_user.use_cyclic = True\n            tex.image_user.use_auto_refresh = True\n\n        tex.interpolation = \"Closest\"\n        tex.interpolation = \"Linear\"\n\n        return self\n    \n    def color_ramp(self, colors:List[Color]):\n        ramp = self.m.node_tree.nodes.new(\"ShaderNodeValToRGB\")\n        cr = ramp.color_ramp\n\n        for idx, color in enumerate(colors):\n            if idx == 0:\n                cr.elements[0].color = color.rgba()\n            elif idx == idx == (len(colors) - 1):\n                cr.elements[-1].color = color.rgba()\n            else:\n                cr.elements.new(idx/(len(colors)-1))\n                cr.elements[idx].color = color.rgba()\n\n        bsdf = self.bsdf()\n        self.m.node_tree.links.new(bsdf.inputs[\"Base Color\"], ramp.outputs[\"Color\"])\n        return self\n    \n    def math(self, attrs={}, inputs=[]):\n        m = self.m.node_tree.nodes.new(\"ShaderNodeMath\")\n        for k, v in attrs.items():\n            setattr(m, k, v)\n        for k, v in inputs.items():\n            m.inputs[k].default_value = v\n        return self\n    \n    def object_info(self):\n        _ = self.m.node_tree.nodes.new(\"ShaderNodeObjectInfo\")\n        return self\n    \n    def connect(self, output, input):\n        nt = self.m.node_tree\n        self.m.node_tree.links.new(\n            nt.nodes[input[0]].inputs[input[1]],\n            nt.nodes[output[0]].outputs[output[1]])\n        return self\n    \n    def arrange(self):\n        for idx, node in enumerate(reversed(self.m.node_tree.nodes)):\n            node.location.x = -300 + idx * 200\n        return self\n\n\nclass BpyGroup(Runon):\n    def yields_wrapped(self):\n        return False\n\n    def map(self, fn:Callable[[\"BpyObj\"], \"BpyObj\"]):\n        return super().map(fn)\n    \n    def deselect(self):\n        return self.map(lambda bp: bp.select(False))\n    \n    @staticmethod\n    def Curves(pens:P, prefix=None, collection=None, cyclic=True, fill=True, tx=0, ty=0):\n        curves = BpyGroup()\n        curves.prefix = prefix\n\n        def walker(p:P, pos, data):\n            if pos == 0:\n                name = None\n                if prefix:\n                    name = prefix + \"_\" + \".\".join([str(s) for s in data[\"idx\"]])\n                curves.append(BpyObj.Curve(name=name, collection=collection).draw(p, cyclic=cyclic, fill=fill, tx=tx, ty=ty))\n        \n        pens.walk(walker)\n        return curves\n    \n    def copy(self, new_prefix):\n        new_curves = BpyGroup()\n        new_curves.prefix = new_prefix\n\n        for bp in self:\n            new_curves.append(bp.copy(self.prefix, new_prefix))\n        return new_curves\n\n\nclass BpyObj(_Chainable):\n    def __init__(self, obj=None) -> None:\n        if obj:\n            self.obj = obj\n        self.eo = None\n\n    @staticmethod\n    def Find(tag):\n        bobj = BpyObj()\n        \n        if isinstance(tag, BpyObj):\n            bobj.obj = tag.obj\n        elif isinstance(tag, bpy.types.Object):\n            bobj.obj = tag\n        else:\n            try:\n                bobj.obj = bpy.data.objects[tag]\n            except KeyError:\n                bobj.obj = None\n        \n        return bobj\n    \n    @staticmethod\n    def Norm(obj_or_tag):\n        if isinstance(obj_or_tag, BpyObj):\n            return obj_or_tag\n        else:\n            return BpyObj.Find(obj_or_tag)\n    \n    @staticmethod\n    def Primitive(name=None, collection=\"Coldtype\", created_obj=None) -> \"BpyObj\":\n        if collection is None:\n            collection = \"Coldtype\"\n        \n        if collection == \"Global\":\n            collection = None\n\n        if created_obj:\n            created = created_obj\n        else:\n            created = bpy.context.object\n\n        bobj = BpyObj()\n        bobj.obj = created\n        \n        if collection:\n            bobj.collect(collection)\n        created.select_set(False)\n        if name is not None:\n            bobj.obj.name = name\n        return bobj\n    \n    @staticmethod\n    def Empty(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.object.empty_add(type=\"PLAIN_AXES\")\n        return BpyObj.Primitive(name, collection)\n\n    @staticmethod\n    def Cube(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_cube_add()\n        return BpyObj.Primitive(name, collection)\n    \n    @staticmethod\n    def Circle(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_circle_add()\n        return BpyObj.Primitive(name, collection)\n\n    @staticmethod\n    def Plane(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_plane_add()\n        return BpyObj.Primitive(name, collection)\n    \n    @staticmethod\n    def Curve(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.curve.primitive_bezier_curve_add()\n        bo = BpyObj.Primitive(name, collection)\n        return bo\n    \n    @staticmethod\n    def Cylinder(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_cylinder_add()\n        return BpyObj.Primitive(name, collection)\n    \n    @staticmethod\n    def UVSphere(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_uv_sphere_add()\n        return BpyObj.Primitive(name, collection)\n    \n    @staticmethod\n    def Monkey(name=None, collection=None) -> \"BpyObj\":\n        bpy.ops.mesh.primitive_monkey_add()\n        return BpyObj.Primitive(name, collection)\n    \n    @staticmethod\n    def GPencil(name, p:P=None, stroke=bw(0, 0.5), fill=None, collection=None):\n        gpencil_data = bpy.data.grease_pencils.new(name)\n        gpencil = bpy.data.objects.new(gpencil_data.name, gpencil_data)\n        gp = BpyObj.Primitive(name, collection, created_obj=gpencil)\n\n        gp_layer = gp.obj.data.layers.new(\"lines\")\n        gp_frame = gp_layer.frames.new(bpy.context.scene.frame_current)\n\n        gp_stroke = gp_frame.strokes.new()\n        gp_stroke.line_width = 8\n        gp_stroke.start_cap_mode = 'ROUND'\n        gp_stroke.end_cap_mode = 'ROUND'\n        gp_stroke.use_cyclic = True\n\n        if p is not None:\n            pts = p.point_list()\n\n            gp_stroke.points.add(len(pts))\n\n            for idx, pt in enumerate(pts):\n                gp_stroke.points[idx].co = (pt.x, pt.y, 0)\n                gp_stroke.points[idx].pressure = 4\n            \n            mat = bpy.data.materials.new(name=f\"{gp.obj.name}_Material\")\n            bpy.data.materials.create_gpencil_data(mat)\n            gp.obj.data.materials.append(mat)\n            mat.grease_pencil.show_fill = fill is not None\n            if fill is not None:\n                mat.grease_pencil.fill_color = fill.rgba()\n            mat.grease_pencil.color = stroke.rgba() if stroke else None\n\n        return gp\n    \n    def find_children(self):\n        children = []\n        for o in bpy.data.objects:\n            if o.parent == self.obj:\n                children.append(o)\n        return sorted(children, key=lambda c: c.name)\n\n    def delete_recursively(self):\n        for c in self.find_children():\n            bpy.data.objects.remove(c, do_unlink=True)\n        bpy.data.objects.remove(self.obj, do_unlink=True)\n        return None\n    \n    def collect(self, collectionTag, create=True, unlink=True, parent=None):\n        bc = BpyCollection.Find(collectionTag, create=create, parent=parent)\n        bc.c.objects.link(self.obj)\n        if unlink:\n            for c in self.obj.users_collection:\n                if c != bc.c:\n                    c.objects.unlink(self.obj)\n        return self\n    \n    def copy(self, old_prefix=None, new_prefix=None):\n        new_obj = None\n        with self.obj_selected():\n            bpy.ops.object.duplicate(linked=False)\n            copied = bpy.context.object\n            if old_prefix is not None and new_prefix is not None:\n                copied.name = self.obj.name.replace(old_prefix, new_prefix)\n            new_obj = BpyObj(copied).select(False)\n        return new_obj\n\n    \n    def select(self, selected=True, set_active=False, clear_active=False):\n        if selected:\n            if set_active:\n                if clear_active:\n                    bpy.context.view_layer.objects.active = None\n                bpy.context.view_layer.objects.active = self.obj\n            self.obj.select_set(True)\n        else:\n            self.obj.select_set(False)\n            if set_active:\n                bpy.context.view_layer.objects.active = None\n        return self\n    \n    @contextmanager\n    def obj_selected(self, yield_self=False, exit=True):\n        if not self.obj:\n            if yield_self:\n                yield None\n            else:\n                yield\n            return self\n        \n        bpy.context.view_layer.objects.active = None\n        bpy.context.view_layer.objects.active = self.obj\n        self.obj.select_set(True)\n        if yield_self:\n            yield self\n        else:\n            yield\n        \n        if exit:\n            self.obj.select_set(False)\n            bpy.context.view_layer.objects.active = None\n        return self\n    \n    objSelected = obj_selected\n    \n    @contextmanager\n    def obj_selection_sequence(self, other_tag):\n        other = BpyObj.Norm(other_tag)\n        \n        if not self.obj or not other.obj:\n            yield None\n            return\n\n        bpy.context.view_layer.objects.active = None\n        self.obj.select_set(True)\n        other.obj.select_set(True)\n        bpy.context.view_layer.objects.active = other.obj\n        yield other\n        bpy.ops.object.parent_set(type=\"OBJECT\")\n        \n        try:\n            self.obj.select_set(False)\n        except ReferenceError:\n            pass\n        try:\n            other.obj.select_set(False)\n        except ReferenceError:\n            pass\n        bpy.context.view_layer.objects.active = None\n        return self\n    \n    objSelectionSequence = obj_selection_sequence\n    \n    @contextmanager\n    def all_vertices_selected(self):\n        with self.obj_selected():\n            bpy.ops.object.mode_set(mode='EDIT')\n            bpy.ops.mesh.select_mode(type='VERT')\n            bpy.ops.mesh.select_all(action='SELECT')\n            yield\n            bpy.ops.mesh.select_all(action='DESELECT')\n            bpy.ops.object.mode_set(mode='OBJECT')\n        return self\n    \n    allVerticesSelected = all_vertices_selected\n    \n    @contextmanager\n    def select_vertices(self, selector, keep_selected=False):\n        with self.obj_selected():\n            bpy.ops.object.mode_set(mode='EDIT')\n            bpy.ops.mesh.select_mode(type='VERT')\n            bpy.ops.mesh.select_all(action='DESELECT')\n            bpy.ops.object.mode_set(mode='OBJECT')\n            for idx, v in enumerate(self.obj.data.vertices):\n                if selector(v):\n                    v.select = True\n                else:\n                    pass\n            bpy.ops.object.mode_set(mode='EDIT')\n            yield\n            if not keep_selected:\n                bpy.ops.mesh.select_all(action='DESELECT')\n                bpy.ops.object.mode_set(mode='OBJECT')\n        return self\n    \n    selectVertices = select_vertices\n    \n    def make_vertex_group(self, selector, name=None):\n        with self.select_vertices(selector):\n            bpy.ops.object.vertex_group_add()\n            bpy.ops.object.vertex_group_assign()\n            if name:\n                self.obj.vertex_groups[-1].name = name\n        return self\n    \n    makeVertexGroup = make_vertex_group\n    \n    def select_and_delete(self, select_mode, selector):\n        with self.select_vertices(selector):\n            bpy.ops.mesh.select_mode(type=select_mode)\n            bpy.ops.mesh.delete(type=select_mode)\n        return self\n    \n    selectAndDelete = select_and_delete\n\n    def separate_by_loose_parts(self) -> BpyGroup:\n        with self.all_vertices_selected():\n            bpy.ops.mesh.separate(type=\"LOOSE\")\n        \n        bg = BpyGroup()\n        bg.append(self)\n\n        for obj in bpy.context.selected_objects:\n            bg.append(BpyObj(obj))\n        \n        bg.deselect()\n        return bg\n    \n    def parent(self, parent_tag, hide=False):\n        with self.obj_selection_sequence(parent_tag) as o:\n            bpy.ops.object.parent_set(type=\"OBJECT\")\n        if hide:\n            with o.obj_selected():\n                o.hide()\n        return self\n    \n    def constrain_child_of(self\n        , target:\"BpyObj\"\n        , location=dict(x=1, y=1, z=1)\n        , rotation=dict(x=0, y=0, z=0)\n        , scale=dict(x=1, y=1, z=1)\n        , influence=1\n        , clear=True\n        ):\n        if clear:\n            for c in self.obj.constraints:\n                self.obj.constraints.remove(c)\n            \n            self.ops_object(\"constraint_add\", type=\"CHILD_OF\")\n            constraint = self.obj.constraints[0]\n            constraint.target = target.obj\n            \n            for k, v in location.items():\n                setattr(constraint, f\"use_location_{k}\", bool(v))\n\n            for k, v in rotation.items():\n                setattr(constraint, f\"use_rotation_{k}\", bool(v))\n            \n            for k, v in scale.items():\n                setattr(constraint, f\"use_scale_{k}\", bool(v))\n\n        constraint.influence = influence\n        return self\n    \n    def hide(self, hide=True):\n        self.obj.hide_viewport = hide\n        self.obj.hide_render = hide\n        return self\n    \n    def delete(self):\n        if not self.obj: return None\n        \n        bpy.context.view_layer.objects.active = None\n        bpy.context.view_layer.objects.active = self.obj\n        self.obj.select_set(True)\n        bpy.ops.object.delete()\n        return None\n    \n    def set_prop(self, prop, value):\n        setattr(self.obj, prop, value)\n        return self\n    \n    def set_data(self, prop, value):\n        setattr(self.obj.data, prop, value)\n        return self\n    \n    def set_props(self, pairs):\n        for prop, value in pairs:\n            self.set_prop(prop, value)\n        return self\n    \n    def calls(self, fn): # TODO call signature, but requires fake-bpy-module at top level, is that even possible?\n        fn(self.obj)\n        return self\n    \n    def set_frame(self, frame, scene=None):\n        if scene is None:\n            scene = bpy.data.scenes[0]\n        scene.frame_set(frame)\n        return self\n    \n    def insert_keyframe(self, frame, path, value=None, scene=None):\n        self.set_frame(frame, scene)\n        \n        if value is not None:\n            if callable(value):\n                value(self)\n            else:\n                exec(f\"self.obj.{path} = {value}\")\n        self.obj.keyframe_insert(data_path=path)\n        return self\n    \n    def insert_keyframes(self, path, *settings):\n        for frame, value in settings:\n            self.insert_keyframe(frame, path, value)\n        \n        self.set_frame(settings[0][0])\n        return self\n    \n    def modify_keyframes(self, selector, action):\n        fcurves = get_fcurves(self.obj, r\".*\")\n        for fc in fcurves:\n            matches = False\n            if callable(selector) and selector(fc.data_path):\n                matches = True\n            elif selector == fc.data_path:\n                matches = True\n            \n            if matches:\n                action(fc)\n    \n    def make_keyframes_linear(self, selector):\n        def make_linear(fc):\n            fc.extrapolation = 'LINEAR'\n            for kp in fc.keyframe_points:\n                kp.handle_left_type  = 'VECTOR'\n                kp.handle_right_type = 'VECTOR'\n                kp.handle_left = kp.co\n                kp.handle_right = kp.co\n        \n        self.modify_keyframes(selector, make_linear)\n        return self\n    \n    def set_visibility_at_frame(self, frame, visibility, scene=None):\n        if scene is None:\n            scene = bpy.data.scenes[0]\n        scene.frame_set(frame)\n        self.hide(not visibility)\n        self.obj.keyframe_insert(data_path=\"hide_render\")\n        self.obj.keyframe_insert(data_path=\"hide_viewport\")\n        return self\n    \n    def show_on_frame(self, frame):\n        self.set_visibility_at_frame(0, False)\n        self.set_visibility_at_frame(frame, True)\n        self.set_visibility_at_frame(frame+1, False)\n        return self\n    \n    def show_at_frame(self, frame):\n        self.set_visibility_at_frame(0, False)\n        self.set_visibility_at_frame(frame-1, False)\n        self.set_visibility_at_frame(frame, True)\n        return self\n    \n    # Manipulation Methods\n\n    def vertex_group_all(self):\n        with self.all_vertices_selected():\n            bpy.ops.object.vertex_group_add()\n            bpy.ops.object.vertex_group_assign()\n        return self\n    \n    vertexGroupAll = vertex_group_all\n\n    def add_empty_origin(self, collection=\"Coldtype\"):\n        bpy.ops.object.empty_add(type=\"PLAIN_AXES\")\n        bc = bpy.context.object\n        bc.name = self.obj.name + \"_EmptyOrigin\"\n        self.eo = bc\n        BpyObj.Find(bc.name).collect(collection)\n        return self\n    \n    addEmptyOrigin = add_empty_origin\n\n    # Geometry Methods\n    \n    def apply_transform(self,\n        location=True,\n        rotation=True,\n        scale=True,\n        properties=True\n        ):\n        with self.obj_selected():\n            bpy.ops.object.transform_apply(\n                location=location,\n                rotation=rotation,\n                scale=scale,\n                properties=properties)\n        return self\n    \n    applyTransform = apply_transform\n\n    def apply_scale(self):\n        return self.applyTransform(location=False, rotation=False, scale=True, properties=False)\n    \n    applyScale = apply_scale\n\n    def apply_modifier(self, name):\n        with self.obj_selected():        \n            #bpy.ops.object.modifier_set_active(modifier=name)\n            bpy.ops.object.modifier_apply(modifier=name)\n            self.obj.to_mesh(preserve_all_data_layers=True)\n        return self\n    \n    applyModifier = apply_modifier\n\n    def applyAllModifiers(self):\n        with self.obj_selected():\n            for mod in self.obj.modifiers:\n                bpy.ops.object.modifier_apply(modifier=mod.name)\n                self.obj.to_mesh(preserve_all_data_layers=True)\n        return self\n\n#region Basic transformations\n\n    def rotate(self, x=None, y=None, z=None):\n        if isinstance(x, Euler):\n            self.obj.rotation_euler = x\n            return self\n        \n        if x is not None:\n            self.obj.rotation_euler[0] = math.radians(x)\n        if y is not None:\n            self.obj.rotation_euler[1] = math.radians(y)\n        if z is not None:\n            self.obj.rotation_euler[2] = math.radians(z)\n        return self\n    \n    def with_temp_origin(self, origin, fn):\n        self.set_origin(*origin)\n        fn(self)\n        self.origin_to_geometry()\n        return self\n    \n    def origin_to_geometry(self):\n        with self.obj_selected():\n            bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')\n        return self\n    \n    originToGeometry = origin_to_geometry\n    \n    def origin_to_cursor(self):\n        with self.obj_selected():\n            bpy.ops.object.origin_set(type='ORIGIN_CURSOR')\n        return self\n    \n    originToCursor = origin_to_cursor\n    \n    def set_origin(self, x, y, z):\n        #saved_location = bpy.context.scene.cursor.location\n        bpy.context.scene.cursor.location = Vector((x, y, z))\n        with self.obj_selected():\n            bpy.ops.object.origin_set(type='ORIGIN_CURSOR')\n        bpy.context.scene.cursor.location = Vector((0, 0, 0))\n        return self\n    \n    setOrigin = set_origin\n    \n    def locate(self, x=None, y=None, z=None) -> \"BpyObj\":\n        if isinstance(x, Vector):\n            self.obj.location = x\n            return self\n        \n        if x is not None:\n            self.obj.location[0] = x\n        if y is not None:\n            self.obj.location[1] = y\n        if z is not None:\n            self.obj.location[2] = z\n        return self\n    \n    def locate_relative(self, x=None, y=None, z=None):\n        if x is not None:\n            self.obj.location[0] = self.obj.location[0] + x\n        if y is not None:\n            self.obj.location[1] = self.obj.location[1] + y\n        if z is not None:\n            self.obj.location[2] = self.obj.location[2] + z\n        \n        if self.eo:\n            (BpyObj.Find(self.eo.name)\n                .locate_relative(x=x, y=y, z=z))\n        return self\n    \n    locateRelative = locate_relative\n\n    def scale(self, x=None, y=None, z=None) -> \"BpyObj\":\n        if x is not None:\n            self.obj.scale[0] = x\n        if y is not None:\n            self.obj.scale[1] = y\n        if z is not None:\n            self.obj.scale[2] = z\n        return self\n    \n    def dimension(self, x=None, y=None, z=None) -> \"BpyObj\":\n        if x is not None:\n            self.obj.dimensions[0] = x\n        if y is not None:\n            self.obj.dimensions[1] = y\n        if z is not None:\n            self.obj.dimensions[2] = z\n        return self\n    \n    def dimensions(self, x=None, y=None, z=None) -> \"BpyObj\":\n        for k, d in dict(x=x, y=y, z=z).items():\n            if d is not None:\n                self.dimension(**{k:d})\n                self.applyScale()\n        return self\n\n#endregion Basic transformations\n\n#region Materials\n\n    def material(self, tag, modFn:Callable[[BpyMaterial], BpyMaterial]=None, clear=True):\n        if clear:\n            self.obj.data.materials.clear()\n\n        bm = BpyMaterial.Find(tag, create=True, use_nodes=True)\n\n        if bm.m.name not in self.obj.data.materials:\n            self.obj.data.materials.append(bm.m)\n        \n        if bm and modFn:\n            modFn(bm)\n\n        return self\n\n#endregion Materials\n\n#region Convenience Methods\n\n    def rigidbody(self,\n        mode=\"active\",\n        animated=False,\n        mesh=False,\n        bounce=0,\n        mass=1,\n        bake=0,\n        deactivated=False,\n        friction=0.5,\n        linear_damping=0.04,\n        angular_damping=0.1\n        ):\n        if not self.obj: return self\n        \n        with self.obj_selected():\n            o = self.obj\n            bpy.ops.rigidbody.object_add()\n            if mesh:\n                o.rigid_body.collision_shape = \"MESH\"\n            o.rigid_body.type = mode.upper()\n            o.rigid_body.kinematic = animated\n            o.rigid_body.restitution = bounce\n            o.rigid_body.mass = mass\n            o.rigid_body.friction = friction\n            o.rigid_body.linear_damping = linear_damping\n            o.rigid_body.angular_damping = angular_damping\n            if deactivated:\n                o.rigid_body.use_deactivation = True\n                o.rigid_body.use_start_deactivated = True\n            if bake:\n                bpy.ops.rigidbody.bake_to_keyframes()\n        \n        return self\n    \n#endregion Convenience Methods\n    \n#region Modifiers\n\n    #@contextmanager\n    def modifier(self, name, cb=None, apply=True, **kwargs):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=name.upper())\n            m = self.obj.modifiers[name]\n            for k, v in kwargs.items():\n                setattr(m, k, v)\n            if cb:\n                cb(m)\n        if apply:\n            self.apply_modifier(name)\n        return self\n    \n    def solidify(self, thickness=1):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"SOLIDIFY\")\n            m = self.obj.modifiers[\"Solidify\"]\n            m.thickness = thickness\n        return self\n    \n    def convert_to_mesh(self):\n        with self.obj_selected():\n            bpy.ops.object.convert(target=\"MESH\")\n        return self\n    \n    convertToMesh = convert_to_mesh\n    \n    def remesh(self, octree_depth=7, smooth=False, apply=False):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"REMESH\")\n            m = self.obj.modifiers[\"Remesh\"]\n            m.mode = \"SHARP\"\n            m.octree_depth = octree_depth\n            m.use_remove_disconnected = False\n            m.use_smooth_shade = smooth\n        \n        if apply:\n            self.apply_modifier(\"Remesh\")\n        return self\n    \n    def array(self, count=2, relative=(1, 0, 0), constant=(0.1, 0, 0)):\n        if any(v is None for v in relative): relative = None\n        if any(v is None for v in constant): constant = None\n\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type='ARRAY')\n            m = self.obj.modifiers[-1]\n            m.count = count\n            \n            if relative:\n                m.use_relative_offset = True\n                m.relative_offset_displace[0] = relative[0]\n                m.relative_offset_displace[1] = relative[1]\n                m.relative_offset_displace[2] = relative[2]\n            else:\n                m.use_relative_offset = False\n\n            if constant:\n                m.use_constant_offset = True\n                m.constant_offset_displace[0] = constant[0]\n                m.constant_offset_displace[1] = constant[1]\n                m.constant_offset_displace[2] = constant[2]\n            else:\n                m.use_constant_offset = False\n        return self\n    \n    def arrayX(self, count=2, relative=1, constant=0):\n        return self.array(count=count, relative=(relative, 0, 0), constant=(constant, 0, 0))\n    \n    def arrayY(self, count=2, relative=-1, constant=0):\n        return self.array(count=count, relative=(0, relative, 0), constant=(0, constant, 0))\n    \n    def arrayZ(self, count=2, relative=-1, constant=0):\n        return self.array(count=count, relative=(0, 0, relative), constant=(0, 0, constant))\n    \n    def remove_doubles(self, threshold=0.01):\n        with self.all_vertices_selected():\n            bpy.ops.mesh.remove_doubles(threshold=threshold)\n        return self\n    \n    removeDoubles = remove_doubles\n    \n    def smooth(self,\n        factor=0.5,\n        repeat=1,\n        x=True,\n        y=True,\n        z=True\n        ):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"SMOOTH\")\n            m = self.obj.modifiers[\"Smooth\"]\n            m.factor = factor\n            m.iterations = repeat\n            m.use_x = bool(x)\n            m.use_y = bool(y)\n            m.use_z = bool(z)\n        return self\n    \n    def displace(self,\n        strength=1,\n        midlevel=0.5,\n        texture=None,\n        coords_object=None,\n        direction=\"NORMAL\",\n        vertex_group=None\n        ):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"DISPLACE\")\n            \n            m = self.obj.modifiers[\"Displace\"]\n            m.strength = strength\n            m.mid_level = midlevel\n            m.direction = direction\n\n            if texture and isinstance(texture, str):\n                try:\n                    t = bpy.data.textures[texture]\n                    m.texture = t\n                except KeyError:\n                    bpy.ops.texture.new()\n                    t = bpy.data.textures[len(bpy.data.textures)-1]\n                    t.name = texture\n                    t.type = \"CLOUDS\"\n                    m.texture = t\n            if coords_object:\n                try:\n                    m.texture_coords = \"OBJECT\"\n                    m.texture_coords_object = bpy.data.objects[coords_object]\n                except KeyError:\n                    print(\"coords_object not found\", coords_object)\n            \n            if vertex_group and isinstance(vertex_group, str):\n                m.vertex_group = vertex_group\n        return self\n    \n    def boolean(self, object, operation=\"INTERSECT\", apply=False, remove=False):\n        target = None\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"BOOLEAN\")\n            m = self.obj.modifiers[\"Boolean\"]\n            m.operation = operation\n            target = BpyObj.Find(object)\n            if target:\n                m.object = target.obj\n            \n            #try:\n            #    m.object = bpy.data.objects[object]\n            #except KeyError:\n            #    print(\"object for boolean not found\", object)\n        if apply:\n            self.apply_modifier(\"Boolean\")\n        \n        if remove and target:\n            target.delete()\n        return self\n    \n    def boolean_diff(self, object, apply=True, remove=True):\n        return self.boolean(object, \"DIFFERENCE\", apply, remove)\n    \n    def ops_object(self, method, *args, **kwargs):\n        with self.obj_selected():\n            getattr(bpy.ops.object, method)(*args, **kwargs)\n        return self\n    \n    def shade_flat(self):\n        with self.obj_selected():\n            bpy.ops.object.shade_flat()\n        return self\n\n    def shade_smooth(self, auto_smooth=False):\n        if auto_smooth:\n            print(\"shade smooth use_auto_smooth disabled\")\n        with self.obj_selected():\n            bpy.ops.object.shade_smooth()\n        return self\n    \n    def shade_auto_smooth(self):\n        return self.shade_smooth(auto_smooth=True)\n    \n    shadeSmooth = shade_smooth\n    \n    def auto_smooth(self, angle=30):\n        #print(\"auto smooth disabled\")\n        bpy.ops.object.shade_auto_smooth(use_auto_smooth=True, angle=math.radians(angle))\n        return self\n        if angle is None:\n            self.obj.data.use_auto_smooth = False\n        else:\n            self.obj.data.use_auto_smooth = True\n            self.obj.data.auto_smooth_angle = math.radians(angle)\n        return self\n    \n    autoSmooth = auto_smooth\n    \n    def subsurface(self):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"SUBSURF\")\n        return self\n    \n    def simpleDeform(self, method=\"BEND\", angle=180, axis=\"Z\", origin=None):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"SIMPLE_DEFORM\")\n            m = self.obj.modifiers[\"SimpleDeform\"]\n            m.deform_method = \"BEND\"\n            m.deform_axis = axis\n            m.angle = math.radians(angle)\n            if origin:\n                m.origin = bpy.data.objects[origin]\n        return self\n    \n    def decimate_planar(self):\n        with self.obj_selected():\n            bpy.ops.object.modifier_add(type=\"DECIMATE\")\n            m = self.obj.modifiers[\"Decimate\"]\n            m.decimate_type = \"DISSOLVE\"\n        return self\n    \n    decimatePlanar = decimate_planar\n\n#endregion Modifiers\n\n#region Curve functions\n\n    def draw(self, path:P, cyclic=True, fill=True, tx=0, ty=0, set_origin=True, clear=True, removeOverlap=True) -> \"BpyObj\":\n        if len(path) > 0:\n            path = path.pen()\n        \n        if removeOverlap:\n            path = path.removeOverlap(use_skia_pathops_draw=False)\n        \n        #print(\"---\"*30)\n        #from pprint import pprint\n        #pprint(path._val.value)\n        \n        amb = path.ambit(tx=tx, ty=ty)\n\n        origin = amb.x + amb.w/2, amb.y + amb.h/2\n\n        path = path.q2c()\n\n        #czOffset = path.data(\"centerZeroOffset\")\n\n        splines = []\n        spline = None\n        value = []\n\n        for mv, pts in path._val.value:\n            if mv == \"moveTo\":\n                p = pts[0]\n                if spline and len(spline) > 0 and spline not in splines:\n                    splines.append(spline)\n                spline = []\n                value.append([p])\n                spline.append([\"BEZIER\", \"start\", [p, p, p]])\n\n            elif mv == \"lineTo\":\n                p = pts[0]\n                value.append([p])\n                spline.append([\"BEZIER\", \"curve\", [p, p, p]])\n\n            elif mv == \"curveTo\":\n                p1, p2, p3 = pts\n                spline[-1][-1][-1] = p1\n                value.append([p1, p2, p3])\n                spline.append([\"BEZIER\", \"curve\", [p2, p3, p3]])\n\n            # elif mv == \"qCurveTo\":\n            #     p1, p2 = pts\n            #     start = value[-1][-1]\n            #     q1, q2, q3 = raise_quadratic(start, (p1[0], p1[1]), (p2[0], p2[1]))\n            #     spline[-1][-1][-1] = q1\n            #     value.append([q1, q2, q3])\n            #     spline.append([\"BEZIER\", \"curve\", [q2, q3, q3]])\n\n            elif mv == \"closePath\":\n                if spline and len(spline) > 0 and spline not in splines:\n                    splines.append(spline)\n                    spline = None\n                spline = None\n            \n            elif mv == \"endPath\":\n                if spline and len(spline) > 0 and spline not in splines:\n                    splines.append(spline)\n                    spline = None\n                spline = None\n        \n            else:\n                raise Exception(\"blender curve unhandled curve type\", mv)\n            \n            if spline and len(spline) > 0 and spline not in splines:\n                splines.append(spline)\n\n        bez = self.obj.data\n\n        def zvec(pt, z=0):\n            x, y = pt\n            return Vector((x, y, z))\n\n        for spline in reversed(bez.splines): # clear existing splines\n            bez.splines.remove(spline)\n\n        for spline_data in splines:\n            bez.splines.new('BEZIER')\n            spline = bez.splines[-1]\n            spline.use_cyclic_u = cyclic\n            for i, (t, style, pts) in enumerate(spline_data):\n                l, c, r = pts\n                if i > 0:\n                    spline.bezier_points.add(1)\n                pt = spline.bezier_points[-1]\n                pt.co = zvec(c)\n                pt.handle_left = zvec(l)\n                pt.handle_right = zvec(r)\n        \n        if fill:\n            bez.dimensions = \"2D\"\n            bez.fill_mode = \"BOTH\"\n\n        if set_origin:\n            self.set_origin(*origin, 0)\n\n        return self\n\n    def extrude(self, amount=0.1) -> \"BpyObj\":\n        self.obj.data.extrude = amount\n        return self\n    \n    def bevel(self, depth=0.02) -> \"BpyObj\":\n        self.obj.data.bevel_depth = depth\n        return self\n\n#endregion\n\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/livepreview.py",
    "content": "# some code that doesn't really work\n\nimport bpy\nimport blf\nimport bgl\n\n# import skia\n# from OpenGL import GL\n\n# context = skia.GrDirectContext.MakeGL()\n# backend = skia.GrBackendRenderTarget(1080, 1080, 0, 0,\n#     skia.GrGLFramebufferInfo(0, GL.GL_RGBA8))\n# surface = skia.Surface.MakeFromBackendRenderTarget(\n#     context, backend,\n#     skia.kBottomLeft_GrSurfaceOrigin,\n#     skia.kRGBA_8888_ColorType,\n#     skia.ColorSpace.MakeSRGB())\n\ndef get_fac():\n    if bpy.context.space_data.proxy_render_size == 'SCENE':\n        fac = bpy.context.scene.render.resolution_percentage/100\n    else:\n        fac = 1    \n    return fac\n\ndef view_zoom_preview():\n    width = bpy.context.region.width\n    height = bpy.context.region.height\n    rv1 = bpy.context.region.view2d.region_to_view(0,0)\n    rv2 = bpy.context.region.view2d.region_to_view(width-1,height-1)\n    zoom = (1/(width/(rv2[0]-rv1[0])))/get_fac()\n    return zoom\n\nclass DrawingClass:\n    def __init__(self, msg):\n        self.msg = msg\n        self.handle = bpy.types.SpaceSequenceEditor.draw_handler_add(\n            self.draw_text_callback, (), 'PREVIEW', 'POST_PIXEL')\n\n    def draw_text_callback(self):\n        #print(\">>>\", view_zoom_preview())\n        pt = bpy.context.region.view2d.view_to_region(-540,-540,clip=False)\n        \n#        font_id = 0  # XXX, need to find out how best to get this.\n#        blf.position(font_id, pt[0], pt[1], 0)\n#        blf.size(font_id, 66, 72)\n#        blf.draw(font_id, \"%s\" % (self.msg))\n\n        #GL.glClear(GL.GL_COLOR_BUFFER_BIT)\n        #with surface as context:\n        #    context.clear(skia.Color4f(1, 0.3, 0.1, 1))\n        #surface.flushAndSubmit()\n\n    def remove_handle(self):\n         bpy.types.SpaceSequenceEditor.draw_handler_remove(self.handle, 'PREVIEW')\n\nwidgets = {}\ndef register():\n    widgets[\"Test\"] = DrawingClass(\"Test2\")\n\ndef unregister():\n    for key, dc in widgets.items():\n        dc.remove_handle()\n\nif __name__ == \"__main__\":\n    register()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/panel3d.py",
    "content": "from coldtype.blender.util import *\n\n\nclass Coldtype3DRenderOne(bpy.types.Operator):\n    \"\"\"Render the current frame via Coldtype with the offline Blender renderer\"\"\"\n\n    bl_idname = \"wm.coldtype_3d_render_one\"\n    bl_label = \"Coldtype 3D Render One\"\n\n    def execute(self, _):\n        print(\"RENDER ONE\")\n        remote(\"render_index\", [bpy.data.scenes[0].frame_current])\n        return {'FINISHED'}\n\nclass Coldtype3DRenderFromCurrent(bpy.types.Operator):\n    \"\"\"Render the current frame via Coldtype with the offline Blender renderer\"\"\"\n\n    bl_idname = \"wm.coldtype_3d_render_from_current\"\n    bl_label = \"Coldtype 3D Render From Current\"\n\n    def execute(self, _):\n        print(\"RENDER FROM CURRENT\")\n        remote(\"render_after\", [bpy.data.scenes[0].frame_current])\n        return {'FINISHED'}\n\n\nclass Coldtype3DRenderAll(bpy.types.Operator):\n    \"\"\"Render all frames via Coldtype with the offline Blender renderer\"\"\"\n\n    bl_idname = \"wm.coldtype_3d_render_all\"\n    bl_label = \"Coldtype 3D Render All\"\n\n    def execute(self, _):\n        print(\"RENDER ALL\")\n        remote(\"render_all\", [bpy.data.scenes[0].frame_current])\n        return {'FINISHED'}\n\n\nclass Coldtype3DOpenInEditor(bpy.types.Operator):\n    \"\"\"Open the current Coldtype source file in your configured text editor\"\"\"\n\n    bl_idname = \"wm.coldtype_3d_open_in_editor\"\n    bl_label = \"Coldtype 3D Open-in-editor\"\n\n    def execute(self, _):\n        remote(\"open_in_editor\")\n        return {'FINISHED'}\n\nclass Coldtype3DShowInFinder(bpy.types.Operator):\n    \"\"\"Open the current Coldtype source file in the file browser\"\"\"\n\n    bl_idname = \"wm.coldtype_3d_show_in_finder\"\n    bl_label = \"Coldtype 3D Show-in-finder\"\n\n    def execute(self, _):\n        remote(\"show_in_finder\")\n        return {'FINISHED'}\n\n\nclass COLDTYPE_3D_PT_Panel(bpy.types.Panel):\n    bl_idname = 'COLDTYPE_3D_PT_panel'\n    bl_label = 'Coldtype 3D'\n    bl_space_type = 'VIEW_3D'\n    bl_region_type = 'UI'\n    bl_category = 'Tool'\n\n    def draw(self, context):\n        layout = self.layout\n        layout.operator(Coldtype3DRenderOne.bl_idname, text=\"Render One\", icon=\"IMAGE_DATA\",)\n        layout.operator(Coldtype3DRenderFromCurrent.bl_idname, text=\"Render From Current\", icon=\"RENDER_ANIMATION\",)\n        layout.operator(Coldtype3DRenderAll.bl_idname, text=\"Render All\", icon=\"RENDER_ANIMATION\",)\n        layout.separator()\n        layout.operator(Coldtype3DOpenInEditor.bl_idname, text=\"Open in Editor\", icon=\"SCRIPT\",)\n        layout.operator(Coldtype3DShowInFinder.bl_idname, text=\"Show in Finder\", icon=\"FILEBROWSER\",)\n\naddon_keymaps = []\n\ndef register():\n    bpy.utils.register_class(Coldtype3DRenderOne)\n    bpy.utils.register_class(Coldtype3DRenderFromCurrent)\n    bpy.utils.register_class(Coldtype3DRenderAll)\n    bpy.utils.register_class(Coldtype3DOpenInEditor)\n    bpy.utils.register_class(Coldtype3DShowInFinder)\n    \n    bpy.utils.register_class(COLDTYPE_3D_PT_Panel)\n \n \ndef unregister():\n    for km, kmi in addon_keymaps:\n        km.keymap_items.remove(kmi)\n    \n    addon_keymaps.clear()\n    bpy.utils.unregister_class(COLDTYPE_3D_PT_Panel)\n\n\ndef add_3d_panel():\n    register()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/render.py",
    "content": "import subprocess, time, sys, json\nfrom urllib.parse import urlparse\nfrom pathlib import Path\n\nfrom coldtype.osutil import on_windows\n\ndef prefix_inline_venv(expr):\n    vi = sys.version_info\n    venv_root = Path(sys.executable).parent.parent\n\n    if on_windows():\n        venv = (venv_root / \"Lib/site-packages\").absolute()\n    else:\n        venv = (venv_root / f'lib/python{vi.major}.{vi.minor}/site-packages').absolute()\n    \n    paths = [[\"venv\", venv]]\n\n    for egg_link in venv.glob(\"*.egg-link\"):\n        paths.append([\"egg-link\", Path(egg_link).read_text().splitlines()[0]])\n    \n    for direct_url in venv.glob(\"**/direct_url.json\"):\n        try:\n            info = json.loads(direct_url.read_text())\n            if info.get(\"dir_info\", {}).get(\"editable\") == True:\n                direct_path = Path(urlparse(info.get(\"url\")).path)\n                if (direct_path / \"src\").exists():\n                    direct_path = direct_path / \"src\"\n                paths.append([\"direct_url\", direct_path])\n        except Exception as e:\n            print(e)\n            print(\">>> could not load direct_url.json for \", direct_url)\n    \n    print(\">>>\", paths)\n\n    paths_str = \"\"\n    for src, path in paths:\n        paths_str += f\"sys.path.append(\\\"{str(Path(path).as_posix())}\\\");\"\n\n    prefix = f\"import sys; from pathlib import Path; {paths_str}\"\n    print(prefix)\n    return prefix + \" \" + expr\n\ndef blender_launch_livecode(blender_path, file:Path, command_file, additional_args=\"\"):\n    if not file.exists():\n        file.parent.mkdir(exist_ok=True, parents=True)\n    \n    #call = f\"{BLENDER} {file}\"\n    print(\"BLENDER_PATH\", blender_path)\n    print(f\"Opening blend file: {file}...\")\n    cf = Path(command_file).as_posix()\n    args = [\n        blender_path,\n        file,\n        \"--python-expr\", prefix_inline_venv(f\"from coldtype.blender.watch import watch; watch('{cf}');\")\n    ]\n    \n    #if reset_factory:\n    #    print(\"FACTORY RESET\")\n    #    args.append(\"--factory-startup\")\n\n    if additional_args:\n        args.extend(additional_args[1:].split(\" \"))\n    \n    return subprocess.Popen(args)\n\n\ndef blend_frame(blender_path, py_file, blend_file, expr, output_dir, fi):\n    call = [\n        str(blender_path),\n        \"-b\", blend_file,\n        \"--python-expr\", f\"{expr}\",\n        \"-o\", f\"{output_dir}####.png\",\n        \"-f\", str(fi),\n    ]\n    #call = f\"{blender_path} -b \\\"{blend_file}\\\" --python-expr \\\"{expr}\\\" -o \\\"{output_dir}####.png\\\" -f {fi}\"\n    print(f\"Blending frame {fi}...\")\n    print(call)\n    #return\n    #os.system(call)\n    if True:\n        process = subprocess.Popen(call, stdout=subprocess.PIPE, shell=False)\n        log = \"\"\n        while True:\n            out = process.stdout.read(1).decode(\"utf-8\")\n            log += out\n            if out == \"\" and process.poll() != None:\n                break\n            if \"Error: Python:\" in log:\n                print(log)\n                process.kill()\n                process.terminate()\n                break\n        print(log)\n    else:\n        print(subprocess.run(call, stdout=subprocess.PIPE, shell=True))\n    print(f\"/Blended frame {fi}.\")\n\ndef blend_source(blender_path\n    , py_file\n    , blend_file\n    , frame\n    , output_dir\n    , samples=-1\n    , denoise=False\n    ):\n    \"\"\"\n    A facility for telling Blender to render a single frame in a background process\n    \"\"\"\n    expr = prefix_inline_venv(f\"from coldtype.blender.render import frame_render; frame_render(r'{py_file}', {frame}, {samples}, {denoise})\")\n    #print(expr)\n    blend_frame(blender_path, py_file, blend_file, expr, output_dir, frame)\n\ndef frame_render(file, frame, samples=-1, denoise=False):\n    \"\"\"\n    A facility for easy-rendering from within a backgrounded blender\n    \"\"\"\n    import bpy\n    from coldtype.renderer.reader import SourceReader\n    from coldtype.blender import walk_to_b3d\n    \n    bpy.data.scenes[0].frame_set(frame)\n    \n    if samples > 0:\n        bpy.data.scenes[0].cycles.samples = samples\n    \n    if denoise:\n        bpy.data.scenes[0].cycles.denoiser = \"OPENIMAGEDENOISE\"\n        bpy.data.scenes[0].cycles.use_denoising = True\n\n    sr = SourceReader(file, use_blender=True)\n    for r, res in sr.frame_results(frame, class_filters=[r\"^b3d_.*$\"]):\n        if hasattr(r, \"center\"):\n            walk_to_b3d(res, dn=True, renderable=r)\n    sr.unlink()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/timedtext.py",
    "content": "import json\nfrom coldtype.blender.util import *\nfrom bpy_extras.io_utils import ImportHelper\n\n\ndef text_in_channel(se, c, sort=True):\n    matches = []\n    for s in se.strips:\n        if hasattr(s, \"text\") and s.channel == c:\n            matches.append(s)\n    if sort: \n        return sorted(matches, key=lambda s: s.frame_start)\n    return matches\n\ndef next_neighbor(se, curr):\n    candidates = text_in_channel(se, curr.channel)\n    for c in candidates:\n        if curr.frame_final_end == c.frame_start:\n            return c\n\n\nclass TimedTextEditorOperator(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_editor_operator\"\n    bl_label = \"Timed Text Editor\"\n    \n    timed_text: bpy.props.StringProperty(name=\"Text\")\n    bl_property = \"timed_text\"\n\n    def execute(self, context):\n        self.report({'INFO'}, self.timed_text)\n        \n        se = bpy.data.scenes[0].sequence_editor\n        if hasattr(se.active_strip, \"text\"):\n            se.active_strip.text = self.timed_text\n            se.active_strip.name = self.timed_text.split(\" \")[0]\n        \n        return {'FINISHED'}\n\n    def invoke(self, context, event):\n        se = bpy.data.scenes[0].sequence_editor\n        self.timed_text = se.active_strip.text\n        wm = context.window_manager\n        return wm.invoke_props_dialog(self)\n\n\nclass TimedTextSplitter(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_splitter\"\n    bl_label = \"Timed Text Splitter\"\n\n    def execute(self, context):\n        se = bpy.data.scenes[0].sequence_editor\n        if hasattr(se.active_strip, \"text\"):\n            next = next_neighbor(se, se.active_strip)\n            if not next:\n                print(\"ERROR NO NEXT\")\n                return {'FINISHED'}\n            curr = se.active_strip\n            txts = curr.text.split(\" \")\n            #print(curr.name, next.name, txts)\n            curr.text = txts[0]\n            next.text = \" \".join(txts[1:])\n            curr.name = txts[0]\n            next.name = txts[1]\n            curr.select = False\n            next.select = True\n            se.active_strip = next\n            bpy.ops.sequencer.refresh_all()\n        \n        return {'FINISHED'}\n\n    def invoke(self, context, event):\n        bpy.ops.sequencer.split(type=\"SOFT\",\n            frame=bpy.data.scenes[0].frame_current,\n            channel=bpy.data.scenes[0].sequence_editor.active_strip.channel,\n            side=\"RIGHT\")\n        bpy.ops.sequencer.refresh_all()\n        return self.execute(context)\n\n\n\nclass TimedTextSelector(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_selector\"\n    bl_label = \"Timed Text Selector\"\n\n    def invoke(self, context, event):\n        se = bpy.data.scenes[0].sequence_editor\n        fc = bpy.data.scenes[0].frame_current\n        \n        if hasattr(se.active_strip, \"text\"):\n            curr = se.active_strip\n            all = text_in_channel(se, curr.channel)\n            next = None\n            for s in all:\n                if s.frame_start <= fc < s.frame_final_end:\n                    next = s\n            if next:\n                curr.select = False\n                next.select = True\n                se.active_strip = next\n                bpy.ops.sequencer.refresh_all()\n        return {'FINISHED'}\n\n\nclass TimedTextNewline(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_newline\"\n    bl_label = \"Timed Text Newline\"\n\n    def invoke(self, context, event):\n        se = bpy.data.scenes[0].sequence_editor\n        \n        if hasattr(se.active_strip, \"text\"):\n            curr = se.active_strip\n            if curr.name.startswith(\"≈\"):\n                curr.name = curr.name[1:]\n                curr.text = curr.text[1:]\n            else:\n                curr.name = \"≈\" + curr.name\n                curr.text = \"≈\" + curr.text\n        return {'FINISHED'}\n\n\nclass TimedTextReset(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_reset\"\n    bl_label = \"Timed Text Reset\"\n\n    def invoke(self, context, event):\n        se = bpy.data.scenes[0].sequence_editor\n        \n        if hasattr(se.active_strip, \"text\"):\n            curr = se.active_strip\n            if curr.name.startswith(\"*\"):\n                curr.name = curr.name[1:]\n                curr.text = curr.text[1:]\n            else:\n                curr.name = \"*\" + curr.name\n                curr.text = \"*\" + curr.text\n        return {'FINISHED'}\n\n\nclass TimedTextRoller(bpy.types.Operator):\n    bl_idname = \"wm.timed_text_roller\"\n    bl_label = \"Timed Text Roller\"\n\n    def invoke(self, context, event):\n        se = bpy.data.scenes[0].sequence_editor\n        fc = bpy.data.scenes[0].frame_current\n        \n        if hasattr(se.active_strip, \"text\"):\n            curr = se.active_strip\n            all = text_in_channel(se, curr.channel)\n            next = None\n            prev = None\n            for s in all:\n                s.select = False\n                s.select_right_handle = False\n                s.select_left_handle = False\n\n                if fc == s.frame_start:\n                    next = s\n                if fc == s.frame_final_end:\n                    prev = s\n            \n            if prev:\n                prev.select = True\n                prev.select_right_handle = True\n            if next:\n                next.select = True\n                next.select_left_handle = True\n                se.active_strip = next\n            \n            bpy.ops.sequencer.refresh_all()\n        return {'FINISHED'}\n\n\nclass Coldtype2DImporter(bpy.types.Operator):\n    \"\"\"Import the current Coldtype animation as a PNG frame sequence in the Blender sequence editor\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_importer\"\n    bl_label = \"Coldtype 2D Importer\"\n\n    def invoke(self, context, event):\n        from coldtype.blender import Action\n        \n        sq = find_sequence()\n        if sq:\n            bpy.ops.sequencer.image_strip_add(\n                directory=str(sq.output_folder) + \"/\",\n                files=[dict(name=str(p.output_path.name)) for p in sq.passes(Action.RenderAll, None)],\n                relative_path=True,\n                frame_start=0,\n                frame_end=sq.duration-1,\n                channel=2)\n        \n        bpy.ops.sequencer.refresh_all()\n        return {'FINISHED'}\n\n\nclass Coldtype2DLivePreviewImporter(bpy.types.Operator):\n    \"\"\"Import the current Coldtype animation livepreview file as a PNG (that you can display in the image viewer)\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_livepreview_importer\"\n    bl_label = \"Coldtype 2D Live Preview Importer\"\n\n    def invoke(self, context, event):\n        sq = find_sequence()\n        if sq:\n            file = sq.filepath.parent / \"renders\" / (sq.filepath.stem + \"_livepreview.png\")\n            if file.exists():\n                bpy.data.images.load(str(file))\n            # bpy.ops.sequencer.image_strip_add(\n            #     directory=str(sq.output_folder) + \"/\",\n            #     files=[dict(name=str(p.output_path.name)) for p in sq.passes(Action.RenderAll, None)],\n            #     relative_path=True,\n            #     frame_start=0,\n            #     frame_end=sq.duration-1,\n            #     channel=2)\n        \n        #bpy.ops.sequencer.refresh_all()\n        return {'FINISHED'}\n\n#path = r.filepath.parent / \"renders\" / (r.filepath.stem + \"_livepreview.png\")\n\n\nclass Coldtype2DSequenceDefaults(bpy.types.Operator):\n    \"\"\"Some good defaults for editing and rendering a 2D sequence based on PNG images\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_sequence_defaults\"\n    bl_label = \"Coldtype 2D Sequence Defaults\"\n\n    def execute(self, context):\n        context.scene.render.use_compositing = False\n        context.scene.render.use_sequencer = True\n        context.scene.use_audio_scrub = True\n        context.scene.view_settings.view_transform = \"Standard\"\n        context.screen.use_follow = True\n        return {'FINISHED'}\n\n\nclass Coldtype2DRenderOne(bpy.types.Operator):\n    \"\"\"Render the current frame with the Coldtype renderer\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_render_one\"\n    bl_label = \"Coldtype 2D Render One\"\n\n    def execute(self, _):\n        print(\"EXTERNAL RENDER ONE\")\n        remote(\"render_index\", [bpy.data.scenes[0].frame_current])\n        return {'FINISHED'}\n\nclass Coldtype2DRenderWorkarea(bpy.types.Operator):\n    \"\"\"Render the current workarea with the Coldtype renderer; if not workarea is set, this will render the entire animation\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_render_workarea\"\n    bl_label = \"Coldtype 2D Render Workarea\"\n\n    def execute(self, _):\n        print(\"RENDER WORKAREA\")\n        remote(\"render_workarea\")\n        return {'FINISHED'}\n\n\nclass Coldtype2DRenderAll(bpy.types.Operator):\n    \"\"\"Render the entire animation with the Coldtype renderer\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_render_all\"\n    bl_label = \"Coldtype 2D Render All\"\n\n    def execute(self, _):\n        print(\"RENDER ALL\")\n        remote(\"render_all\")\n        return {'FINISHED'}\n\n\nclass Coldtype2DRelease(bpy.types.Operator):\n    \"\"\"Trigger the release function\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_release\"\n    bl_label = \"Coldtype 2D Release\"\n\n    def execute(self, _):\n        print(\"RELEASE\")\n        remote(\"release\")\n        return {'FINISHED'}\n\n\ndef update_json_value(key, value, default=False):\n    jpath = Path(str(Path(bpy.data.filepath)) + \".json\")\n    jdata = json.loads(jpath.read_text())\n    existing = jdata.get(key, default)\n    \n    if callable(value):\n        new_value = value(existing)\n    else:\n        new_value = value\n\n    jdata[key] = new_value\n    jpath.write_text(json.dumps(jdata))\n\n\nclass Coldtype2DSetWorkarea(bpy.types.Operator):\n    \"\"\"Set a workarea based on the current frame and the text data in the sequence\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_set_workarea\"\n    bl_label = \"Coldtype 2D Set Workarea\"\n\n    def execute(self, context):\n\n        sq = find_sequence()\n        if sq:\n            fc = context.scene.frame_current\n            work = sq.t.findWordsWorkarea(fc)\n            if work:\n                update_json_value(\"workarea_set\", True)\n                start, end = work\n                context.scene.frame_start = start\n                context.scene.frame_end = end-1\n            else:\n                update_json_value(\"workarea_set\", False)\n                context.scene.frame_start = 0\n                context.scene.frame_end = sq.t.duration-1\n        \n        return {'FINISHED'}\n\n\nclass Coldtype2DUnsetWorkarea(bpy.types.Operator):\n    \"\"\"Set the workarea to the entire length of the animation\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_unset_workarea\"\n    bl_label = \"Coldtype 2D Unset Workarea\"\n\n    def execute(self, context):\n        sq = find_sequence()\n        if sq:\n            update_json_value(\"workarea_set\", False)\n            context.scene.frame_start = 0\n            context.scene.frame_end = sq.t.duration-1\n        return {'FINISHED'}\n\n\nclass Coldtype2DOpenInEditor(bpy.types.Operator):\n    \"\"\"Open the current Coldtype source file in your configured text editor\"\"\"\n\n    bl_idname = \"wm.coldtype_2d_open_in_editor\"\n    bl_label = \"Coldtype 2D Open-in-editor\"\n\n    def execute(self, _):\n        remote(\"open_in_editor\")\n        return {'FINISHED'}\n\n\nclass Coldtype2DLivePreviewToggle(bpy.types.Operator):\n    \"\"\"When livepreviewing is enabled, Coldtype will render a preview image that can be loaded and viewed in realtime in Blender\"\"\"\n\n    bl_idname = \"wm.coldtype2d_livepreview_toggle\"\n    bl_label = \"Coldtype 2D Livepreview Toggle\"\n\n    def execute(self, _):\n        update_json_value(\"livepreview_disabled\", lambda v: not bool(v), False)\n        bpy.ops.sequencer.refresh_all()\n        return {'FINISHED'}\n\n\nclass Coldtype2DLoadJSONData(bpy.types.Operator, ImportHelper):\n    \"\"\"Open file dialog to load json file to sequence\"\"\"\n    \n    bl_idname = \"wm.coldtype2d_load_json_data\"\n    bl_label = \"Choose .json file\"\n    bl_options = {\"REGISTER\",\"UNDO\"}\n    \n    filter_glob: bpy.props.StringProperty(\n        default='*.json',\n        options={'HIDDEN'})\n\n    def invoke(self, context, event):\n        context.window_manager.fileselect_add(self)\n        return {'RUNNING_MODAL'}\n\n    def execute(self, context):\n        path = Path(self.filepath)\n        data = json.loads(path.read_text())\n\n        for track in data[\"tracks\"]:\n            for clip in track[\"clips\"]:\n                print(clip)\n\n                se = bpy.data.scenes[0].sequence_editor\n                text = se.strips.new_effect(\n                    name=clip[\"name\"],\n                    #text=clip[\"text\"],\n                    type=\"TEXT\",\n                    channel=track[\"index\"],\n                    frame_start=int(clip[\"start\"]),\n                    frame_end=int(clip[\"end\"]),\n                )\n\n                text.text = clip[\"text\"]\n                #text.color = (0, 0.5, 1, 1)\n        \n        return {'FINISHED'}\n\n\nclass COLDTYPE_2D_PT_Panel(bpy.types.Panel):\n    bl_idname = 'COLDTYPE_2D_PT_panel'\n    bl_label = 'Coldtype 2D'\n    bl_space_type = 'SEQUENCE_EDITOR'\n    bl_region_type = 'UI'\n    bl_category = 'Tool'\n\n    def draw(self, context):\n        jpath = str(Path(bpy.data.filepath)) + \".json\"\n        jdata = json.loads(Path(jpath).read_text())\n\n        layout = self.layout\n        row = layout.row()\n        row.label(text=\"Livepreview\")\n        if jdata.get(\"livepreview_disabled\"):\n           row.operator(Coldtype2DLivePreviewToggle.bl_idname, text=\"Enable\")\n        else:\n           row.operator(Coldtype2DLivePreviewToggle.bl_idname, text=\"Disable\")\n        layout.separator()\n        row = layout.row()\n        row.label(text=\"Settings\")\n        row.operator(Coldtype2DSequenceDefaults.bl_idname, text=\"Defaults\")\n        row.operator(Coldtype2DLoadJSONData.bl_idname, text=\"Data\")\n        row = layout.row()\n        row.label(text=\"Import\")\n        row.operator(Coldtype2DImporter.bl_idname, text=\"Frames\")\n        row.operator(Coldtype2DLivePreviewImporter.bl_idname, text=\"Preview\")\n        layout.separator()\n        row = layout.row()\n        row.label(text=\"Render\")\n        row.operator(Coldtype2DRenderOne.bl_idname, text=\"\", icon=\"IMAGE_DATA\",)\n        row.operator(Coldtype2DRenderAll.bl_idname, text=\"\", icon=\"RENDER_ANIMATION\",)\n        row.operator(Coldtype2DRenderWorkarea.bl_idname, text=\"\", icon=\"RENDERLAYERS\",)\n        row.operator(Coldtype2DRelease.bl_idname, text=\"\", icon=\"UGLYPACKAGE\",)\n        row = layout.row()\n        row.label(text=\"Workarea\")\n        row.operator(Coldtype2DSetWorkarea.bl_idname, text=\"\", icon=\"STICKY_UVS_VERT\",)\n        row.operator(Coldtype2DUnsetWorkarea.bl_idname, text=\"\", icon=\"STICKY_UVS_LOC\",)\n        row = layout.row()\n        row.label(text=\"Editing\")\n        row.operator(TimedTextEditorOperator.bl_idname, text=\"\", icon=\"OUTLINER_DATA_FONT\")\n        row.operator(TimedTextReset.bl_idname, text=\"\", icon=\"INDIRECT_ONLY_ON\")\n        row.operator(TimedTextNewline.bl_idname, text=\"\", icon=\"OUTLINER_OB_FORCE_FIELD\")\n        row.operator(TimedTextSplitter.bl_idname, text=\"\", icon=\"UV_ISLANDSEL\")\n\n        #layout.label(text=\"* to start a new text sequence\")\n        #layout.label(text=\"≈ to break a line\")\n        #layout.label(text=\"+ to continue without space\")\n        #layout.label(text=\". to indicate a style\")\n\n\naddon_keymaps = []\n\ndef register():\n    bpy.utils.register_class(TimedTextEditorOperator)\n    bpy.utils.register_class(TimedTextSplitter)\n    bpy.utils.register_class(TimedTextSelector)\n    bpy.utils.register_class(TimedTextNewline)\n    bpy.utils.register_class(TimedTextReset)\n    bpy.utils.register_class(TimedTextRoller)\n    \n    bpy.utils.register_class(Coldtype2DSequenceDefaults)\n    bpy.utils.register_class(Coldtype2DImporter)\n    bpy.utils.register_class(Coldtype2DLivePreviewImporter)\n    bpy.utils.register_class(Coldtype2DRenderOne)\n    bpy.utils.register_class(Coldtype2DRenderWorkarea)\n    bpy.utils.register_class(Coldtype2DRenderAll)\n    bpy.utils.register_class(Coldtype2DRelease)\n    bpy.utils.register_class(Coldtype2DSetWorkarea)\n    bpy.utils.register_class(Coldtype2DUnsetWorkarea)\n    bpy.utils.register_class(Coldtype2DOpenInEditor)\n    bpy.utils.register_class(Coldtype2DLoadJSONData)\n    bpy.utils.register_class(Coldtype2DLivePreviewToggle)\n    \n    bpy.utils.register_class(COLDTYPE_2D_PT_Panel)\n    \n    wm = bpy.context.window_manager\n    kc = wm.keyconfigs.addon\n    \n    if kc:\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_editor_operator\", type='T', value='PRESS', shift=True)\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_splitter\", type='V', value='PRESS', shift=True)\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_selector\", type='D', value='PRESS')\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_newline\", type='X', value='PRESS', shift=True)\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_reset\", type='R', value='PRESS', shift=True)\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(\"wm.timed_text_roller\", type='F', value='PRESS')\n        ])\n        # addon_keymaps.append([\n        #     km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n        #     km.keymap_items.new(Coldtype2DImporter.bl_idname, type='I', value='PRESS', shift=True)\n        # ])\n        # addon_keymaps.append([\n        #     km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n        #     km.keymap_items.new(Coldtype2DRenderOne.bl_idname, type='R', value='PRESS')\n        # ])\n        # addon_keymaps.append([\n        #     km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n        #     km.keymap_items.new(Coldtype2DRenderWorkarea.bl_idname, type='R', value='PRESS', shift=True)\n        # ])\n        # addon_keymaps.append([\n        #     km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n        #     km.keymap_items.new(Coldtype2DRenderAll.bl_idname, type='R', value='PRESS', shift=True, oskey=True)\n        # ])\n        # addon_keymaps.append([\n        #     km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n        #     km.keymap_items.new(Coldtype2DOpenInEditor.bl_idname, type='O', value='PRESS')\n        # ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(Coldtype2DSetWorkarea.bl_idname, type='W', value='PRESS', shift=True)\n        ])\n        addon_keymaps.append([\n            km:=kc.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR'),\n            km.keymap_items.new(Coldtype2DUnsetWorkarea.bl_idname, type='W', value='PRESS', shift=True, oskey=True)\n        ])\n \n \ndef unregister():\n    for km, kmi in addon_keymaps:\n        km.keymap_items.remove(kmi)\n    \n    addon_keymaps.clear()\n    bpy.utils.unregister_class(TimedTextEditorOperator)\n\n\ndef add_2d_panel():\n    register()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/util.py",
    "content": "import bpy, json\nfrom pathlib import Path\n\n\ndef find_sequence():\n    from coldtype.blender import b3d_sequencer, b3d_animation\n\n    rs = bpy.app.driver_namespace.get(\"_coldtypes\", [])\n    sq = None\n    for r in rs:\n        if isinstance(r, b3d_sequencer) or isinstance(r, b3d_animation):\n            sq = r\n    return sq\n\n\ndef remote(command, args=None, sq=None):\n    #print(\"REMOTE\", command, args, sq)\n    if sq is None:\n        sq = find_sequence()\n    input_command_file = bpy.app.driver_namespace[\"_coldtype_command_input_file\"]\n    (Path(input_command_file)\n        .expanduser()\n        .write_text(json.dumps(dict(\n            action=command if isinstance(command, str) else command.value,\n            args=args,\n            filepath=str(sq.filepath)))))\n    return sq"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/blender/watch.py",
    "content": "import bpy, traceback, json, shutil\nfrom pathlib import Path\nfrom collections import defaultdict\nfrom coldtype.renderable.animation import animation\n\nfrom coldtype.renderer.reader import SourceReader\nfrom coldtype.blender import B3DPlayback, b3d_animation, b3d_renderable, b3d_runnable, b3d_sequencer, walk_to_b3d\nfrom coldtype.blender.timedtext import add_2d_panel\nfrom coldtype.blender.panel3d import add_3d_panel\nfrom coldtype.blender.util import remote\n\n\ndef persist_sequence(last_persisted):\n    channels = defaultdict(lambda: [])\n\n    scene = bpy.data.scenes[0]\n    for s in scene.sequence_editor.strips:\n        channels[s.channel].append(s)\n    \n    tracks = []\n    for c, clips in channels.items():\n        track = dict(index=c)\n        _clips = []\n        for clip in clips:\n            if hasattr(clip, \"text\"):\n                _clips.append(dict(\n                    name=clip.name,\n                    text=clip.text,\n                    start=clip.frame_start,\n                    end=clip.frame_final_end))\n        track[\"clips\"] = sorted(_clips, key=lambda c: c[\"start\"])\n        if len(_clips) > 0:\n            tracks.append(track)\n    \n    if len(tracks) == 0:\n        return None\n    \n    jpath = str(Path(bpy.data.filepath)) + \".json\"\n    jdata = json.loads(Path(jpath).read_text())\n    #print(\">>>>>>>>>>>>>>>>\", scene.render.fps, scene.render.fps_base)\n    out = dict(\n        start=scene.frame_start,\n        end=scene.frame_end,\n        #fps=scene.render.fps / scene.render.fps_base,\n        workarea_set=jdata.get(\"workarea_set\", False),\n        livepreview_disabled=jdata.get(\"livepreview_disabled\"),\n        #current_frame=scene.frame_current,\n        tracks=tracks)\n    \n    if out == last_persisted:\n        return out\n    else:\n        #print(\"NEW CHANGES\")\n        Path(jpath).write_text(json.dumps(out, indent=4))\n        \n        autosave = False\n        for r in bpy.app.driver_namespace.get(\"_coldtypes\", []):\n            if hasattr(r, \"reread_timeline\"):\n                r.reread_timeline()\n            if hasattr(r, \"autosave\") and r.autosave:\n                autosave = True\n        \n        if autosave:\n            bpy.ops.wm.save_mainfile()\n        return out\n    \n\ndef render_as_image(r, res):\n    from coldtype.pens.skiapen import SkiaPen\n\n    path = r.filepath.parent / \"renders\" / (r.filepath.stem + \"_livepreview.png\")\n\n    if isinstance(res, Path) or isinstance(res, str) or False:\n        prp = Path(str(res))\n        if prp.exists():\n            shutil.copy(str(prp), str(path))\n    else:\n        _ = SkiaPen.Precompose(res, r.rect, disk=str(path), scale=r.live_preview_scale)\n    \n    return path\n\n    # if r.name not in bpy.data.images.keys():\n    #     bpy.data.images.new(r.name, width=r.rect.w, height=r.rect.h, alpha=True, float_buffer=True)\n\n    # img = bpy.data.images[r.name]\n    # img.pixels = pimg.toarray(colorType=skia.ColorType.kRGBA_F32_ColorType).ravel()\n\n# original idea: https://blender.stackexchange.com/questions/15670/send-instructions-to-blender-from-external-application\n\ndef display_image_in_blender(img_path):\n    try:\n        if img_path.name in bpy.data.images:\n            bpy.data.images[img_path.name].reload()\n        else:\n            bpy.data.images.load(str(img_path))\n    except RuntimeError:\n        print(\"> failed to load livepreview\")\n\n\nclass ColdtypeWatchingOperator(bpy.types.Operator):\n    bl_idname = \"wm.coldtype_watching_operator\"\n    bl_label = \"Coldtype Watching Operator\"\n\n    _timer = None\n    file = None\n    sr = None\n    current_frame = -1\n    persisted = None\n\n    _delayed_runnables = []\n    _should_start_playing = False\n\n    def render_current_frame(self, statics=False):\n        delayed_runnables = []\n        out = []\n        animation_found = False\n        frame = self.current_frame\n        playback = B3DPlayback.AlwaysStop\n\n        def display_image(r, result):\n            lp_path = render_as_image(r, result)\n            display_image_in_blender(lp_path)\n        \n        candidates = sorted(self.candidates, key=lambda x: isinstance(x, b3d_runnable), reverse=True)\n        force_refresh = False\n\n        for r in candidates:\n            if isinstance(r, b3d_runnable):\n                if statics:\n                    playback = r.playback\n            if hasattr(r, \"force_refresh\") and r.force_refresh:\n                force_refresh = True\n        \n        if statics and playback != B3DPlayback.KeepPlaying:\n            if bpy.context.screen.is_animation_playing:\n                bpy.ops.screen.animation_play() # stop it\n\n        for r in candidates:\n            if isinstance(r, b3d_runnable):\n                if r.once:\n                    if statics:\n                        if r.delay:\n                            delayed_runnables.append(r)\n                        else:\n                            r.run()\n                else:\n                    if r.delay:\n                        delayed_runnables.append(r)\n                    else:\n                        r.run()\n            else:\n                out.append(r)\n\n                ps = r.passes(None, None, indices=[frame])\n                def run_passes():\n                    return r.run_normal(ps[0], renderer_state=None)\n            \n                if isinstance(r, b3d_sequencer) and r.renderer == \"skia\":\n                    animation_found = True\n\n                    if r.live_preview:\n                        result = run_passes()\n                        display_image(r, result)\n                \n                elif isinstance(r, b3d_animation):\n                    if r.bake:\n                        if statics:\n                            walk_to_b3d(r.baked_frames(), renderable=r)\n                            if r.reset_to_zero:\n                                bpy.data.scenes[0].frame_set(0)\n                    else:\n                        animation_found = True\n                        result = run_passes()\n                        if result and (result.depth() > 0 or not result.empty()):\n                            if r.renderer == \"b3d\":\n                                walk_to_b3d(result, renderable=r)\n                            else:\n                                raise Exception(\"r.renderer not supported\", r.renderer)\n                        \n                        if r.reset_to_zero:\n                            bpy.data.scenes[0].frame_set(0)\n            \n                elif isinstance(r, b3d_renderable):\n                    # coolio\n                    if statics:\n                        result = run_passes()\n                        walk_to_b3d(result, renderable=r)\n                        if r.reset_to_zero:\n                            bpy.data.scenes[0].frame_set(0)\n        \n        #if not animation_found:\n        #    bpy.data.scenes[0].frame_set(0)\n\n        if statics:\n            bpy.app.driver_namespace[\"_coldtypes\"] = out\n        \n        if force_refresh:\n            for area in bpy.context.screen.areas:\n                if area.type == 'VIEW_3D':\n                    for space in area.spaces: \n                        if space.type == 'VIEW_3D':\n                            current = space.shading.type\n                            if current == \"RENDERED\":\n                                space.shading.type = 'WIREFRAME'\n                                space.shading.type = 'RENDERED'\n\n        for o in out:\n            if hasattr(o, \"post_run\") and o.post_run:\n                o.post_run()\n        \n        if statics:\n            self._delayed_runnables = delayed_runnables\n\n            # for dr in self._delayed_runnables:\n            #     dr.run()\n            \n            # self._delayed_runnables = []\n\n            if playback == B3DPlayback.AlwaysPlay:\n                bpy.ops.screen.animation_play()\n        \n        return animation_found\n\n    def reimport(self, arg, inputs):\n        inputs_dict = {}\n\n        try:\n            self.sr = SourceReader(arg, use_blender=True, inputs=inputs)\n            self.sr.unlink()\n            self.candidates = self.sr.renderables()\n            #bpy.data.scenes[0].frame_start = 0\n\n            from coldtype.tool import parse_inputs\n            inputs_dict = parse_inputs(self.sr.inputs, { \"quit\": [False, bool] }, positional=False, ui=None)\n\n            bpy.app.handlers.frame_change_pre.clear()\n\n            self.current_frame = bpy.context.scene.frame_current\n            animation_found = self.render_current_frame(statics=True)\n            \n            if not animation_found:\n                print(f\"ran {arg}\")\n                if inputs_dict.get(\"quit\"):\n                    bpy.ops.wm.quit_blender()\n                return\n\n            def _frame_update_handler(scene):\n                if scene.frame_current != self.current_frame:\n                    self.current_frame = scene.frame_current\n                    self.render_current_frame(statics=False)\n            \n            bpy.app.handlers.frame_change_pre.append(_frame_update_handler)\n        \n        except Exception as e:\n            self.current_frame = -1\n            bpy.app.handlers.frame_change_pre.clear()\n            stack = traceback.format_exc()\n            print(\"---\"*10)\n            print(stack)\n        \n        print(f\"ran {arg}\")\n        \n        if inputs_dict.get(\"quit\"):\n            bpy.ops.wm.quit_blender()\n\n    def modal(self, context, event):\n        if event.type == 'TIMER':\n            \n            for dr in self._delayed_runnables:\n                dr.run()\n            \n            self._delayed_runnables = []\n\n            # if self._should_start_playing:\n            #     if not bpy.context.screen.is_animation_playing:\n            #         bpy.ops.screen.animation_play()\n            #     self._should_start_playing = False\n\n            if bpy.app.driver_namespace.get(\"_coldtype_needs_rerender\", False):\n                bpy.app.driver_namespace[\"_coldtype_needs_rerender\"] = False\n                self.render_current_frame(statics=False)\n\n            if not bpy.context.screen.is_animation_playing:\n                self.persisted = persist_sequence(self.persisted)\n\n            if not self.file.exists():\n                return {'PASS_THROUGH'}\n            \n            for line in self.file.read_text().splitlines():\n                #print(line)\n                try:\n                    line = line.rstrip(\"\\n\")\n                    start, kwargs = [t.strip() for t in line.split(\";\")]\n                    kwargs = eval(kwargs)\n                    cmd, arg = start.split(\",\")\n                    if cmd == \"import\":\n                        self.reimport(arg, kwargs)\n                    elif cmd == \"play_preview\":\n                        bpy.ops.screen.animation_play()\n                    elif cmd == \"frame_offset\":\n                        bpy.ops.screen.frame_offset(delta=int(arg))\n                    elif cmd == \"refresh_sequencer\":\n                        bpy.ops.sequencer.refresh_all()\n                        for k, v in bpy.data.images.items():\n                            print(\"RELOAD\", k, v)\n                            v.reload()\n                    elif cmd == \"refresh_sequencer_and_image\":\n                        bpy.ops.sequencer.refresh_all()\n                        for k, v in bpy.data.images.items():\n                            if \"_last_render.png\" in k:\n                                v.reload()\n                    elif cmd == 'cancel':\n                        self.cancel(context)\n                    else:\n                        print('unknown request=%s arg=%s' % (cmd,arg))\n                except Exception as e:\n                    print(\">>>>>>>>>>>>>>>>>\", line)\n                    print(\"Failed to read command file:\", e)\n            \n            if self.file.exists():\n                self.file.unlink()\n\n        return {'PASS_THROUGH'}\n\n    def execute(self, context):\n        ccf = bpy.app.driver_namespace.get(\"_coldtype_command_output_file\")\n        self.file = Path(ccf)\n\n        wm = context.window_manager\n        self._timer = wm.event_timer_add(0.25, window=context.window)\n        wm.modal_handler_add(self)\n\n        return {'RUNNING_MODAL'}\n\n    def cancel(self, context):\n        wm = context.window_manager\n        wm.event_timer_remove(self._timer)\n        print('timer removed')\n\ndef register_watcher():\n    bpy.utils.register_class(ColdtypeWatchingOperator)\n\ndef unregister_watcher():\n    bpy.utils.unregister_class(ColdtypeWatchingOperator)\n\ndef watch(command_file):\n    input_file = command_file.replace(\".txt\", \"_input.json\")\n    bpy.app.driver_namespace[\"_coldtype_command_output_file\"] = command_file\n    bpy.app.driver_namespace[\"_coldtype_command_input_file\"] = input_file\n    \n    register_watcher()\n    bpy.ops.wm.coldtype_watching_operator()\n    \n    add_3d_panel()\n    add_2d_panel()\n\n    print(\"...blender waiting for coldtype...\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/capture/__init__.py",
    "content": "try:\n    import cv2\nexcept ImportError:\n    raise Exception(\"pip install opencv-python\")\n\ntry:\n    import numpy as np\nexcept ImportError:\n    pass\n\nfrom coldtype.img.skiaimage import skia, SkiaImage\n\ndef read_frame(cam):\n    _, frame = cam.read()\n    r_channel, g_channel, b_channel = cv2.split(frame)\n    alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 255\n    img_BGRA = cv2.merge((b_channel, g_channel, r_channel, alpha_channel))\n    return SkiaImage(skia.Image.fromarray(img_BGRA))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/color/__init__.py",
    "content": "from random import random\nfrom coldtype.color.html import NAMED_COLORS\nfrom coldtype.interpolation import norm\n\ntry:\n    import skia\nexcept ImportError:\n    skia = None\n\ntry:\n    from fontTools.ttLib.tables.C_P_A_L_ import Color as FTCPALColor\nexcept ImportError:\n    FTCPALColor = None\n\n\ndef norm(value, start, stop):\n    return start + (stop-start) * value\n\ndef lerp(start, stop, amt):\n    return float(amt-start) / float(stop-start)\n\n\n# inspired by https://github.com/xav/Grapefruit/blob/master/grapefruit.py\n# but more shorthand-oriented\n\n\ndef hue2rgb(n1, n2=None, h=None):\n    h %= 6.0\n    if h < 1.0:\n        return n1 + ((n2-n1) * h)\n    if h < 3.0:\n        return n2\n    if h < 4.0:\n        return n1 + ((n2-n1) * (4.0 - h))\n    return n1\n\n\ndef hsl_to_rgb(h, s=0, l=0):\n    if s == 0:\n        return (l, l, l)\n    if l < 0.5:\n        n2 = l * (1.0 + s)\n    else:\n        n2 = l+s - (l*s)\n    n1 = (2.0 * l) - n2\n    h /= 60.0\n    r = hue2rgb(n1, n2, h + 2)\n    g = hue2rgb(n1, n2, h)\n    b = hue2rgb(n1, n2, h - 2)\n    return (r, g, b)\n\n\ndef rgb_to_hsl(r, g=None, b=None):\n    minVal = min(r, g, b)\n    maxVal = max(r, g, b)\n\n    l = (maxVal + minVal) / 2.0\n    if minVal == maxVal:\n        return (0.0, 0.0, l)\n\n    d = maxVal - minVal\n\n    if l < 0.5:\n        s = d / (maxVal + minVal)\n    else:\n        s = d / (2.0 - maxVal - minVal)\n\n    dr, dg, db = [(maxVal-val) / d for val in (r, g, b)]\n\n    if r == maxVal:\n        h = db - dg\n    elif g == maxVal:\n        h = 2.0 + dr - db\n    else:\n        h = 4.0 + dg - dr\n\n    h = (h*60.0) % 360.0\n    return (h, s, l)\n\n\nclass Color():\n    def __init__(self, *values):\n        r, g, b = [float(v) for v in values[:3]]\n        self.r = float(values[0])\n        self.g = float(values[1])\n        self.b = float(values[2])\n        if len(values) > 3:\n            self.a = float(values[3])\n        else:\n            self.a = 1\n        h, s, l = rgb_to_hsl(r, g, b)\n        self.h = h\n        self.hp = h/360\n        self.s = s\n        self.l = l\n        self.html = self.to_html()\n\n        self.src = None\n    \n    def __eq__(self, other):\n        if isinstance(other, Color):\n            return self.r == other.r and self.g == other.g and self.b == other.b and self.a == other.a\n        else:\n            return False\n    \n    def __hash__(self):\n        return hash((self.r, self.g, self.b, self.a))\n    \n    def to_code(self):\n        if self.a == 1:\n            if self.s == 0:\n                return f\"bw({self.l})\"\n        elif self.a < 1:\n            if self.s == 0:\n                return f\"bw({self.l}, {self.a})\"\n        \n        return f\"hsl({round(self.h/360.0, 2)}, {round(self.s, 2)}, {round(self.l, 2)}, {round(self.a, 2)})\"\n\n    def with_alpha(self, alpha):\n        return Color(self.r, self.g, self.b, alpha)\n    \n    a = with_alpha\n\n    def ints(self):\n        return [self.r*255, self.g*255, self.b*255, self.a]\n    \n    def __getitem__(self, index):\n        return [self.r, self.g, self.b, self.a][index]\n\n    def from_rgb(r, g, b, a=1):\n        return Color(r, g, b, a)\n\n    def from_html(html, a=1):\n        html = html.strip().lower()\n        if html == \"r\":\n            return Color(1,0,0)\n        elif html == \"g\":\n            return Color(0,1,0)\n        elif html == \"b\":\n            return Color(0,0,1)\n        elif html[0] == '#':\n            html = html[1:]\n        elif html in NAMED_COLORS:\n            html = NAMED_COLORS[html][1:]\n        if len(html) == 6:\n            rgb = html[:2], html[2:4], html[4:]\n        elif len(html) == 3:\n            rgb = ['%c%c' % (v, v) for v in html]\n        else:\n            raise ValueError(\"input #%s is not in #RRGGBB format\" % html)\n        return Color(*[(int(n, 16) / 255.0) for n in rgb], a)\n    \n    def to_html(self):\n        return '#%02x%02x%02x' % tuple((min(round(v*255), 255) for v in (self.r, self.g, self.b)))\n    \n    def lighter(self, level):\n        return Color.from_hsl(self.h, self.s, min(self.l + level, 1), self.a)\n    \n    def desaturate(self, level):\n        return Color.from_hsl(self.h, max(self.s - level, 0), self.l, self.a)\n    \n    def saturate(self, level):\n        return Color.from_hsl(self.h, min(self.s + level, 1), self.l, self.a)\n    \n    def darker(self, level):\n        return Color.from_hsl(self.h, self.s, max(self.l - level, 0), self.a)\n    \n    def adjust(self, level):\n        return self.lighter(level)\n    \n    adj = adjust\n    \n    def invert(self):\n        newR = 1.0 - self.r\n        newG = 1.0 - self.g\n        newB = 1.0 - self.b\n        return Color.from_rgb(newR, newG, newB, self.a)\n\n    def from_hsl(h, s, l, a=1):\n        r, g, b = hsl_to_rgb(h, s, l)\n        c = Color(r, g, b, a)\n        c.src = \"from_hsl\"\n        return c\n    \n    def rgba(self):\n        return self.r, self.g, self.b, self.a\n    \n    def interp(self, v, other):\n        return self.hsl_interp(v, other)\n    \n    def hsl_interp(self, v, other):\n        return hsl(norm(v, self.h, other.h)/360.0, norm(v, self.s, other.s), norm(v, self.l, other.l), norm(v, self.a, other.a))\n    \n    def rgb_interp(self, v, other):\n        return rgb(norm(v, self.r, other.r), norm(v, self.g, other.g), norm(v, self.b, other.b), norm(v, self.a, other.a))\n    \n    # def __str__(self):\n    #     return \"<Color:rgb({:.1f},{:.1f},{:.1f})/a={:.1f}>\".format(self.r, self.g, self.b, self.a)\n    \n    def __repr__(self):\n        return \"<Color:({:0.2f},{:0.2f},{:0.2f})/({:0.2f},{:0.2f},{:0.2f})a={:0.2f}/>\".format(self.r, self.g, self.b, self.h/360, self.s, self.l, self.a)\n    \n    def skia(self):\n        if skia:\n            return skia.Color4f(self.r, self.g, self.b, self.a)\n        else:\n            raise Exception(\"Skia installation not found\")\n\n\nclass Theme():\n    def __init__(self, default=None, **kwargs):\n        self.colors = {}\n        if default is not None:\n            self.colors[\"default\"] = normalize_color(default)\n        for k, v in kwargs.items():\n            self.colors[k] = normalize_color(v)\n    \n    def __getitem__(self, index):\n        if isinstance(index, int):\n            return list(self.colors.values())[index]\n        else:\n            return self.colors.get(index)\n        \n    def __setitem__(self, key, value):\n        self.colors[key] = value\n        \n    def get(self, key, default=None):\n        return self.colors.get(key, self.colors.get(\"default\", default))\n    \n    def __len__(self):\n        return len(self.colors.values())\n    \n    def __repr__(self):\n        return f\"Theme(colors:{len(self.colors.values())})\"\n    \n    def with_alpha(self, a):\n        if isinstance(a, float) or isinstance(a, int):\n            return Theme(**{k:v.with_alpha(a) for k,v in self.colors.items()})\n        else:\n            return Theme(**{k:v.with_alpha(a[i]) for i,(k,v) in enumerate(self.colors.items())})\n    \n    def adjust(self, a):\n        if isinstance(a, float) or isinstance(a, int):\n            return Theme(**{k:v.lighter(a) for k,v in self.colors.items()})\n        else:\n            return Theme(**{k:v.lighter(a[i]) for i,(k,v) in enumerate(self.colors.items())})\n        \n    a = with_alpha\n    adj = adjust\n\n\ndef lighten_max(color, maxLightness=0.55):\n    return Color.from_hsl(color.h, color.s, max(maxLightness, color.l))\n\n\ndef color_var(*rgba):\n    c = [random() if x == -1 or x == \"random\" or x == \"rand\" or x == \"R\" else x for x in rgba]\n    if len(c) == 1:\n        return Color.from_rgb(c[0], c[0], c[0])\n    elif len(c) == 2:\n        return Color.from_rgb(c[0], c[0], c[0], c[1])\n    elif len(c) == 3:\n        return Color.from_rgb(c[0], c[1], c[2])\n    elif len(c) == 4:\n        return Color.from_rgb(c[0], c[1], c[2], c[3])\n\n\ndef hex_to_tuple(h):\n    return tuple([c/255 for c in (h.r, h.g, h.b, h.a)])\n\n\ndef find_random(v):\n    from random import randint\n    \n    if isinstance(v, str):\n        if v == \"random\" or v == \"r\":\n            return random()\n        elif v.startswith(\"r\"):\n            v = v[1:]\n            if \"-\" in v:\n                limits = [float(x.strip()) for x in v.split(\"-\")]\n                return random() * (limits[1]-limits[0]) + limits[0]\n            elif \",\" in v:\n                options = [float(x.strip()) for x in v.split(\",\")]\n                return options[randint(0, len(options))]\n    try:\n        return float(v)\n    except:\n        return v\n\n\ndef normalize_color(v):\n    if v == -1:\n        return Color.from_rgb(0,0,0,0)\n    if v is None:\n        return Color.from_rgb(0,0,0,0)\n    elif isinstance(v, Color):\n        return v\n    \n    try:\n        if isinstance(v[0], Color):\n            return v[0]\n    except:\n        pass\n    \n    if isinstance(v, Gradient):\n        return v\n    elif isinstance(v, float) or isinstance(v, int):\n        return Color.from_rgb(v, v, v)\n    elif FTCPALColor and isinstance(v, FTCPALColor):\n        return Color.from_rgb(v.red/255, v.green/255, v.blue/255, v.alpha/255)\n    elif isinstance(v, str):\n        if v == \"random\" or v == -1:\n            return Color.from_rgb(random(), random(), random())\n        elif v == \"none\":\n            return Color.from_rgb(0,0,0,0)\n        else:\n            return Color.from_html(v)\n    else:\n        if len(v) == 1:\n            if v[0] == -1:\n                return Color.from_rgb(0,0,0,0)\n            if v[0] == \"random\":\n                return Color.from_rgb(random(), random(), random(), 1)\n            if v[0] == None:\n                return Color.from_rgb(0,0,0,0)\n            elif isinstance(v[0], str):\n                return Color.from_html(v[0])\n            elif isinstance(v[0], Gradient):\n                return v[0]\n            else:\n                try:\n                    iter(v[0])\n                    return normalize_color(v[0])\n                except TypeError:\n                    return Color.from_rgb(v[0], v[0], v[0])\n        elif len(v) == 2:\n            if v[0] == \"random\" or v[0] == -1:\n                return Color.from_rgb(random(), random(), random(), float(v[1]))\n            elif isinstance(v[0], str):\n                return Color.from_html(v[0]).with_alpha(v[1])\n            else:\n                c = Color.from_rgb(v[0], v[0], v[0], v[1])\n                return c\n        else:\n            if isinstance(v[0], complex):\n                vs = [find_random(x) for x in v]\n                return Color.from_hsl(v[0].imag*360, *vs[1:])\n            if isinstance(v[0], str) and v[0].startswith(\"h\"):\n                v = list(v)\n                v[0] = v[0][1:]\n                vs = [find_random(x) for x in v]\n                return Color.from_hsl(vs[0]*360, *vs[1:])\n            else:\n                vs = [random() if _v == \"random\" else _v for _v in v]\n                return Color.from_rgb(*vs)\n\n\ndef hsl(h, s=0.5, l=0.5, a=1):\n    return Color.from_hsl(h*360, s, l, a)\n\ndef hsl_(hsla):\n    return hsl(*hsla)\n\ndef hsl360(h, s=50, l=50, a=1):\n    return hsl(h/360, s/100, l/100, a)\n\ndef rgb(r, g, b, a=1):\n    return Color.from_rgb(r, g, b, a)\n\ndef rgb_(rgba):\n    return hsl(*rgba)\n\ndef rgb255(r, g, b, a=1):\n    return rgb(r/255, g/255, b/255, a)\n\ndef bw(c, a=1):\n    return Color.from_rgb(c, c, c, a)\n\n\nclass Gradient():\n    def __init__(self, *stops):\n        self.stops = []\n        for c, p in stops:\n            self.addStop(c, p)\n    \n    def addStop(self, color, point):\n        self.stops.append([normalize_color(color), point])\n    \n    def Vertical(rect, a, b):\n        return Gradient([a, rect.point(\"N\")], [b, rect.point(\"S\")])\n    \n    def Horizontal(rect, a, b):\n        return Gradient([a, rect.point(\"W\")], [b, rect.point(\"E\")])\n    \n    def Random(rect, opacity=0.5):\n        return Gradient([(\"random\", opacity), rect.point(\"SE\")], [(\"random\", opacity), rect.point(\"NW\")])\n    \n    V = Vertical\n    H = Horizontal\n    R = Random"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/color/html.py",
    "content": "NAMED_COLORS = {\n    'aliceblue':            '#f0f8ff',\n    'antiquewhite':         '#faebd7',\n    'aqua':                 '#00ffff',\n    'aquamarine':           '#7fffd4',\n    'azure':                '#f0ffff',\n    'beige':                '#f5f5dc',\n    'bisque':               '#ffe4c4',\n    'black':                '#000000',\n    'blanchedalmond':       '#ffebcd',\n    'blue':                 '#0000ff',\n    'blueviolet':           '#8a2be2',\n    'brown':                '#a52a2a',\n    'burlywood':            '#deb887',\n    'cadetblue':            '#5f9ea0',\n    'chartreuse':           '#7fff00',\n    'chocolate':            '#d2691e',\n    'coral':                '#ff7f50',\n    'cornflowerblue':       '#6495ed',\n    'cornsilk':             '#fff8dc',\n    'crimson':              '#dc143c',\n    'cyan':                 '#00ffff',\n    'darkblue':             '#00008b',\n    'darkcyan':             '#008b8b',\n    'darkgoldenrod':        '#b8860b',\n    'darkgray':             '#a9a9a9',\n    'darkgrey':             '#a9a9a9',\n    'darkgreen':            '#006400',\n    'darkkhaki':            '#bdb76b',\n    'darkmagenta':          '#8b008b',\n    'darkolivegreen':       '#556b2f',\n    'darkorange':           '#ff8c00',\n    'darkorchid':           '#9932cc',\n    'darkred':              '#8b0000',\n    'darksalmon':           '#e9967a',\n    'darkseagreen':         '#8fbc8f',\n    'darkslateblue':        '#483d8b',\n    'darkslategray':        '#2f4f4f',\n    'darkslategrey':        '#2f4f4f',\n    'darkturquoise':        '#00ced1',\n    'darkviolet':           '#9400d3',\n    'deeppink':             '#ff1493',\n    'deepskyblue':          '#00bfff',\n    'dimgray':              '#696969',\n    'dimgrey':              '#696969',\n    'dodgerblue':           '#1e90ff',\n    'firebrick':            '#b22222',\n    'floralwhite':          '#fffaf0',\n    'forestgreen':          '#228b22',\n    'fuchsia':              '#ff00ff',\n    'gainsboro':            '#dcdcdc',\n    'ghostwhite':           '#f8f8ff',\n    'gold':                 '#ffd700',\n    'goldenrod':            '#daa520',\n    'gray':                 '#808080',\n    'grey':                 '#808080',\n    'green':                '#008000',\n    'greenyellow':          '#adff2f',\n    'honeydew':             '#f0fff0',\n    'hotpink':              '#ff69b4',\n    'indianred':            '#cd5c5c',\n    'indigo':               '#4b0082',\n    'ivory':                '#fffff0',\n    'khaki':                '#f0e68c',\n    'lavender':             '#e6e6fa',\n    'lavenderblush':        '#fff0f5',\n    'lawngreen':            '#7cfc00',\n    'lemonchiffon':         '#fffacd',\n    'lightblue':            '#add8e6',\n    'lightcoral':           '#f08080',\n    'lightcyan':            '#e0ffff',\n    'lightgoldenrodyellow': '#fafad2',\n    'lightgreen':           '#90ee90',\n    'lightgray':            '#d3d3d3',\n    'lightgrey':            '#d3d3d3',\n    'lightpink':            '#ffb6c1',\n    'lightsalmon':          '#ffa07a',\n    'lightseagreen':        '#20b2aa',\n    'lightskyblue':         '#87cefa',\n    'lightslategray':       '#778899',\n    'lightslategrey':       '#778899',\n    'lightsteelblue':       '#b0c4de',\n    'lightyellow':          '#ffffe0',\n    'lime':                 '#00ff00',\n    'limegreen':            '#32cd32',\n    'linen':                '#faf0e6',\n    'magenta':              '#ff00ff',\n    'maroon':               '#800000',\n    'mediumaquamarine':     '#66cdaa',\n    'mediumblue':           '#0000cd',\n    'mediumorchid':         '#ba55d3',\n    'mediumpurple':         '#9370db',\n    'mediumseagreen':       '#3cb371',\n    'mediumslateblue':      '#7b68ee',\n    'mediumspringgreen':    '#00fa9a',\n    'mediumturquoise':      '#48d1cc',\n    'mediumvioletred':      '#c71585',\n    'midnightblue':         '#191970',\n    'mintcream':            '#f5fffa',\n    'mistyrose':            '#ffe4e1',\n    'moccasin':             '#ffe4b5',\n    'navajowhite':          '#ffdead',\n    'navy':                 '#000080',\n    'oldlace':              '#fdf5e6',\n    'olive':                '#808000',\n    'olivedrab':            '#6b8e23',\n    'orange':               '#ffa500',\n    'orangered':            '#ff4500',\n    'orchid':               '#da70d6',\n    'palegoldenrod':        '#eee8aa',\n    'palegreen':            '#98fb98',\n    'paleturquoise':        '#afeeee',\n    'palevioletred':        '#db7093',\n    'papayawhip':           '#ffefd5',\n    'peachpuff':            '#ffdab9',\n    'peru':                 '#cd853f',\n    'pink':                 '#ffc0cb',\n    'plum':                 '#dda0dd',\n    'powderblue':           '#b0e0e6',\n    'purple':               '#800080',\n    'red':                  '#ff0000',\n    'rosybrown':            '#bc8f8f',\n    'royalblue':            '#4169e1',\n    'saddlebrown':          '#8b4513',\n    'salmon':               '#fa8072',\n    'sandybrown':           '#f4a460',\n    'seagreen':             '#2e8b57',\n    'seashell':             '#fff5ee',\n    'sienna':               '#a0522d',\n    'silver':               '#c0c0c0',\n    'skyblue':              '#87ceeb',\n    'slateblue':            '#6a5acd',\n    'slategray':            '#708090',\n    'slategrey':            '#708090',\n    'snow':                 '#fffafa',\n    'springgreen':          '#00ff7f',\n    'steelblue':            '#4682b4',\n    'tan':                  '#d2b48c',\n    'teal':                 '#008080',\n    'thistle':              '#d8bfd8',\n    'tomato':               '#ff6347',\n    'turquoise':            '#40e0d0',\n    'violet':               '#ee82ee',\n    'wheat':                '#f5deb3',\n    'white':                '#ffffff',\n    'whitesmoke':           '#f5f5f5',\n    'yellow':               '#ffff00',\n    'yellowgreen':          '#9acd32'\n}\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/css.py",
    "content": "from coldtype.geometry.rect import Rect\nfrom coldtype.color import hsl\nfrom coldtype.runon.path import P\n\n\ndef cubicBezier(x1, y1, x2, y2):\n    p = P()\n    p.moveTo((0, 0))\n    p.curveTo(\n        (x1*1000, y1*1000),\n        (x2*1000, y2*1000),\n        (1000, 1000))\n    p.endPath()\n    p.data(frame=Rect(1000, 1000))\n    return p.fssw(-1, hsl(0.6), 2)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/blank.py",
    "content": "from coldtype import *\n\nco = Font.Cacheable(__sibling__(\"ColdtypeObviously-VF.ttf\"))\nmu = Font.Cacheable(__sibling__(\"MutatorSans.ttf\"))\n\n@renderable((500, 500), bg=hsl(0.75, 1, 0.7))\ndef render(r):\n    circle = (P().oval(r.inset(70)).reverse())\n    return P(\n        (StSt(\"No renderables found in source file ... \".upper(),\n            mu, 50, wdth=0.19, wght=0.5)\n            .f(0, 0.5)\n            .distribute_on_path(circle.rotate(-150))),\n        (StSt(\"COLD\\nTYPE\",\n            co, 130, r=1, wdth=0.5, tu=50)\n            .f(hsl(0.07, 1, 0.8))\n            .align(r)))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/boiler.py",
    "content": "from coldtype import *\n\n@animation()\ndef scratch(f:Frame):\n    return (P()\n        .rect(f.a.r.inset(150))\n        .rotate(f.e(\"ceio\", 1, rng=(-0.5, 0.5)))\n        .f(hsl(0.65)))\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/boiler_renderable.py",
    "content": "from coldtype import *\n\n@renderable()\ndef scratch(r:Rect):\n    return (P()\n        .rect(r.inset(150)))\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/demo.py",
    "content": "from coldtype import *\n\nco = Font.ColdtypeObviously()\n\n@animation((800, 200), timeline=60, bg=1)\ndef demo(f):\n    return (Glyphwise(\"COLDTYPE\", lambda x:\n        Style(co, 150\n            , wdth=f.adj(-x.i*15).e(\"eeo\", 1)))\n        .align(f.a.r)\n        .f(0))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/demoblender.py",
    "content": "from coldtype import *\nfrom coldtype.blender import *\n\n@b3d_runnable(playback=B3DPlayback.KeepPlaying)\ndef prerun(bw:BpyWorld):\n    bw.delete_previous(materials=False)\n\n@b3d_animation(timeline=60, center=(0, 1), upright=1)\ndef varfont2(f):\n    return (P(\n        Glyphwise(\"COLD\\nTYPE\", lambda g:\n            Style(Font.ColdtypeObviously(), 375\n                , wdth=f.adj(-g.i*5).e(\"seio\", 1, rng=(0.98, 0))))\n            .xalign(f.a.r)\n            .track(50, v=1)\n            .align(f.a.r)\n            .mapv(lambda i, p: p\n                .ch(b3d(lambda bp: bp\n                    .extrude(f.adj(-i*5)\n                        .e(\"seio\", 1, rng=(0.1, 1.75))))))))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/docstrings.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\nfrom runpy import run_path\n\nimport inspect\n\nif __as_config__:\n    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(__inputs__, dict(\n    path=[None, Path, \"Must provide file path\"]))\n\nres = run_path(args[\"path\"])\n_renderables = []\n\nfor k, v in res.items():\n    docstring = inspect.getdoc(v)\n    if docstring and \"---\\n@example\" in docstring:\n       _renderables.append(exec(\"from coldtype import *;from coldtype.renderable.renderable import example\\n\" + docstring.split(\"---\")[-1]))\n\n@renderable((800, 20), watch=[args[\"path\"]])\ndef updater(r):\n    return None"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/gifski.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\nfrom coldtype.img.skiaimage import SkiaImage\nfrom coldtype.renderable.animation import raw_gifski\n\nif __as_config__:\n    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(__inputs__, dict(\n    path=[None, str, \"Must provide path to frames\"],\n    fps=[18, float],\n    output_folder=[None, str],\n    name=[None, str],\n    ))\n\ntemplate_path = Path(args[\"path\"]).absolute()\nif template_path.exists() and template_path.is_dir():\n    template = str(template_path) + \"/\" + \"{:04d}.png\"\nelse:\n    template = str(template_path) + \"{:04d}.png\"\n\nimg0_path = ººsiblingºº(template.format(0))\nprint(img0_path)\n\nimg0 = SkiaImage(img0_path)\n\nname = args[\"name\"]\nif name is None:\n    name = img0_path.parent.stem\n\ncount = len(list(img0_path.parent.glob(\"*.png\")))\n\noutput_folder = args[\"output_folder\"]\nif output_folder is None:\n    output_folder = img0_path.parent.parent\n\noutput_folder = Path(output_folder)\noutput_folder.mkdir(exist_ok=True, parents=True)\n\n#print(args)\nprint(\">\", name)\n\n@animation(img0.rect(), tl=Timeline(count, fps=args[\"fps\"]), name=name)\ndef gifmaker(f):\n    return (SkiaImage(ººsiblingºº(template.format(f.i))))\n\n@renderable(Rect(img0.rect().w, 70), bg=None)\ndef instructions(r):\n    return (StSt(str(args[\"fps\"]) + \" fps / [r] (release) for gif\", Font.JBMono(), 32, wght=1)\n        .align(r)\n        .f(0))\n\ndef release(_):\n    raw_frames = []\n    for fi in range(gifmaker.timeline.start, gifmaker.timeline.end):\n        raw_frames.append(template.format(fi))\n        if not Path(raw_frames[-1]).exists():\n            raise Exception(\"frame does not exist\", raw_frames[-1])\n    \n    raw_gifski(gifmaker.rect.w, gifmaker.timeline.fps, raw_frames, output_folder / (name + \".gif\"), open=True)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/demo/glfw34.py",
    "content": "from coldtype import *\nimport zipfile, requests, io, subprocess, sys, shutil\n\nfile = Path(ººFILEºº)\nzip_filename = \"glfw-3.4.bin.MACOS\"\nzip_src = f\"https://github.com/glfw/glfw/releases/download/3.4/{zip_filename}.zip\"\nzip_dst = file.parent\n\n@renderable()\ndef glfw34(r):\n    if not (zip_dst / zip_filename).exists():\n        print(\"downloading...\")\n        r = requests.get(zip_src)\n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(zip_dst)\n\n    glfw_src = zip_dst / zip_filename\n    dylib_src = glfw_src / \"lib-universal/libglfw.3.dylib\"\n    print(dylib_src)\n    if dylib_src.exists():\n        print(\"yes\")\n    \n    vi = sys.version_info\n    dylib_dst = Path(sys.executable).parent.parent / f\"lib/python{vi.major}.{vi.minor}/site-packages/glfw/libglfw.3.dylib\"\n\n    if not dylib_dst.exists():\n        print(\"could not find glfw installation\")\n    else:\n        shutil.copyfile(dylib_src, dylib_dst)\n\n    # p1 = subprocess.Popen([\"which\", \"python\"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n    # out, err = p1.communicate()\n    # which_python = out.strip()\n    # p2 = subprocess.Popen([which_python, \"-c\", \"import sysconfig;print(sysconfig.get_config_var('installed_base'))\"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n    # out, err = p2.communicate()\n    # installed_base = out.strip()\n    # if isinstance(installed_base, bytes):\n    #     installed_base = installed_base.decode(\"utf-8\")\n    \n    # print(which_python, installed_base)\n\n    return None"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/drawbot.py",
    "content": "import contextlib\nimport drawBot as db\nfrom coldtype.runon.path import P\nfrom coldtype.pens.drawbotpen import DrawBotPen\nfrom coldtype.geometry import Point, Line, Rect\nfrom coldtype.text.reader import StyledString, Style, Font\nfrom coldtype.text.composer import StSt\nfrom coldtype.color import hsl, bw\nfrom coldtype.timing import Frame\nfrom pathlib import Path\n\nfrom coldtype.renderable.renderable import renderable, Action\nfrom coldtype.renderable.animation import animation, RenderPass\n\n# from coldtype.osutil import in_notebook\n# _in_notebook = in_notebook()\n\n# if _in_notebook:\n#     from coldtype.notebook import animation, renderable\n\ntry:\n    import drawBot as db\n    import AppKit\nexcept ImportError:\n    print(\"No DrawBot installed! `pip install git+https://github.com/typemytype/drawbot`\")\n    db = None\n\nclass drawbot_renderable(renderable):\n    def __init__(self, rect=(1080, 1080), scale=1, **kwargs):\n        if not db:\n            raise Exception(\"DrawBot not installed!\")\n        super().__init__(rect=Rect(rect).scale(scale), rasterizer=\"drawbot\", **kwargs)\n        self.self_rasterizing = True\n    \n    def normalize_result(self, pens):\n        return pens\n    \n    def run(self, render_pass, renderer_state):\n        from coldtype.pens.drawbotpen import DrawBotPen\n        use_pool = True\n        if use_pool:\n            pool = AppKit.NSAutoreleasePool.alloc().init()\n        try:\n            db.newDrawing()\n            if renderer_state and renderer_state.previewing:\n                ps = renderer_state.preview_scale\n                db.size(self.rect.w*ps, self.rect.h*ps)\n                db.scale(ps, ps)\n                if not renderer_state.renderer.source_reader.config.window_transparent:\n                    P().rect(self.rect).f(self.bg).cast(DrawBotPen).draw()\n            else:\n                db.size(self.rect.w, self.rect.h)\n                if self.render_bg:\n                    P().rect(self.rect).f(self.bg).cast(DrawBotPen).draw()\n            if self.rstate:\n                render_pass.fn(*render_pass.args, renderer_state)\n            else:\n                render_pass.fn(*render_pass.args)\n            result = None\n            if renderer_state and renderer_state.previewing:\n                previews = (render_pass.output_path.parent / \"_previews\")\n                previews.mkdir(exist_ok=True, parents=True)\n                preview_frame = previews / render_pass.output_path.name\n                db.saveImage(str(preview_frame))\n                result = preview_frame\n            else:\n                render_pass.output_path.parent.mkdir(exist_ok=True, parents=True)\n                db.saveImage(str(render_pass.output_path))\n                result = render_pass.output_path\n            db.endDrawing()\n        finally:\n            if use_pool:\n                del pool\n        return result\n    \n    def notebook_display(self, scale=0.5):\n        from base64 import b64encode\n        from IPython.display import display, HTML\n\n        for p in self.passes(Action.PreviewIndices, None):\n            self.run(p, None)\n            b64 = b64encode(p.output_path.read_bytes()).decode(\"utf-8\")\n            display(HTML(f\"<img width={self.rect.w*scale} src='data:image/png;base64,{b64}'/>\"))\n\n\nclass drawbot_animation(drawbot_renderable, animation):\n    def passes(self, action, renderer_state, indices=[]):\n        return animation.passes(self, action, renderer_state, indices)\n        if action in [\n            Action.RenderAll,\n            Action.RenderIndices,\n            Action.RenderWorkarea]:\n            frames = super().active_frames(action, renderer_state, indices)\n            passes = []\n            for i in frames:\n                p = RenderPass(self, action, i, [Frame(i, self)])\n                passes.append(p)\n            return passes\n        else:\n            return super().passes(action, renderer_state, indices)\n\n# deprecated alias\ndrawbot_script = drawbot_renderable\n\ndef dbdraw(p:P):\n    p.cast(DrawBotPen).draw()\n    return p\n\ndef dbdraw_plain(p:P):\n    p.cast(DrawBotPen).draw(attrs=False)\n    return p\n\ndef tobp(p:P):\n    bp = db.BezierPath()\n    p.replay(bp)\n    return bp\n\ndef dbdraw_with_filters(rect:Rect, filters):\n    def _draw_call(p:P):\n        p.cast(DrawBotPen).draw_with_filters(rect, filters)\n        return p\n    return _draw_call\n\ndef page_rect() -> Rect:\n    return Rect(db.width(), db.height())\n\n@contextlib.contextmanager\ndef new_page(r:Rect=Rect(1000, 1000)):\n    _r = Rect(r)\n    db.newPage(*_r.wh())\n    yield _r\n\n@contextlib.contextmanager\ndef new_drawing(rect:Rect=Rect(1000, 1000), count=1, save_to=None):\n    db.newDrawing()\n    for idx in range(0, count):\n        with new_page(rect) as r:\n            yield idx, r\n    if save_to:\n        db.saveImage(str(save_to))\n    db.endDrawing()\n\ndef pdfdoc(fn, path, frame_class=Frame):\n    db.newDrawing()\n    r = fn.rect\n    w, h = r.wh()\n    \n    if hasattr(fn, \"duration\"):\n        for idx in range(0, fn.duration):\n            print(f\"Saving page {idx}...\")\n            db.newPage(w, h)\n            if frame_class:\n                fn.func(frame_class(idx, fn))\n            else:\n                fn.func(r)\n    else:\n        db.newPage(w, h)\n        fn.func(r)\n    \n    pdf_path = Path(path)\n    pdf_path.parent.mkdir(exist_ok=True)\n    db.saveImage(str(pdf_path))\n    print(\"Saved pdf\", str(pdf_path))\n    db.endDrawing()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/chainable.py",
    "content": "\nclass Chainable():\n    def __init__(self, func) -> None:\n        self.func = func\n    \n    # def __or__(self, other):\n    #     print(\"L HELLO\")\n\n    # def __ror__(self, other):\n    #     print(\"R HELLO\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/diagram.py",
    "content": "from coldtype.runon.path import P\nfrom coldtype.geometry.rect import Rect, txt_to_edge\n\n\ndef arrowhead(pt, arrow, x=18, y=13):\n    ah = P().m(pt)\n    if arrow == \"←\":\n        ah.l(pt.o(x, y)).l(pt.o(x, -y)).t(-7, 0)\n    elif arrow == \"→\":\n        ah.l(pt.o(-x, y)).l(pt.o(-x, -y)).t(7, 0)\n    elif arrow == \"↓\":\n        ah.l(pt.o(-y, x)).l(pt.o(y, x)).t(0, -7)\n    elif arrow == \"↑\":\n        ah.l(pt.o(-y, -x)).l(pt.o(y, -x)).t(0, 7)\n    ah.cp().f(0)#.fssw(0, 1, 1.5)\n    return ah\n\n\ndef connection(a, b, spec=\"→←\"):\n    start = spec[0]\n    end = spec[1]\n    arrow = spec[2] if len(spec) > 2 else None\n    corner = spec[3] if len(spec) > 3 else None\n\n    src = a.ambit().point(start)\n    dst = b.ambit().point(end)\n    if src.x == dst.x or src.y == dst.y:\n        line = P().m(src).l(dst)\n    else:\n        corn = Rect.FromPoints(src, dst).point(corner)\n        line = P().m(src).l(corn).l(dst)\n    line.ep().fssw(-1, 0, 2)\n    lines = P()\n    lines.append(line)\n    if arrow is not None:\n        ar = dst #line.ambit().point(arrow)\n        lines.insert(0, arrowhead(ar, arrow))\n    return lines\n\n\ndef interconnect(spec=\"→←→\"):\n    def _interconnect(ps):\n        lines = P()\n        for idx, p in enumerate(ps[:-1]):\n            lines += connection(p, ps[idx+1], spec)\n        return ps.append(lines)\n    return _interconnect\n\n\ndef ujoin(a, b, side=\"→\", d=100, arrow=None):\n    a_pt = a.ambit().point(side)\n    b_pt = b.ambit().point(side)\n    ab = Rect.FromPoints(a_pt, b_pt).expand(d, txt_to_edge(side))\n    l = ab.edge(txt_to_edge(side))\n    \n    bar = P()\n    if side in \"←→\":\n        if a_pt.y < b_pt.y:\n            bar.m(a_pt).l(l.ps).l(l.pn).l(b_pt).ep()\n        else:\n            bar.m(b_pt).l(l.ps).l(l.pn).l(a_pt).ep()\n    \n    out = P()\n    if arrow:\n        if len(arrow) > 1:\n            a_arrow = arrow[0]\n            b_arrow = arrow[1]\n        else:\n            a_arrow, b_arrow = arrow, arrow\n        if a_arrow != \"-\":\n            out.insert(0, arrowhead(a_pt, a_arrow))\n        if b_arrow != \"-\":\n            out.insert(0, arrowhead(b_pt, b_arrow))\n    return out.append(bar.fssw(-1, 0, 2))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/motion.py",
    "content": "from noise import pnoise1\n\n\ndef filmjitter(doneness, base=0, speed=(10, 20), scale=(2, 3), octaves=16):\n    \"\"\"\n    An easy way to make something move in a way reminiscent of misregistered film\n    \"\"\"\n    def _filmjitter(pen):\n        nx = pnoise1(doneness*speed[0], base=base, octaves=octaves)\n        ny = pnoise1(doneness*speed[1], base=base+10, octaves=octaves)\n        return pen.translate(nx * scale[0], ny * scale[1])\n    return _filmjitter"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/shapes.py",
    "content": "import math\n\ndef sine(r, periods):\n    \"\"\"Sine-wave primitive\"\"\"\n    def _record(pen):\n        dp = type(pen)()\n        pw = r.w / periods\n        p1 = r.point(\"SW\")\n        end = r.point(\"SE\")\n        dp.moveTo(p1)\n        done = False\n        up = True\n        while not done:\n            h = r.h if up else -r.h\n            c1 = p1.offset(pw/2, 0)\n            c2 = p1.offset(pw/2, h)\n            p2 = p1.offset(pw, h)\n            dp.curveTo(c1, c2, p2)\n            p1 = p2\n            if p1.x >= end.x:\n                done = True\n            else:\n                done = False\n            up = not up\n        pen.record(dp)\n    return _record\n    \n\ndef standingwave(r, periods, direction=1):\n    \"\"\"Standing-wave primitive\"\"\"\n    def _record(pen):\n        dp = type(pen)()\n\n        blocks = r.subdivide(periods, \"minx\")\n        for idx, block in enumerate(blocks):\n            n, e, s, w = block.take(1, \"centery\").cardinals()\n            if idx == 0:\n                dp.moveTo(w)\n            if direction == 1:\n                if idx%2 == 0:\n                    dp.lineTo(n)\n                else:\n                    dp.lineTo(s)\n            else:\n                if idx%2 == 0:\n                    dp.lineTo(s)\n                else:\n                    dp.lineTo(n)\n            if idx == len(blocks) - 1:\n                dp.lineTo(e)\n        dp.endPath().smooth()\n        dp.value = dp.value[:-1]\n        dp.endPath()\n        pen.record(dp)\n    return _record\n\n\ndef polygon(sides, rect):\n    \"\"\"Polygon primitive; WIP\"\"\"\n    def _record(pen):\n        radius = rect.square().w / 2\n        c = rect.center()\n        one_segment = math.pi * 2 / sides\n        points = [(math.sin(one_segment * i) * radius, math.cos(one_segment * i) * radius) for i in range(sides)]\n        dp = type(pen)()\n        points.reverse()\n        dp.moveTo(points[0])\n        for p in points[1:]:\n            dp.lineTo(p)\n        dp.closePath()\n        dp.align(rect)\n        pen.record(dp)\n    return _record\n\n\ndef _lissajous_points(a, b, phase, radius, num_steps=340):\n    \"\"\"I believe originally by Just van Rossum, via Very Cool Studio\"\"\"\n    points = []\n    for i in range(num_steps):\n        angle = 2 * math.pi * i / num_steps\n        x = radius * math.sin(a * angle + phase)\n        y = -radius * math.sin(b * angle)\n        points.append((x, y))\n    return points\n\n\ndef lissajous(a, b, phase_t, radius, num_steps=340, autophase=True):\n    \"\"\"draw a lissajous curve on the pen, though you'll probably need to align it\"\"\"\n    def _lissajous(pen):\n        return (pen\n            .line(_lissajous_points(a, b,\n                2 * math.pi * phase_t if autophase else phase_t,\n                radius, num_steps))\n            .closePath())\n    return _lissajous"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/skia.py",
    "content": "from fontTools.pens.recordingPen import RecordingPen\nimport skia, tempfile, math\nfrom subprocess import run\nfrom functools import reduce\nfrom random import Random, randint\nfrom pathlib import Path\n\nfrom fontTools.svgLib import SVGPath\nfrom fontTools.misc.transform import Transform\n\nfrom coldtype.fx.chainable import Chainable\nfrom coldtype.color import normalize_color, bw\nfrom coldtype.img.blendmode import BlendMode\nfrom coldtype.runon.path import P\nfrom coldtype.pens.skiapen import SkiaPen\nfrom coldtype.geometry import Rect\n\nimport coldtype.skiashim as skiashim\n\nSKIA_CONTEXT = None\n\nclass Skfi():\n    @staticmethod\n    def contrast_cut(mp=127, w=5):\n        ct = bytearray(256)\n        for i in range(256):\n            if i < mp - w:\n                ct[i] = 0\n            elif i < mp:\n                ct[i] = int((255.0/2)*(1-(mp-i)/w))\n            elif i == mp:\n                ct[i] = 127\n            elif i < mp + w:\n                ct[i] = int(127+(255.0/2)*((i-mp)/w))\n            else:\n                ct[i] = 255\n        return ct\n\n    @staticmethod\n    def as_filter(lut, a=1, r=0, g=0, b=0):\n        args = [lut if x else None for x in [a, r, g, b]]\n        return skia.TableColorFilter.MakeARGB(*args)\n\n    @staticmethod\n    def compose(*filters):\n        # TODO check if ColorFilter or something else?\n        return reduce(lambda acc, el: skia.ColorFilters.Compose(el, acc) if acc else el, reversed(filters), None)\n\n    @staticmethod\n    def fill(color):\n        r, g, b, a = color\n        return skia.ColorFilters.Matrix([\n            0, 0, 0, 0, r,\n            0, 0, 0, 0, g,\n            0, 0, 0, 0, b,\n            0, 0, 0, a, 0,\n        ])\n\n    @staticmethod\n    def blur(blur):\n        try:\n            xblur, yblur = blur\n        except:\n            xblur, yblur = blur, blur\n\n        return skiashim.imageFilters_Blur(xblur, yblur)\n\n    @staticmethod\n    def improved_noise(e, xo=0, yo=0, xs=1, ys=1, base=1):\n        return skiashim.make_improved_noise(e, xo, yo, xs, ys, 0.015, 0.015, 3, base)\n    \n    # straight from the chromium source https://chromium.googlesource.com/chromium/blink/+/refs/heads/main/Source/platform/graphics/filters/FEColorMatrix.cpp\n\n    @staticmethod\n    def huerotate(hue):\n        cosHue = math.cos(hue * math.pi / 180);\n        sinHue = math.sin(hue * math.pi / 180);\n        matrix = [0 for _ in range(0, 20)]\n        matrix[0] = 0.213 + cosHue * 0.787 - sinHue * 0.213;\n        matrix[1] = 0.715 - cosHue * 0.715 - sinHue * 0.715;\n        matrix[2] = 0.072 - cosHue * 0.072 + sinHue * 0.928;\n        matrix[3] = matrix[4] = 0;\n        matrix[5] = 0.213 - cosHue * 0.213 + sinHue * 0.143;\n        matrix[6] = 0.715 + cosHue * 0.285 + sinHue * 0.140;\n        matrix[7] = 0.072 - cosHue * 0.072 - sinHue * 0.283;\n        matrix[8] = matrix[9] = 0;\n        matrix[10] = 0.213 - cosHue * 0.213 - sinHue * 0.787;\n        matrix[11] = 0.715 - cosHue * 0.715 + sinHue * 0.715;\n        matrix[12] = 0.072 + cosHue * 0.928 + sinHue * 0.072;\n        matrix[13] = matrix[14] = 0;\n        matrix[15] = matrix[16] = matrix[17] = 0;\n        matrix[18] = 1;\n        matrix[19] = 0;\n        return skia.ColorFilters.Matrix(matrix)\n    \n    @staticmethod\n    def saturate(s):\n        matrix = [0 for _ in range(0, 20)]\n        matrix[0] = 0.213 + 0.787 * s\n        matrix[1] = 0.715 - 0.715 * s\n        matrix[2] = 0.072 - 0.072 * s\n        matrix[3] = matrix[4] = 0\n        matrix[5] = 0.213 - 0.213 * s\n        matrix[6] = 0.715 + 0.285 * s\n        matrix[7] = 0.072 - 0.072 * s\n        matrix[8] = matrix[9] = 0\n        matrix[10] = 0.213 - 0.213 * s\n        matrix[11] = 0.715 - 0.715 * s\n        matrix[12] = 0.072 + 0.928 * s\n        matrix[13] = matrix[14] = 0\n        matrix[15] = matrix[16] = matrix[17] = 0\n        matrix[18] = 1\n        matrix[19] = 0\n        return skia.ColorFilters.Matrix(matrix)\n    \n    @staticmethod\n    def temp(t):\n        return skia.ColorFilters.Matrix([\n            1+t, 0, 0, 0, 0,\n            0, 1, 0, 0, 0,\n            0, 0, 1-t, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def tone(t):\n        return skia.ColorFilters.Matrix([\n            1+t, 0, 0, 0, 0,\n            0, 1-t, 0, 0, 0,\n            0, 0, 1+t, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def expose(t):\n        return skia.ColorFilters.Matrix([\n            t, 0, 0, 0, 0,\n            0, t, 0, 0, 0,\n            0, 0, t, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def red():\n        return skia.ColorFilters.Matrix([\n            1, 0, 0, 0, 0,\n            1, 0, 0, 0, 0,\n            1, 0, 0, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def green():\n        return skia.ColorFilters.Matrix([\n            0, 1, 0, 0, 0,\n            0, 1, 0, 0, 0,\n            0, 1, 0, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def blue():\n        return skia.ColorFilters.Matrix([\n            0, 0, 1, 0, 0,\n            0, 0, 1, 0, 0,\n            0, 0, 1, 0, 0,\n            0, 0, 0, 1, 0,\n        ])\n    \n    @staticmethod\n    def invert():\n        return skia.ColorFilters.Matrix([\n            -1,  0,  0,  0,  1,  # Red\n            0, -1,  0,  0,  1,  # Green\n            0,  0, -1,  0,  1,  # Blue\n            0,  0,  0,  1,  0   # Alpha (unchanged)\n        ])\n\n# CHAINABLES\n\ndef spackle(xo=None, yo=None,\n    xs=0.85, ys=0.85, base=None,\n    cut=240, cutw=5, fill=bw(1)\n    ):\n    r1 = Random()\n    r1.seed(0)\n\n    if not xo:\n        xo = r1.randint(-500, 500)\n    if not yo:\n        yo = r1.randint(-500, 500)\n    if base is None:\n        base = randint(0, 5000)\n    \n    def _spackle(pen):\n        return (pen.f(1)\n            .attr(skp=dict(\n                Shader=(Skfi.improved_noise(1,\n                    xo=xo, yo=yo, xs=xs, ys=ys, base=base)\n                    .makeWithColorFilter(Skfi.compose(\n                        Skfi.fill(fill),\n                        Skfi.as_filter(Skfi.contrast_cut(cut, cutw)),\n                        skia.LumaColorFilter.Make()))))))\n    return _spackle\n\n\ndef fill(c):\n    \"\"\"Chainable function for filling everything in pen/image-on-pen with a single color\"\"\"\n    c = normalize_color(c)\n    def _fill(pen):\n        return pen.attr(skp=dict(\n            ColorFilter=Skfi.fill(c)))\n    return _fill\n\n\ndef blur(x):\n    \"\"\"Chainable function for blurring everything in pen/image-on-pen\"\"\"\n    def _blur(pen):\n        return pen.attr(skp=dict(\n            ImageFilter=Skfi.blur(x)))\n    return _blur\n\n\ntry:\n    import potrace as potracer\n    turn_policy = potracer.POTRACE_TURNPOLICY_MINORITY\nexcept ImportError:\n    turn_policy = None\n    pass\n\n\ndef potrace(rect, invert=True,\n    turdsize=2, # 0-infinity\n    turnpolicy=turn_policy,\n    alphamax=1.0, #  0.0 (polygon) to 1.3333 (no corners)\n    opticurve=1,\n    opttolerance=0.2, # 0 -1\n    ):\n    \"\"\"Chainable function for tracing a pen/image-on-pen ; can be combined with a previous call to phototype for better control of blurring/edges\"\"\"\n    from PIL import Image\n\n    def _potrace(pen):\n        if invert:\n            pen = pen.copy().layer(1, lambda _: P(rect).f(1).blendmode(BlendMode.Difference))\n\n        res = SkiaPen.Precompose(pen, rect, SKIA_CONTEXT)\n        pilimg = Image.fromarray(res.convert(alphaType=skia.kUnpremul_AlphaType))\n        bmp = potracer.Bitmap(pilimg)\n        path = bmp.trace(turdsize, turnpolicy, alphamax, opticurve, opttolerance)\n\n        op = P()\n        for curve in path:\n            op.moveTo(curve.start_point.x, curve.start_point.y)\n            for segment in curve:\n                if segment.is_corner:\n                    op.lineTo(segment.c.x, segment.c.y)\n                else:\n                    op.curveTo(\n                        (segment.c1.x, segment.c1.y),\n                        (segment.c2.x, segment.c2.y),\n                        (segment.end_point.x, segment.end_point.y))\n            op.closePath()\n\n        op.scale(1, -1, point=rect.pc)\n        return op\n    return _potrace\n\ndef precompose(rect,\n    placement=None,\n    opacity=1,\n    scale=1,\n    disk=False,\n    style=None,\n    ):\n    def _precompose(pen):\n        img = SkiaPen.Precompose(pen, rect,             \n            context=SKIA_CONTEXT,\n            scale=scale,\n            disk=disk,\n            style=style)\n        \n        return (P()\n            .rect(placement or rect)\n            .img(img, (placement or rect), False, opacity)\n            .f(None))\n    \n    return Chainable(_precompose)\n\n\ndef rasterized(rect, scale=1, wrapped=False):\n    \"\"\"\n    Same as precompose but returns the Image created rather\n    than setting that image as the attr-image of this pen\n    \"\"\"\n    from coldtype.img.skiaimage import SkiaImage\n    def _rasterized(pen):\n        precomposed = SkiaPen.Precompose(pen, rect, scale=scale, context=SKIA_CONTEXT, disk=False)\n        if wrapped:\n            return SkiaImage(precomposed)\n        else:\n            return precomposed\n    return _rasterized, dict(returns=SkiaImage if wrapped else skia.Image)\n\n\ndef rasterize(rect, path):\n    def _rasterize(pen):\n        pen.ch(precompose(rect)).img().get(\"src\").save(str(Path(path).expanduser()), skia.kPNG)\n        return None\n    return _rasterize\n\n\ndef mod_pixels(rect, scale=0.1, mod=lambda rgba: None):\n    import PIL.Image\n    \n    def _mod_pixels(pen):\n        raster = pen.ch(rasterized(rect, scale=scale))\n        pi = PIL.Image.fromarray(raster, \"RGBa\")\n        for x in range(pi.width):\n            for y in range(pi.height):\n                r, g, b, a = pi.getpixel((x, y))\n                res = mod((r, g, b, a))\n                if res:\n                    pi.putpixel((x, y), tuple(res))\n        out = skia.Image.frombytes(pi.convert('RGBA').tobytes(), pi.size, skia.kRGBA_8888_ColorType)\n        return (P()\n            .rect(rect)\n            .img(out, rect, False)\n            .f(None))\n    \n    return _mod_pixels\n\n\ndef vector_pixels(rect, scale=0.1, lut=dict(), combine=True, print_misses=True, shaper=lambda r: P().rect(r)):\n    import PIL.Image\n    from collections import defaultdict\n    \n    def _vector_pixels(pen):\n        raster = pen.ch(rasterized(rect, scale=scale))\n        pi = PIL.Image.fromarray(raster, \"RGBa\")\n        \n        layers = defaultdict(lambda: P())\n\n        for x in range(pi.width):\n            for y in range(pi.height):\n                r, g, b, a = pi.getpixel((x, y))\n                res = (r, g, b, a)\n                if any(res):\n                    lookup = (int(r/255*100), int(g/255*100), int(b/255*100), int(a/255*100))\n                    if lookup in lut:\n                        color = lut[lookup]\n                    else:\n                        if print_misses:\n                            print(lookup)\n                        color = (r/255, g/255, b/255, a/255)\n                    \n                    (layers[color]\n                        .append(shaper(Rect(x, pi.height-y, 1, 1))\n                            .f(color)))\n        \n        out = P(layers.values()).scale(1/scale, point=(0, 0))\n        if combine:\n            return out.map(lambda p: p.pen())\n        else:\n            return out\n    \n    return _vector_pixels\n\n\ndef warp_image(image, rect, mod):\n    from skimage import img_as_ubyte\n    from skimage.transform import warp\n    import numpy as np\n\n    image_data = image.toarray()\n    image_data = image_data.reshape(rect.h, rect.w, 4)\n    image_rgb = image_data[..., :3]\n    image_rgb_uint8 = img_as_ubyte(image_rgb)\n    \n    swirled = warp(image_rgb_uint8,\n        mod,\n        output_shape=image_rgb_uint8.shape)\n\n    swirled_uint8 = (swirled * 255).astype(np.uint8)\n    image_rgb_uint8 = swirled_uint8\n\n    height, width, channels = image_rgb_uint8.shape\n    if channels == 3:\n        image_rgba = np.dstack((image_rgb_uint8, np.full((height, width), 255, dtype=np.uint8)))\n    else:\n        image_rgba = image_rgb_uint8\n    \n    return skia.Image.fromarray(image_rgba)\n\n\ndef warp(rect, mod):\n    from skimage import img_as_ubyte\n    from skimage.transform import warp\n    import numpy as np\n\n    def _warp(pen):\n        raster = pen.ch(rasterized(rect))\n        image_data = raster.toarray()\n        image_data = image_data.reshape(rect.w, rect.h, 4)\n        image_rgb = image_data[..., :3]\n        image_rgb_uint8 = img_as_ubyte(image_rgb)\n        \n        swirled = warp(image_rgb_uint8,\n            mod,\n            output_shape=image_rgb_uint8.shape)\n    \n        swirled_uint8 = (swirled * 255).astype(np.uint8)\n        image_rgb_uint8 = swirled_uint8\n\n        height, width, channels = image_rgb_uint8.shape\n        if channels == 3:\n            image_rgba = np.dstack((image_rgb_uint8, np.full((height, width), 255, dtype=np.uint8)))\n        else:\n            image_rgba = image_rgb_uint8\n        \n        out = skia.Image.fromarray(image_rgba)\n        return (P()\n            .rect(rect)\n            .img(out, rect, False)\n            .f(None))\n    \n    return _warp\n\n\ndef luma(rect, fill=None):\n    \"\"\"Chainable function for converting light part of pen/image-on-pen into an alpha channel; see `LumaColorFilter <https://kyamagu.github.io/skia-python/reference/skia.LumaColorFilter.html>`_\"\"\"\n    def _luma(pen):\n        pen = pen.ch(precompose(rect))\n        pen.attr(skp=dict(ColorFilter=skia.LumaColorFilter.Make()))\n        if fill is not None:\n            pen = (pen\n                .ch(precompose(rect))\n                .attr(skp=dict(ColorFilter=Skfi.fill(normalize_color(fill)))))\n        return pen\n    return _luma\n\ndef phototype(rect=None,\n    blur=5,\n    cut=127,\n    cutw=3,\n    fill=1,\n    rgba=[0, 0, 0, 1],\n    luma=True\n    ):\n    \"\"\"Chainable function for “exposing” a pen/image-on-pen in the manner of lithofilm, i.e. light-parts are kept, dark parts are thrown away (turned into alpha)\"\"\"\n    def _phototype(pen):\n        nonlocal rect\n        if rect is None:\n            rect = pen.ambit().inset(-50)\n\n        r, g, b, a = rgba\n\n        first_pass = dict(ImageFilter=Skfi.blur(blur))\n        \n        if luma:\n            first_pass[\"ColorFilter\"] = skia.LumaColorFilter.Make()\n\n        cut_filters = [\n            Skfi.as_filter(\n                Skfi.contrast_cut(cut, cutw),\n                a=a, r=r, g=g, b=b)]\n            \n        if fill is not None:\n            cut_filters.append(Skfi.fill(normalize_color(fill)))\n\n        return (pen\n            .ch(precompose(rect))\n            .attr(skp=first_pass)\n            .ch(precompose(rect))\n            .attr(skp=dict(\n                ColorFilter=Skfi.compose(*cut_filters))))\n    \n    return Chainable(_phototype)\n\n\ndef color_phototype(rect,\n    blur=5,\n    cut=127,\n    cutw=15,\n    rgba=[1, 1, 1, 1]\n    ):\n    return phototype(rect, blur, 255-cut, cutw, fill=None, rgba=rgba, luma=False)\n\ndef huerotate(c):\n    c = c*360%360\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.huerotate(c)))\n    return _fill\n\ndef saturate(c):\n    #c = c*360%360\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.saturate(c)))\n    return _fill\n\ndef expose(t):\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.expose(t)))\n    return _fill\n\ndef invert():\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.invert()))\n    return _fill\n\ndef temp(t):\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.temp(t)))\n    return _fill\n\ndef tone(t):\n    def _fill(pen):\n        return pen.attr(skp=dict(ColorFilter=Skfi.tone(t)))\n    return _fill\n\ndef temptone(temp, tone):\n    def _fill(pen):\n        pen.attr(skp=dict(ColorFilter=Skfi.compose(Skfi.temp(temp), Skfi.tone(tone))))\n    return _fill\n\ndef channel(c):\n    filters = dict(red=Skfi.red, green=Skfi.green, blue=Skfi.blue)\n    \n    if isinstance(c, str):\n        filter = filters[c]\n    else:\n        filter = list(filters.values())[c]\n    \n    def _fill(pen):\n        pen.attr(skp=dict(ColorFilter=filter()))\n    return _fill\n\ndef rgbmod(rect, r=None, g=None, b=None):\n    def _rgbmod(p):\n        raster = p.ch(rasterized(rect, wrapped=True))\n        return (P(\n            raster.copy()\n                .in_pen()\n                .f(-1)\n                .ch(channel(0))\n                .ch(luma(rect, fill=1))\n                .ch(r)\n                if r else None,\n            raster.copy()\n                .in_pen()\n                .f(-1)\n                .ch(channel(1))\n                .ch(luma(rect, fill=1))\n                .ch(g)\n                if g else None,\n            raster.copy()\n                .in_pen()\n                .f(-1)\n                .ch(channel(2))\n                .ch(luma(rect, fill=1))\n                .ch(b)\n                if b else None,\n            ))\n    return _rgbmod\n\ndef shake(seg_length=2, deviation=2, seed=0):\n    \"\"\"shake up the path\"\"\"\n    def _shake(p):\n        effect = skia.DiscretePathEffect.Make(\n            seg_length, deviation, seed)\n        return p.attr(skp=dict(PathEffect=effect))\n    return _shake\n\ndef round_corners(roundedness=20):\n    def _round(p):\n        effect = skia.CornerPathEffect.Make(roundedness)\n        return p.attr(skp=dict(PathEffect=effect))\n    return _round\n\ndef draw_canvas(r:Rect, draw_function:callable, in_pen=False):\n    from coldtype.img.skiaimage import SkiaImage\n    from coldtype.fx.skia import SKIA_CONTEXT\n    from coldtype.pens.skiapen import SkiaPen\n\n    def draw(canvas):\n        return draw_function(r, canvas)\n\n    img = SkiaImage(SkiaPen.Precompose(draw, r, context=SKIA_CONTEXT))\n    \n    if in_pen:\n        return img.in_pen().f(-1)\n    else:\n        return img\n\n\ndef text_image(r:Rect, in_pen=True):\n    \"\"\"\n    Requires that annotate=1 is passed to original StSt or Style\n    \"\"\"\n    from coldtype.img.skiaimage import SkiaImage\n\n    def _text_image(p:P):\n        try:\n            stst = p._stst\n            text = stst.text\n        except AttributeError:\n            try:\n                stst = p.parent()._stst\n                text = p.data(\"glyphName\") # TODO this isn't a good assumption\n            except AttributeError:\n                stst = None\n                text = None\n        \n        if not stst:\n            print(\"! please pass annotate=1 to original `StSt` !\")\n            return p\n        \n        style = stst.style\n\n        skia_font = skia.Font(skia.Typeface.MakeFromFile(str(style.font.path)), style.fontSize)\n\n        builder = skia.TextBlobBuilder()\n        builder.allocRun(text, skia_font, 0, 0)\n        blob = builder.make()\n\n        x, y = p.ambit(tx=0, ty=0).xy()\n\n        def draw(r, canvas):\n            canvas.drawTextBlob(blob, x, r.h-y, skia.Paint(AntiAlias=True))\n        \n        return draw_canvas(r, draw, in_pen=in_pen)\n    \n    return _text_image, dict(returns=P if in_pen else SkiaImage)\n\ndef image_shader(r:Rect, image, sksl, in_pen=True):\n    \"\"\"\n    Requires that annotate=1 is passed to original StSt or Style\n    \"\"\"\n    from coldtype.img.skiaimage import SkiaImage\n\n    def _image_shader(p:P):\n        def draw(r, canvas):\n            imageShader = image.makeShader(skia.SamplingOptions(skia.FilterMode.kLinear))\n\n            effect = skia.RuntimeEffect.MakeForShader(sksl)\n\n            children = skia.RuntimeEffectChildPtr(imageShader)\n            runtime_effect = skia.SpanRuntimeEffectChildPtr(children, 1)\n            myShader = effect.makeShader(None, runtime_effect)\n            \n            paint = skia.Paint()\n            paint.setShader(myShader)\n            canvas.drawPaint(paint)\n\n        return draw_canvas(r, draw, in_pen=in_pen)\n    \n    return _image_shader, dict(returns=P if in_pen else SkiaImage)\n\nFREEZES = {}\n\nfrom inspect import getsource\n\ndef freeze(do_freeze, as_image, callback, additionals=[]):\n    \"\"\"\n    Use this function to “freeze” the result of another (expensive) function\n    as an image, so you don’t have to recompute the same thing over and over\n\n    N.B. Because of a quirk with Python’s introspection facilities, a multi-line\n    lambda will work with freeze, but the cache will not update if code changes\n    on any line but the first; if you need a multi-line function, pass in a def\n    and all the code will be read as a cache key\n    \"\"\"\n    def getsrc(f):\n        _src = getsource(f)\n        if \"lambda:\" in _src:\n            _src = \"lambda:\".join(_src.split(\"lambda:\")[1:]).strip()\n        return _src\n    \n    src = getsrc(callback)\n    for a in additionals:\n        if callable(a):\n            src += getsrc(a)\n        else:\n            src += repr(a)\n\n    if not src:\n        print(\"NO SRC FOUND FOR FREEZE\")\n\n    if not do_freeze:\n        if src in FREEZES:\n            del FREEZES[src]\n        return callback()\n    \n    if src in FREEZES:\n        currently_image, res = FREEZES[src]\n        if as_image != currently_image:\n            del FREEZES[src]\n\n    if src not in FREEZES:\n        #print(\"FREEZING\", src)\n        res = callback()\n        if as_image:\n            res_img = res.ch(precompose(res.bounds().inset(-100)))\n            FREEZES[src] = [1, res_img]\n        else:\n            FREEZES[src] = [0, res]\n    \n    return FREEZES[src][-1]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/warping.py",
    "content": "import math\nfrom coldtype.beziers import CurveCutter, splitCubicAtT\n\ntry:\n    import noise\nexcept ImportError:\n    raise Exception(\"`pip install noise`\")\n\ndef warp_fn(xa=0, ya=-1, xs=300, ys=300, speed=5, base=0, octaves=1, mult=50, rz=1024):\n    if ya == -1:\n        ya = xa\n    def warp(x, y):\n        _x = (x+xa)/xs\n        _y = (y+ya)/ys\n        pn = noise.pnoise3(_x, _y, speed, octaves=octaves, base=base, repeatz=rz)\n        return x+pn*mult, y+pn*mult\n    return warp\n\n\ndef warp(flatten=10, xa=0, ya=-1, xs=300, ys=300, speed=5, base=0, octaves=1, mult=50, rz=1024):\n    \"\"\"Chainable function for warping a pen\"\"\"\n\n    def _warp(pen):\n        if flatten is not None and flatten > 0:\n            pen.flatten(flatten)\n        pen.nlt(warp_fn(xa, ya, xs, ys, speed, base, octaves, mult, rz))\n    return _warp\n\n\ndef bend(pen, curve, tangent=True):\n    def _bend(pen):\n        cc = CurveCutter(curve)\n        ccl = cc.length\n        dpl = pen.bounds().point(\"SE\").x\n        xf = ccl/dpl\n\n        def bender(x, y):\n            p, tan = cc.subsegmentPoint(end=x*xf)\n            px, py = p\n            if tangent:\n                a = math.sin(math.radians(180+tan)) * y\n                b = math.cos(math.radians(180+tan)) * y\n                return (px+a, py+b)\n                #return (px, y+py)\n            else:\n                return (px, y+py)\n        return pen.nonlinear_transform(bender)\n    return _bend\n\n\ndef bend2(curve, tangent=True, offset=(0, 1)):\n    def _bend(pen):\n        bw = pen.bounds().w\n        a = curve.value[0][-1][0]\n        b, c, d = curve.value[1][-1]\n        def bender(x, y):\n            c1, c2 = splitCubicAtT(a, b, c, d, offset[0] + (x/bw)*offset[1])\n            _, _a, _b, _c = c1\n            if tangent:\n                tan = math.degrees(math.atan2(_c[1] - _b[1], _c[0] - _b[0]) + math.pi*.5)\n                ax = math.sin(math.radians(90-tan)) * y\n                by = math.cos(math.radians(90-tan)) * y\n                return _c[0]+ax, (y+_c[1])+by\n            return _c[0], y+_c[1]\n        return pen.nonlinear_transform(bender)\n    return _bend\n\n\ndef bend3(curve, tangent=False, offset=(0, 1)):\n    def _bend(pen):\n        a = curve.value[0][-1][0]\n        b, c, d = curve.value[1][-1]\n        bh = pen.bounds().h\n        \n        def bender(x, y):\n            c1, c2 = splitCubicAtT(a, b, c, d, offset[0] + (y/bh)*offset[1])\n            _, _a, _b, _c = c1\n            if tangent:\n                tan = math.degrees(math.atan2(_c[1] - _b[1], _c[0] - _b[0]) + math.pi*.5)\n                ax = math.sin(math.radians(90-tan)) * y\n                by = math.cos(math.radians(90-tan)) * y\n                return x+_c[0]+ax, (y+_c[1])+by\n            return x+_c[0], _c[1]\n        return pen.nonlinear_transform(bender)\n    return _bend"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/fx/xray.py",
    "content": "from coldtype.runon.path import P as P\nfrom coldtype.geometry import Point\nfrom coldtype.color import hsl\n\n\ndef skeletonLookup(self) -> dict:\n    m, l, c, cf, q, qf, cbs, qbs = [[] for x in range(8)]\n        \n    for idx, (mv, pts) in enumerate(self._val.value):\n        pts = [Point(x) for x in pts]\n        if mv == \"moveTo\":\n            m.append(pts[0])\n        elif mv == \"lineTo\":\n            l.append(pts[0])\n        elif mv in [\"curveTo\", \"qCurveTo\"]:\n            lp = Point(self._val.value[idx-1][-1][-1])\n            pts.insert(0, lp)\n            onc = pts[-1]\n            if mv == \"curveTo\":\n                c.append(onc)\n                cf.extend([pts[1], pts[2]])\n                cbs.append([pts[0], pts[1]])\n                cbs.append([pts[-2], onc])\n            else:\n                q.append(onc)\n                for j, _p in enumerate(pts[:-2]):\n                    np = pts[j+1]\n                    qbs.append([_p, np])\n                    qf.append(np)\n                qbs.append([pts[-2], onc])\n    \n    return {\n        \"moveTo\": m,\n        \"lineTo\": l,\n        \"curveOn\": c,\n        \"curveOff\": cf,\n        \"qCurveOn\": q,\n        \"qCurveOff\": qf,\n        \"curveBars\": cbs,\n        \"qCurveBars\": qbs\n    }\n\nscaleables = [\n    \"moveTo\",\n    \"lineTo\",\n    \"curveOn\",\n    \"curveOff\",\n    \"qCurveOn\",\n    \"qCurveOff\",\n]\n\ndef skeleton(scale=1):\n    def _skeleton(p:P):\n        pts = list(skeletonLookup(p).values())\n        return (P(\n            (P().enumerate(pts[0],\n                lambda x: P().r(x.el.r(30)))\n                .tag(\"moveTo\")),\n            (P().enumerate(pts[1],\n                lambda x: P().rect(x.el.r(20)))\n                .tag(\"lineTo\")),\n            (P().enumerate(pts[2],\n                lambda x: P().oval(x.el.r(20)))\n                .tag(\"curveOn\")),\n            (P().enumerate(pts[3],\n                lambda x: P().oval(x.el.r(10)))\n                .tag(\"curveOff\")),\n            (P().enumerate(pts[4],\n                lambda x: P().oval(x.el.r(20)))\n                .tag(\"qCurveOn\")),\n            (P().enumerate(pts[5],\n                lambda x: P().oval(x.el.r(10)))\n                .tag(\"qCurveOff\")),\n            (P().enumerate(pts[6],\n                lambda x: P().line(x.el))\n                .tag(\"curveBars\")),\n            (P().enumerate(pts[7],\n                lambda x: P().line(x.el))\n                .tag(\"qCurveBars\")))\n            .find(\n                lambda e: e.tag() in scaleables,\n                lambda e: e.mapv(lambda x: x.scale(scale)))\n            .fssw(-1, 0, 2))\n    return _skeleton"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/__init__.py",
    "content": "from coldtype.geometry.primitives import calc_angle\nfrom coldtype.geometry.geometrical import Geometrical\nfrom coldtype.geometry.atom import Atom\nfrom coldtype.geometry.point import Point\nfrom coldtype.geometry.line import Line\nfrom coldtype.geometry.curve import Curve\nfrom coldtype.geometry.edge import Edge, txt_to_edge\nfrom coldtype.geometry.rect import Rect, align\n\nPt = Point\nRt = Rect\n\n\ndef Geo(*args):\n    if len(args) == 1:\n        return Atom(args[0])\n    elif len(args) == 2:\n        if isinstance(args[0], Point):\n            return Line(*args)\n        else:\n            return Point(*args)\n    elif len(args) == 4:\n        return Rect(*args)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/atom.py",
    "content": "from coldtype.geometry.geometrical import Geometrical\n\n\nclass Atom(Geometrical):\n    def __init__(self, x):\n        self.x = x\n    \n    __hash__ = object.__hash__\n    \n    def __eq__(self, o):\n        # TODO isclose?\n        try:\n            return self.x == o.x\n        except AttributeError:\n            return self.x == o\n\n    def __repr__(self):\n        return f\"Atom({self.x})\"\n\n    def __getitem__(self, key):\n        if key == 0:\n            return self.x\n        else:\n            raise TypeError(\"Index must be 0\")\n    \n    def __len__(self):\n        return 1\n\n    def __setitem__(self, key, value):\n        if key == 0:\n            self.x = value\n        else:\n            raise IndexError(\n                \"Invalid index for atom assignment, must be 0\")\n    \n    def reverse(self):\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/curve.py",
    "content": "from coldtype.geometry.line import Line\nfrom coldtype.geometry.point import Point\nfrom fontTools.misc.bezierTools import calcCubicArcLength, splitCubicAtT\n\nclass Curve(Line):\n    def __init__(self, start, cp1, cp2, end):\n        self.cp1 = cp1\n        self.cp2 = cp2\n        super().__init__(start, end)\n    \n    @property\n    def abcd(self):\n        return [self.start, self.cp1, self.cp2, self.end]\n    \n    def pts(self):\n        return self.abcd\n    \n    def split_t(self, t):\n        l1, l2 = splitCubicAtT(*self.abcd, t)\n        return Curve(*l1), Curve(*l2)\n    \n    def t(self, t):\n        l1, l2 = self.split_t(t)\n        return Point(*l2.start)\n    \n    def length(self):\n        return calcCubicArcLength(*self.abcd)\n    \n    def split_tpx(self, tpx):\n        return self.split_t(tpx/self.length())\n\n    def tpx(self, tpx, limit=True):\n        return self.t(tpx/self.length())\n\n    def __eq__(self, l):\n        if not hasattr(l, \"start\") or not hasattr(l, \"cp1\"):\n            return False\n        return self.start == l.start and self.end == l.end and self.cp1 == l.cp1 and self.cp2 == l.cp2\n    \n    def reverse(self):\n        return Curve(*list(reversed(self.abcd)))\n    \n    def tan_out(self):\n        return Line(self.cp2, self.end)\n    \n    def tan_in(self):\n        return Line(self.start, self.cp1)\n    \n    def inset(self, px):\n        inset_start = self.split_tpx(px)[1]\n        return inset_start.reverse().split_tpx(px)[1].reverse()\n    \n    def __repr__(self):\n        pts = ','.join([str(p) for p in self.abcd])\n        return f\"Curve({pts})\"\n    \n    def __len__(self):\n        return 4\n    \n    def __getitem__(self, idx):\n        if idx == 0:\n            return self.start\n        elif idx == 1:\n            return self.cp1\n        elif idx == 2:\n            return self.cp2\n        elif idx == 3:\n            return self.end\n        else:\n            raise IndexError(\"Curve only has four points\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/edge.py",
    "content": "from enum import Enum\n\n\nclass Edge(Enum):\n    MaxY = 1\n    MaxX = 2\n    MinY = 3\n    MinX = 4\n    CenterY = 5\n    CenterX = 6\n\n    def PairFromCompass(cmp):\n        if isinstance(cmp, Edge):\n            return None\n        if isinstance(cmp, str):\n            cmp = cmp.upper()\n        if cmp in [\"C\", \"•\"]:\n            return (Edge.CenterX, Edge.CenterY)\n        elif cmp in [\"W\", \"←\"]:\n            return (Edge.MinX, Edge.CenterY)\n        elif cmp in [\"NW\", \"↖\"]:\n            return (Edge.MinX, Edge.MaxY)\n        elif cmp in [\"N\", \"↑\"]:\n            return (Edge.CenterX, Edge.MaxY)\n        elif cmp in [\"NE\", \"↗\"]:\n            return (Edge.MaxX, Edge.MaxY)\n        elif cmp in [\"E\", \"→\"]:\n            return (Edge.MaxX, Edge.CenterY)\n        elif cmp in [\"SE\", \"↘\"]:\n            return (Edge.MaxX, Edge.MinY)\n        elif cmp in [\"S\", \"↓\"]:\n            return (Edge.CenterX, Edge.MinY)\n        elif cmp in [\"SW\", \"↙\"]:\n            return (Edge.MinX, Edge.MinY)\n\n\ndef txt_to_edge(txt):\n    if isinstance(txt, str):\n        txt = txt.lower()\n        if txt in [\"maxy\", \"mxy\", \"n\", \"⊤\", \"↑\"]:\n            return Edge.MaxY\n        elif txt in [\"maxx\", \"mxx\", \"e\", \"⊣\", \"→\"]:\n            return Edge.MaxX\n        elif txt in [\"miny\", \"mny\", \"s\", \"⊥\", \"↓\"]:\n            return Edge.MinY\n        elif txt in [\"minx\", \"mnx\", \"w\", \"⊢\", \"←\"]:\n            return Edge.MinX\n        elif txt in [\"centery\", \"cy\", \"midy\", \"mdy\", \"Ｈ\"]:\n            return Edge.CenterY\n        elif txt in [\"centerx\", \"cx\", \"midx\", \"mdx\", \"⌶\"]:\n            return Edge.CenterX\n        else:\n            return Edge.PairFromCompass(txt)\n    else:\n        return txt\n\n\ndef edge_opposite(e):\n    if not isinstance(e, Edge):\n        return [edge_opposite(_e) for _e in e]\n    if e == Edge.MaxY:\n        return Edge.MinY\n    elif e == Edge.MinY:\n        return Edge.MaxY\n    elif e == Edge.MaxX:\n        return Edge.MinX\n    elif e == Edge.MinX:\n        return Edge.MaxX"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/geometrical.py",
    "content": "class Geometrical():\n    pass"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/line.py",
    "content": "import math\nfrom fontTools.misc.transform import Transform\nfrom coldtype.geometry.geometrical import Geometrical\nfrom coldtype.geometry.point import Point\nfrom coldtype.geometry.primitives import line_intersection, calc_angle, polar_coord\nfrom coldtype.interpolation import norm\n\n\nclass Line(Geometrical):\n    def __init__(self, start, end):\n        self.start = Point(start)\n        self.end = Point(end)\n    \n    def __eq__(self, l):\n        if not hasattr(l, \"start\"):\n            return False\n        return self.start == l.start and self.end == l.end\n\n    __hash__ = object.__hash__\n\n    def point(self, p):\n        if p == \"N\":\n            return self.pn\n        elif p == \"E\":\n            return self.pe\n        elif p == \"S\":\n            return self.ps\n        elif p == \"W\":\n            return self.pw\n        elif p == \"C\":\n            return self.mid\n    \n    @property\n    def mid(self):\n        return self.start.i(0.5, self.end)\n    \n    @property\n    def mxx(self):\n        return max([p.x for p in self.pts()])\n    \n    @property\n    def mnx(self):\n        return min([p.x for p in self.pts()])\n    \n    @property\n    def mxy(self):\n        return max([p.y for p in self.pts()])\n    \n    @property\n    def mny(self):\n        return min([p.y for p in self.pts()])\n    \n    @property\n    def pe(self):\n        return max(self.pts(), key=lambda p: p.x)\n    \n    @property\n    def pw(self):\n        return min(self.pts(), key=lambda p: p.x)\n    \n    @property\n    def pn(self):\n        return max(self.pts(), key=lambda p: p.y)\n    \n    @property\n    def ps(self):\n        return min(self.pts(), key=lambda p: p.y)\n    \n    def __repr__(self):\n        return f\"Line({self.start}, {self.end})\"\n    \n    def __len__(self):\n        return 2\n    \n    def __getitem__(self, idx):\n        if idx == 0:\n            return self.start\n        elif idx == 1:\n            return self.end\n        else:\n            raise IndexError(\"Line only has two points\")\n\n    def reverse(self):\n        p1, p2 = self\n        return Line(p2, p1)\n    \n    def __invert__(self):\n        return self.reverse()\n\n    def t(self, t):\n        return self.start.interp(t, self.end)\n    \n    def length(self):\n        a2 = math.pow(self.start.x - self.end.x, 2)\n        b2 = math.pow(self.start.y - self.end.y, 2)\n        return math.sqrt(a2 + b2)\n    \n    @property\n    def l(self):\n        return self.length()\n    \n    def tpx(self, tpx, limit=True):\n        x = tpx * math.cos(self.angle())\n        y = tpx * math.sin(self.angle())\n        tp = self.start.offset(x, y)\n        if not limit:\n            return tp\n        else:\n            if Line(self.start, tp).length() > self.length():\n                return self.end\n            else:\n                return tp\n\n    def angle(self):\n        return calc_angle(self.start, self.end)\n    \n    @property\n    def ang(self):\n        return self.angle()%math.pi\n    \n    def pts(self):\n        return [self.start, self.end]\n    \n    def splat(self):\n        return [(self.start.x, self.start.y), (self.end.x, self.end.y)]\n    \n    def transform(self, t):\n        pts = self.pts()\n        x1, x2 = [t.transformPoint(pt) for pt in pts]\n        return Line(x1, x2)\n\n    def rotate(self, degrees, point=None):\n        if Transform:\n            t = Transform()\n            if not point:\n                point = self.mid\n            t = t.translate(point.x, point.y)\n            t = t.rotate(math.radians(degrees))\n            t = t.translate(-point.x, -point.y)\n            return self.transform(t)\n        else:\n            raise Exception(\"fontTools not installed\")\n    \n    def bow(self, amt, t=0.5, angle=90):\n        rotated = self.rotate(angle, point=self.t(t))\n        return rotated.tpx(self.length()*0.5+amt)\n    \n    def project(self, pt, dist, angle=90):\n        dx, dy = polar_coord((0, 0), self.ang+math.radians(angle), dist)\n        return self.t(pt).offset(dx, dy)\n    \n    def inset(self, px):\n        return Line(self.tpx(px), self.reverse().tpx(px))\n    \n    inset_y = inset\n    inset_x = inset\n    \n    def extr(self, amt):\n        p1, p2 = self\n        return Line(p2.i(1+amt, p1), p1.i(1+amt, p2))\n    \n    def offset(self, x, y):\n        p1, p2 = self\n        return Line(p1.offset(x, y), p2.offset(x, y))\n    \n    def offset_x(self, dx):\n        return self.offset(dx, 0)\n    \n    def offset_y(self, dy):\n        return self.offset(0, dy)\n    \n    def tan_out(self):\n        return self\n    \n    def tan_in(self):\n        return self\n    \n    o = offset\n    \n    def __floordiv__(self, other):\n        return self.offset(0, other)\n    \n    def __truediv__(self, other):\n        return self.offset(other, 0)\n    \n    def __mod__(self, other):\n        return self.offset(*other)\n    \n    def intersection(self, other):\n        return Point(line_intersection(self, other))\n    \n    sect = intersection\n    \n    def __and__(self, other):\n        return self.intersection(other)\n    \n    def join(self, other):\n        from coldtype.geometry.rect import Rect\n        return Rect.FromPoints(self.start, self.end, other.end, other.start)\n    \n    def interp(self, x, other):\n        return Line(self.start.i(x, other.start), self.end.i(x, other.end))\n\n    i = interp\n\n    def setx(self, x):\n        return Line(self.start.setx(x), self.end.setx(x))\n    \n    def __mul__(self, other):\n        return self.setx(other)\n    \n    def sety(self, y):\n        return Line(self.start.sety(y), self.end.sety(y))\n    \n    def __matmul__(self, other):\n        return self.sety(other)\n    \n    def intersects(self, other_line:\"Line\") -> bool:\n        def orientation(p, q, r):\n            val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y)\n            if val == 0: return 0\n            return 1 if val > 0 else 2\n        \n        def on_segment(p, q, r):\n            return (q.x <= max(p.x, r.x) and q.x >= min(p.x, r.x) and\n                    q.y <= max(p.y, r.y) and q.y >= min(p.y, r.y))\n        \n        p1, q1 = self.start, self.end\n        p2, q2 = other_line.start, other_line.end\n        \n        o1 = orientation(p1, q1, p2)\n        o2 = orientation(p1, q1, q2)\n        o3 = orientation(p2, q2, p1)\n        o4 = orientation(p2, q2, q1)\n        \n        if o1 != o2 and o3 != o4: return True\n        if o1 == 0 and on_segment(p1, p2, q1): return True\n        if o2 == 0 and on_segment(p1, q2, q1): return True\n        if o3 == 0 and on_segment(p2, p1, q2): return True\n        if o4 == 0 and on_segment(p2, q1, q2): return True\n        return False"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/point.py",
    "content": "import math\nfrom coldtype.geometry.geometrical import Geometrical\nfrom coldtype.interpolation import norm\nfrom coldtype.geometry.primitives import polar_coord, line_intersection, calc_angle, calc_vector\n\ntry:\n    from fontTools.misc.transform import Transform\nexcept ImportError:\n    Transform = None\n\n\ndef rt(v, mult):\n    rndd = float(round(v / mult) * mult)\n    if rndd.is_integer():\n        return int(rndd)\n    else:\n        return rndd\n\n\nclass Point(Geometrical):\n    \"\"\"Representation of a point (x,y), indexable\"\"\"\n    def __init__(self, *points, rect=None, corner=None):\n        self._rect = rect\n        self._corner = corner\n\n        if len(points) == 2:\n            self.x = points[0]\n            self.y = points[1]\n        else:\n            point = points[0]\n            try:\n                x, y = point\n                self.x = x\n                self.y = y\n            except TypeError:\n                try:\n                    self.x = point.x\n                    self.y = point.y\n                except AttributeError:\n                    self.x = 0\n                    self.y = 0\n    \n    __hash__ = object.__hash__\n\n    def Z():\n        return Point([0, 0])\n\n    def from_obj(obj):\n        p = Point((0, 0))\n        try:\n            p.x = obj.x\n            p.y = obj.y\n        except:\n            pass\n        return p\n\n    def offset(self, dx, dy):\n        \"Offset by dx, dy\"\n        return Point((self.x + dx, self.y + dy))\n    \n    def offset_x(self, dx):\n        return self.offset(dx, 0)\n    \n    def offset_y(self, dy):\n        return self.offset(0, dy)\n    \n    o = offset\n\n    def rect(self, w, h=None):\n        \"Create a rect from this point as center, with w and h dimensions provided\"\n        from coldtype.geometry.rect import Rect\n        if h is None:\n            h = w\n        return Rect((self.x-w/2, self.y-h/2, w, h))\n    \n    r = rect\n\n    def xy(self):\n        \"As a tuple\"\n        return self.x, self.y\n    \n    def round(self):\n        \"\"\"round the values in the point to the nearest integer\"\"\"\n        return Point([int(round(n)) for n in self])\n    \n    def round_to(self, to=10):\n        \"\"\"round the values in the point to the nearest integer multiple\"\"\"        \n        return Point([rt(n, to) for n in self.xy()])\n    \n    def inside(self, rect):\n        mnx, mny, mxx, mxy = rect.mnmnmxmx()\n        if mnx <= self.x <= mxx and mny <= self.y <= mxy:\n            return True\n        else:\n            return False\n    \n    def clip(self, rect):\n        x, y = self\n        mnx, mny, mxx, mxy = rect.mnmnmxmx()\n        if x < mnx:\n            x = mnx\n        elif x > mxx:\n            x = mxx\n        \n        if y < mny:\n            y = mny\n        elif y > mxy:\n            y = mxy\n        \n        return Point(x, y)\n\n    def flip(self, frame):\n        return Point((self.x, frame.h - self.y))\n\n    def flipSelf(self, frame):\n        x, y = self.flip(frame)\n        self.x = x\n        self.y = y\n    \n    def scale(self, x, y=None):\n        if not y:\n            y = x\n        return Point((self.x * x, self.y * y))\n    \n    def transform(self, t) -> \"Point\":\n        return Point(*t.transformPoint((self.x, self.y)))\n\n    def rotate(self, degrees, point) -> \"Point\":\n        if Transform:\n            t = Transform()\n            t = t.translate(point.x, point.y)\n            t = t.rotate(math.radians(degrees))\n            t = t.translate(-point.x, -point.y)\n            return self.transform(t)\n        else:\n            raise Exception(\"fontTools not installed\")\n    \n    def join(self, other):\n        from coldtype.geometry.line import Line\n        return Line(self, other)\n    \n    def interp(self, v, other):\n        \"\"\"Interpolate with another point\"\"\"\n        sx, sy = self\n        ox, oy = other\n        if not isinstance(v, float) and v != 1:\n            v = v/100\n        return Point((norm(v, sx, ox), norm(v, sy, oy)))\n    \n    def i(self, *args):\n        other = args\n        if isinstance(other[0], Point):\n            return self.interp(0.5, other[0])\n        else:\n            x, pt = other\n            return self.interp(x, pt)\n    \n    def project(self, angle, dist):\n        dx, dy = polar_coord((0, 0), math.radians(angle), dist)\n        return self.offset(dx, dy)\n    \n    def project_to(self, angle, line):\n        ray = [self, self.project(angle, 1000)]\n        return Point(line_intersection(ray, line))\n    \n    def cdist(self, other):\n        vec = calc_vector(self, other)\n        ang = calc_angle(self, other)\n        dist = math.sqrt(math.pow(vec[0], 2) + math.pow(vec[1], 2))\n        return dist, math.degrees(ang)\n    \n    def noop(self, *args, **kwargs):\n        return self\n    \n    def __eq__(self, o):\n        try:\n            return all([self.x == o.x, self.y == o.y])\n        except:\n            return False\n\n    def __repr__(self):\n        return \"Point\" + str(self.xy())\n\n    def __getitem__(self, key):\n        return self.xy()[key]\n    \n    def __len__(self):\n        return 2\n\n    def __setitem__(self, key, value):\n        if key == 0:\n            self.x = value\n        elif key == 1:\n            self.y = value\n        else:\n            raise IndexError(\n                \"Invalid index for point assignment, must be 0 or 1\")\n    \n    def setx(self, x):\n        return Point([x, self.y])\n    \n    def sety(self, y):\n        return Point([self.x, y])\n    \n    def reverse(self):\n        return Point(self.y, self.x)\n    \n    def __add__(self, o):\n        return Point(self.x + o.x, self.y + o.y)\n    \n    def __sub__(self, o):\n        return Point(self.x - o.x, self.y - o.y)\n    \n    def __mul__(self, o):\n        return Point(self.x * o, self.y * o)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/primitives.py",
    "content": "import math\nfrom coldtype.geometry.edge import Edge\nfrom fontTools.misc.arrayTools import sectRect, unionRect\n\n\nMINYISMAXY = False\n\n#https://stackoverflow.com/questions/20677795/how-do-i-compute-the-intersection-point-of-two-lines\n\ndef line_intersection(line1, line2):\n    xdiff = (line1[0][0] - line1[1][0], line2[0][0] - line2[1][0])\n    ydiff = (line1[0][1] - line1[1][1], line2[0][1] - line2[1][1])\n\n    def det(a, b):\n        return a[0] * b[1] - a[1] * b[0]\n\n    div = det(xdiff, ydiff)\n    if div == 0:\n        raise Exception('lines do not intersect')\n\n    d = (det(*line1), det(*line2))\n    x = det(d, xdiff) / div\n    y = det(d, ydiff) / div\n    return x, y\n\ndef calc_vector(point1, point2):\n    x1, y1 = point1\n    x2, y2 = point2\n    dx = x2 - x1\n    dy = y2 - y1\n    return dx, dy\n\n\ndef calc_angle(point1, point2):\n    dx, dy = calc_vector(point1, point2)\n    return math.atan2(dy, dx)\n\n\ndef polar_coord(xy, angle, distance):\n    x, y = xy\n    nx = x + (distance * math.cos(angle))\n    ny = y + (distance * math.sin(angle))\n    return nx, ny\n\n\ndef centered_square_outside(rect):\n    x, y, w, h = rect\n    if w < h:\n        return [x + (w - h) / 2, y, h, h]\n    else:\n        return [x, y + (h - w) / 2, w, w]\n\n\ndef centered_square_inside(rect):\n    x, y, w, h = rect\n    if w > h:\n        return [x + (w - h) / 2, y, h, h]\n    else:\n        return [x, y + (h - w) / 2, w, w]\n\n\ndef perc_to_pix(rect, amount, edge):\n    \"\"\"\n    perc(entage) to pix(els) — where the percentage is a decimal between 0 and 1 — cannot be 0 or 1\n    \"\"\"\n    x, y, w, h = rect\n    if amount <= 1.0:\n        d = h if edge == Edge.MinY or edge == Edge.MaxY or edge == Edge.CenterY else w\n        if amount < 0:\n            return d + amount\n        else:\n            return d * amount  # math.floor\n    else:\n        return amount\n\n\ndef divide(rect, amount, edge, forcePixel=False):\n    x, y, w, h = rect\n    if not forcePixel:\n        amount = perc_to_pix(rect, amount, edge)\n\n    if edge == Edge.MaxY:\n        if MINYISMAXY:\n            return [x, y, w, amount], [x, y + amount, w, h - amount]\n        else:\n            return [x, y + h - amount, w, amount], [x, y, w, h - amount]\n    elif edge == Edge.MinY:\n        if MINYISMAXY:\n            return [x, y + h - amount, w, amount], [x, y, w, h - amount]\n        else:\n            return [x, y, w, amount], [x, y + amount, w, h - amount]\n    elif edge == Edge.MinX:\n        return [x, y, amount, h], [x + amount, y, w - amount, h]\n    elif edge == Edge.MaxX:\n        return [x + w - amount, y, amount, h], [x, y, w - amount, h]\n    elif edge == Edge.CenterX:\n        lw = (w - amount) / 2\n        return [x, y, lw, h], [x + lw, y, amount, h], [x + lw + amount, y, lw, h]\n    elif edge == Edge.CenterY:\n        lh = (h - amount) / 2\n        return [x, y, w, lh], [x, y + lh, w, amount], [x, y + lh + amount, w, lh]\n\n\ndef subdivide(rect, count, edge, forcePixel=False):\n    r = rect\n    subs = []\n    if hasattr(count, \"__iter__\"):\n        amounts = count\n        i = len(amounts) + 1\n        a = 0\n        while i > 1:\n            s, r = divide(r, amounts[a], edge, forcePixel=forcePixel)\n            subs.append(s)\n            i -= 1\n            a += 1\n        subs.append(r)\n        return subs\n    else:\n        i = count\n        while i > 1:\n            s, r = divide(r, 1/i, edge, forcePixel=forcePixel)\n            subs.append(s)\n            i -= 1\n        subs.append(r)\n        return subs\n\n\ndef pieces(rect, amount, edge):\n    x, y, w, h = rect\n    d = w\n    if edge == Edge.MaxX or edge == Edge.MaxY:\n        d = h\n    fit = math.floor(d / amount)\n    return subdivide(rect, fit, edge)\n\n\ndef take(rect, amount, edge, forcePixel=False):\n    if edge == Edge.CenterX or edge == Edge.CenterY:\n        _, r, _ = divide(rect, amount, edge, forcePixel=forcePixel)\n        return r\n    else:\n        r, _ = divide(rect, amount, edge, forcePixel=forcePixel)\n        return r\n\n\ndef subtract(rect, amount, edge, forcePixel=False):\n    _, r = divide(rect, amount, edge, forcePixel=forcePixel)\n    return r\n\n\ndef drop(rect, amount, edge):\n    return subtract(rect, amount, edge)\n\n\ndef inset(rect, dx, dy):\n    x, y, w, h = rect\n    return [x + dx, y + dy, w - (dx * 2), h - (dy * 2)]\n\n\ndef offset(rect, dx, dy):\n    x, y, w, h = rect\n    if MINYISMAXY:\n        return [x + dx, y - dy, w, h]\n    else:\n        return [x + dx, y + dy, w, h]\n\n\ndef expand(rect, amount, edge):\n    x, y, w, h = rect\n    if edge == Edge.MinX:\n        w += amount\n        x -= amount\n    elif edge == Edge.MaxX:\n        w += amount\n    elif edge == Edge.MinY:\n        y -= amount\n        h += amount\n    elif edge == Edge.MaxY:\n        h += amount\n    return [x, y, w, h]\n\n\ndef centerpoint(rect):\n    x, y, w, h = rect\n    return [x + w/2, y + h/2]\n\n\ndef add(rect_a, rect_b):\n    # TODO better/correct implementation!\n    ax, ay, aw, ah = rect_a\n    bx, by, bw, bh = rect_b\n    return [\n        min(ax, bx),\n        min(ay, by),\n        aw + bw,\n        ah\n    ]\n\n\ndef scale(rect, s, x_edge=Edge.CenterX, y_edge=Edge.CenterY):\n    \"\"\"\n    Only a partial implementation atm\n    \"\"\"\n    x, y, w, h = rect\n    return [x * s, y * s, w * s, h * s]\n\n\ndef edgepoints(rect, edge):\n    x, y, w, h = rect\n    if edge == Edge.MaxY:\n        if MINYISMAXY:\n            return (x, y), (x + w, y)\n        else:\n            return (x, y + h), (x + w, y + h)\n    elif edge == Edge.MinY:\n        if MINYISMAXY:\n            return (x, y + h), (x + w, y + h)\n        else:\n            return (x, y), (x + w, y)\n    elif edge == Edge.MinX:\n        return (x, y), (x, y + h)\n    elif edge == Edge.MaxX:\n        return (x + w, y), (x + w, y + h)\n    elif edge == Edge.CenterX:\n        return (x + w/2, y), (x + w/2, y + h)\n    elif edge == Edge.CenterY:\n        return (x, y + h/2), (x + w, y + h/2)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/geometry/rect.py",
    "content": "import math, re, inspect\n\nfrom coldtype.geometry.geometrical import Geometrical\nfrom coldtype.geometry.point import Point\nfrom coldtype.geometry.line import Line\nfrom coldtype.geometry.edge import Edge, txt_to_edge\nfrom coldtype.interpolation import norm\nfrom coldtype.geometry.primitives import *\n\ntry:\n    from fontTools.misc.transform import Transform\nexcept ImportError:\n    Transform = None\n\n\nCOMMON_PAPER_SIZES = {\n    'letter': (612, 792),\n    'tabloid': (792, 1224),\n    'ledger': (1224, 792),\n    'legal': (612, 1008),\n    'a0': (2384, 3371),\n    'a1': (1685, 2384),\n    'a2': (1190, 1684),\n    'a3': (842, 1190),\n    'a4': (595, 842),\n    'a4Small': (595, 842),\n    'a5': (420, 595),\n    'b4': (729, 1032),\n    'b5': (516, 729),\n    'folio': (612, 936),\n    'quarto': (610, 780),\n    '10x14': (720, 1008),\n}\n\nfor key, (w, h) in list(COMMON_PAPER_SIZES.items()):\n    COMMON_PAPER_SIZES[\"%s-landscape\" % key] = (h, w)\n\ndef pair_to_edges(x, y=None):\n    if x == \"NE\":\n        return Edge.MaxX, Edge.MaxY\n    elif x == \"NW\":\n        return Edge.MinX, Edge.MaxY\n    elif x == \"SW\":\n        return Edge.MinX, Edge.MinY\n    elif x == \"SE\":\n        return Edge.MaxX, Edge.MinY\n    elif x == \"N\":\n        return Edge.CenterX, Edge.MaxY\n    elif x == \"S\":\n        return Edge.CenterX, Edge.MinY\n    elif x == \"E\":\n        return Edge.MaxX, txt_to_edge(y)\n    elif x == \"W\":\n        return Edge.MinX, txt_to_edge(y)\n    elif x == \"C\":\n        return Edge.CenterX, Edge.CenterY\n    \n    if y is not None:\n        return txt_to_edge(x), txt_to_edge(y)\n    else:\n        e = txt_to_edge(x)\n        return e, e\n\ndef align(b, rect, x=Edge.CenterX, y=Edge.CenterY, round_result=False):\n    x, y = pair_to_edges(x, y)\n    \n    xoff = 0\n    if x != None:\n        if x == Edge.CenterX:\n            xoff = -b.x + rect.x + rect.w/2 - b.w/2\n        elif x == Edge.MinX:\n            xoff = -(b.x-rect.x)\n        elif x == Edge.MaxX:\n            xoff = -b.x + rect.x + rect.w - b.w\n    \n    yoff = 0\n    if y != None:\n        if y == Edge.CenterY:\n            yoff = -b.y + rect.y + rect.h/2 - b.h/2\n        elif y == Edge.MaxY:\n            yoff = (rect.y + rect.h) - (b.h + b.y)\n        elif y == Edge.MinY:\n            yoff = -(b.y-rect.y)\n    \n    #diff = rect.w - b.w\n    if round_result:\n        return round(xoff), round(yoff)\n    else:\n        return (xoff, yoff)\n\n\nclass GeoIterable():\n    def __init__(self, *items):\n        self.items = items\n\n    def __getitem__(self, key):\n        return self.items[key]\n    \n    def map(self, fn):\n        out = []\n        for idx, item in enumerate(self.items):\n            arg_count = len(inspect.signature(fn).parameters)\n            if arg_count == 1:\n                result = fn(item)\n            else:\n                result = fn(idx, item)\n            out.append(result)\n        return GeoIterable(*out)\n\n\nclass Rect(Geometrical):\n    \"\"\"\n    Representation of a rectangle as (x, y, w, h), indexable\n    \n    Constructor handles multiple formats, including:\n    \n    * `x, y, w, h`\n    * `[x, y, w, h]`\n    * `w, h` (x and y default to 0, 0)\n\n    `Rect` objects can be splat'd where lists are expected as individual arguments (as in drawBot), i.e. `rect(*my_rect)`, or can be passed directly to functions expected a list representation of a rectangle.\n    \"\"\"\n\n    def FromCenter(center, w, h=None) -> \"Rect\":\n        \"\"\"Create a rect given a center point and a width and height (optional, height will default to width if not specified\")\"\"\"\n        x, y = center\n        if not h:\n            h = w\n        return Rect((x - w/2, y - h/2, w, h))\n    \n    def Inches(w, h, dpi=72.0) -> \"Rect\":\n        return Rect(w*dpi, h*dpi)\n\n    def __init__(self, *rect):\n        if hasattr(rect[0], \"rect\") and not isinstance(rect[0], Rect):\n            rect = [rect[0].rect]\n\n        if isinstance(rect[0], str):\n            x, y = 0, 0\n            w, h = COMMON_PAPER_SIZES[rect[0].lower()]\n        elif isinstance(rect[0], int) or isinstance(rect[0], float):\n            if len(rect) == 1:\n                x, y = 0, 0\n                w, h = rect[0], rect[0]\n            else:\n                try:\n                    x, y, w, h = rect\n                except:\n                    w, h = rect\n                    x, y = 0, 0\n        else:\n            try:\n                x, y, w, h = rect[0]\n            except:\n                w, h = rect[0]\n                x, y = 0, 0\n        self.x = x\n        self.y = y\n        self.w = w\n        self.h = h\n    \n    def origin(self) -> tuple:\n        \"\"\"`(x, y)` as tuple\"\"\"\n        return self.x, self.y\n\n    def from_obj(obj, w=None, h=None) -> \"Rect\":\n        r = Rect((0, 0, 0, 0))\n        try:\n            r.x = obj.x\n            r.y = obj.y\n        except:\n            pass\n        try:\n            r.w = obj.w\n            r.h = obj.h\n        except:\n            pass\n        if w:\n            r.w = w\n            r.x -= w/2\n        if h:\n            r.h = h\n            r.y -= h/2\n        return r\n\n    def FromExtents(extents) -> \"Rect\":\n        nw, ne, se, sw = extents\n        return Rect(sw[0], sw[1], abs(ne[0] - sw[0]), abs(ne[1] - sw[1]))\n    \n    def noop(self, *args, **kwargs) -> \"Rect\":\n        return self\n\n    def FromMnMnMxMx(extents) -> \"Rect\":\n        \"\"\"Create a rectangle from `xmin, ymin, xmax, ymax`\"\"\"\n        xmin, ymin, xmax, ymax = extents\n        return Rect(xmin, ymin, xmax - xmin, ymax - ymin)\n\n    def FromPoints(*points) -> \"Rect\":\n        xmin, ymin, xmax, ymax = None, None, None, None\n        for p in points:\n            if xmin is None or p[0] < xmin:\n                xmin = p[0]\n            if ymin is None or p[1] < ymin:\n                ymin = p[1]\n            if xmax is None or p[0] > xmax:\n                xmax = p[0]\n            if ymax is None or p[1] > ymax:\n                ymax = p[1]\n        return Rect.FromMnMnMxMx([xmin, ymin, xmax, ymax])\n\n    def mnmnmxmx(self) -> tuple:\n        \"\"\"Return extents of rectangle as list\"\"\"\n        return (self.x, self.y, self.x + self.w, self.y + self.h)\n\n    def __getitem__(self, key):\n        return self.rect()[key]\n\n    def __repr__(self):\n        return \"Rect({:.2f},{:.2f},{:.2f},{:.2f})\".format(*self.rect())\n    \n    def __eq__(self, r):\n        try:\n            return all([self.x == r.x, self.y == r.y, self.w == r.w, self.h == r.h])\n        except:\n            return False\n    \n    def __gt__(self, other):\n        return self.w > other.w and self.h > other.h\n\n    def __lt__(self, other):\n        return self.w < other.w and self.h < other.h\n\n    def __ge__(self, other):\n        return self.w >= other.w and self.h >= other.h\n\n    def __le__(self, other):\n        return self.w <= other.w and self.h <= other.h\n    \n    __hash__ = object.__hash__\n\n    def rect(self) -> list:\n        \"\"\"x,y,w,h in list\"\"\"\n        return [self.x, self.y, self.w, self.h]\n    \n    def ambit(self, tx=None, ty=None) -> \"Rect\":\n        return self\n    \n    @property\n    def r(self) -> \"Rect\":\n        \"\"\"A Scaffold has an .r, this was we can always 'cast' a Scaffold/Rect to a Rect\"\"\"\n        return self\n    \n    xywh = rect\n    \n    def round(self) -> \"Rect\":\n        \"\"\"round the values in the rectangle to the nearest integer\"\"\"\n        return Rect([int(round(n)) for n in self])\n\n    def xy(self) -> list:\n        \"\"\"equivalent to origin\"\"\"\n        return [self.x, self.y]\n\n    def wh(self) -> list:\n        \"\"\"the width and height as a tuple\"\"\"\n        return [self.w, self.h]\n    \n    @property\n    def mnx(self) -> int:\n        return self.x\n    \n    @property\n    def mny(self) -> int:\n        return self.y\n\n    @property\n    def mxx(self) -> int:\n        return self.x + self.w\n    \n    @property\n    def mxy(self) -> int:\n        return self.y + self.h\n    \n    @property\n    def mdx(self) -> int:\n        return self.point(\"C\").x\n    \n    @property\n    def mdy(self) -> int:\n        return self.point(\"C\").y\n\n    def square(self, outside=False) -> \"Rect\":\n        \"\"\"take a square from the center of this rect\"\"\"\n        if not outside:\n            return Rect(centered_square_inside(self.rect()))\n        else:\n            return Rect(centered_square_outside(self.rect()))\n    \n    def fit_aspect(self, x, y, align=\"C\", grid=False):\n        aspect_ratio = x / y\n\n        if self.w / self.h > aspect_ratio:\n            scale = self.h / y\n            inner_width = x * scale\n            inner_height = self.h\n        else:\n            scale = self.w / x\n            inner_width = self.w\n            inner_height = y * scale\n\n        r = Rect(self.x, self.y, inner_width, inner_height).align(self, align)\n        if grid:\n            return r.grid(x, y)\n        else:\n            return r\n    \n    def align(self, rect, x=Edge.CenterX, y=Edge.CenterY, round_result=False) -> \"Rect\":\n        return self.offset(*align(self, rect, x, y, round_result=round_result))\n    \n    def ipos(self, pt, defaults=(0.5, 0.5), clamp=True) -> tuple:\n        \"\"\"\n        Get scaled 0-1 bounded (optional) value\n        from a point in a rectangle\n        \"\"\"\n        if not pt:\n            return defaults\n        sx = ((pt.x - self.x) / self.w)\n        sy = ((pt.y - self.y) / self.h)\n        if clamp:\n            sx = min(1, max(0, sx))\n            sy = min(1, max(0, sy))\n        return sx, sy\n\n    def divide(self, amount, edge, forcePixel=False) -> list:\n        \"\"\"\n        **Dividing**\n\n        Derived from the behavior of the classic Cocoa function CGRectDivide, which takes a rectangle and breaks it into two pieces, based on a pixel amount and an edge.\n\n        A quick example: assume you have a rectangle, `r`, defined as such:\n\n        `r = Rect(0, 0, 300, 100)`\n        \n        If you want to break that into a left-hand rectangle that’s 100 pixels wide and a right-hand rectangle that’s 200 pixels wide, you could either say:\n        \n        `left, right = r.divide(100, \"mnx\")`\n        \n        `or you could say`\n        \n        `right, left = r.divide(200, \"mxx\")`\n\n        where `mxx` is the rightmost edge, and `mnx` is the leftmost edge.\n\n        **Centering**\n\n        A special use-case is if you want to break a rectangle into `three` rectangles, based on the center \"edge\", you can do something like this:\n\n        `left, center, right = r.divide(200, \"mdx\")`\n\n        This will result in three rectangles, always left-to-right, where\n        left is 50px wide, then center is 200px wide, then right is also 50px wide — anything not in the center will be evenly distributed between left and right, or top-and-bottom in the case of a Y edge.\n        \"\"\"\n        edge = txt_to_edge(edge)\n        if edge == Edge.CenterX or edge == Edge.CenterY:\n            a, b, c = divide(self.rect(), amount, edge, forcePixel=forcePixel)\n            return GeoIterable(Rect(a), Rect(b), Rect(c))\n        else:\n            a, b = divide(self.rect(), amount, edge, forcePixel=forcePixel)\n            return GeoIterable(Rect(a), Rect(b))\n\n    def subdivide(self, amount, edge, forcePixel=False) -> list:\n        \"\"\"\n        Like `divide`, but here you specify the number of equal pieces you want (like columns or rows), and then what edge to start at, i.e.\n        \n        .. code:: python\n            \n            r = Rect(0, 0, 500, 100)\n            r.subdivide(5, \"mxx\")\n            => [Rect([400.0, 0, 100.0, 100]), Rect([300.0, 0, 100.0, 100]), Rect([200.0, 0, 100.0, 100]), Rect([100.0, 0, 100.0, 100]), Rect([0, 0, 100.0, 100])]\n        \n        will get you five 100-px wide rectangles, right-to-left\n\n        (N.B. Does not support center edges, as that makes no sense)\n        \"\"\"\n        edge = txt_to_edge(edge)\n        return [Rect(x) for x in subdivide(self.rect(), amount, edge, forcePixel=forcePixel)]\n    \n    def subdivide_with_leading(self, count, leading, edge, forcePixel=True) -> list:\n        \"\"\"\n        Same as `subdivide`, but inserts leading between each subdivision\n        \"\"\"\n        return self.subdivide_with_leadings(count, [leading]*(count-1), edge, forcePixel)\n\n    def subdivide_with_leadings(self, count, leadings, edge, forcePixel=True) -> list:\n        \"\"\"\n        Same as `subdivide_with_leadings`, but inserts leading between each subdivision, indexing the size of the leading from a list of leadings\n        \"\"\"\n        edge = txt_to_edge(edge)\n        leadings = leadings + [0]\n        full = self.w if edge == Edge.MinX or edge == Edge.MaxX else self.h\n        unit = (full - sum(leadings)) / count\n        amounts = [val for pair in zip([unit] * count, leadings) for val in pair][:-1]\n        return [Rect(x) for x in subdivide(self.rect(), amounts, edge, forcePixel=forcePixel)][::2]\n    \n    sub = subdivide\n    subl = subdivide_with_leading\n    subls = subdivide_with_leadings\n\n    def transform(self, t) -> \"Rect\":\n        pts = [\"NW\", \"NE\", \"SE\", \"SW\"]\n        x1, x2, x3, x4 = [t.transformPoint(self.point(pt)) for pt in pts]\n        return Rect.FromExtents([x1, x2, x3, x4])\n\n    def rotate(self, degrees, point=None) -> \"Rect\":\n        if Transform:\n            t = Transform()\n            if not point:\n                point = self.point(\"C\")\n            t = t.translate(point.x, point.y)\n            t = t.rotate(math.radians(degrees))\n            t = t.translate(-point.x, -point.y)\n            return self.transform(t)\n        else:\n            raise Exception(\"fontTools not installed\")\n\n    def scale(self, s, x_edge=Edge.MinX, y_edge=Edge.MinY) -> \"Rect\":\n        return Rect(scale(self.rect(), s, x_edge, y_edge))\n        #x_edge = txt_to_edge(x_edge)\n        #y_edge = txt_to_edge(y_edge)\n        #sx = self.w * s\n        #sy = self.h * s\n        #return self.take(sx, x_edge, forcePixel=True).take(sy, y_edge, forcePixel=True)\n\n    def union(self, otherRect) -> \"Rect\":\n        return Rect.FromMnMnMxMx(unionRect(self.mnmnmxmx(), otherRect.mnmnmxmx()))\n    \n    def intersection(self, otherRect) -> \"Rect\":\n        return Rect.FromMnMnMxMx(sectRect(self.mnmnmxmx(), otherRect.mnmnmxmx())[1])\n    \n    sect = intersection\n\n    def take(self, amount, edge, forcePixel=False) -> \"Rect\":\n        \"\"\"\n        Like `divide`, but here it just returns the \"first\" rect from a divide call, not all the resulting pieces, i.e. you can \"take\" 200px from the center of a rectangle by doing this `Rect(0, 0, 300, 100).take(200, \"mdx\")` which will result in `Rect([50, 0, 200, 100])`\n        \"\"\"\n        edge = txt_to_edge(edge)\n        if not isinstance(edge, Edge):\n            res = self\n            for e in edge:\n                res = res.take(amount, e, forcePixel=forcePixel)\n            return res\n        else:\n            return Rect(take(self.rect(), amount, edge, forcePixel=forcePixel))\n\n    def takeOpposite(self, amount, edge, forcePixel=False) -> \"Rect\":\n        edge = txt_to_edge(edge)\n        return self.divide(amount, edge, forcePixel=forcePixel)[1]\n\n    def subtract(self, amount, edge, forcePixel=False) -> \"Rect\":\n        \"\"\"\n        The opposite of `take`, this will remove and not return a piece of the given amount from the given edge.\n        \n        Let's say you have a 100px-wide square and you want to drop 10px from the right-hand side, you would do:\n\n        `Rect(100, 100).subtract(10, Edge.MaxX)`, which leaves you with `Rect([0, 0, 90, 100])`\n        \"\"\"\n        edge = txt_to_edge(edge)\n        return Rect(subtract(self.rect(), amount, edge, forcePixel=forcePixel))\n    \n    drop = subtract\n\n    def expand(self, amount, edge) -> \"Rect\":\n        edges = None\n        if edge == \"NW\":\n            edges = [\"mxy\", \"mnx\"]\n        elif edge == \"NE\":\n            edges = [\"mxy\", \"mxx\"]\n        elif edge == \"SE\":\n            edges = [\"mny\", \"mxx\"]\n        elif edge == \"SW\":\n            edges = [\"mny\", \"mnx\"]\n        \n        if edges:\n            return self.expand(amount, edges[0]).expand(amount, edges[1])\n        edge = txt_to_edge(edge)\n        return Rect(expand(self.rect(), amount, edge))\n    \n    add = expand\n\n    def inset(self, dx, dy=None) -> \"Rect\":\n        \"\"\"\n        Creates padding in the amount of dx and dy. Also does expansion with negative values, or both at once\n        \"\"\"\n        if dy == None:\n            dy = dx\n        return Rect(inset(self.rect(), dx, dy))\n    \n    def inset_x(self, dx) -> \"Rect\":\n        return self.inset(dx, 0)\n    \n    def inset_y(self, dy) -> \"Rect\":\n        return self.inset(0, dy)\n\n    def offset(self, dx, dy=None) -> \"Rect\":\n        if dy == None:\n            dy = dx\n        return Rect(offset(self.rect(), dx, dy))\n    \n    def offset_x(self, dx) -> \"Rect\":\n        return self.offset(dx, 0)\n    \n    def offset_y(self, dy) -> \"Rect\":\n        return self.offset(0, dy)\n    \n    o = offset\n\n    def zero(self) -> \"Rect\":\n        \"\"\"disregard origin and set it to (0,0)\"\"\"\n        return Rect((0, 0, self.w, self.h))\n    \n    def nonzero(self) -> bool:\n        \"\"\"is this rect not just all zeros?\"\"\"\n        return not (self.x == 0 and self.y == 0 and self.w == 0 and self.h == 0)\n\n    def __add__(self, another_rect):\n        return self.union(another_rect)\n        #return Rect(add(self, another_rect))\n\n    def grid(self, columns=2, rows=None) -> list:\n        \"\"\"Construct a grid; if rows is None, rows = columns\"\"\"\n        if rows is None:\n            rows = columns\n\n        xs = [row.subdivide(columns, Edge.MinX) for row in self.subdivide(rows, Edge.MaxY)]\n        return [item for sublist in xs for item in sublist]\n\n    def pieces(self, amount, edge) -> list:\n        edge = txt_to_edge(edge)\n        return [Rect(x) for x in pieces(self.rect(), amount, edge)]\n\n    def edge(self, edge) -> Line:\n        edge = txt_to_edge(edge)\n        return Line(*edgepoints(self.rect(), edge))\n\n    def center(self) -> Point:\n        return Point(centerpoint(self.rect()))\n\n    def flip(self, h) -> \"Rect\":\n        return Rect([self.x, h - self.h - self.y, self.w, self.h])\n\n    def cardinals(self) -> tuple:\n        return self.point(\"N\"), self.point(\"E\"), self.point(\"S\"), self.point(\"W\")\n\n    def intercardinals(self) -> tuple:\n        return self.point(\"NE\"), self.point(\"SE\"), self.point(\"SW\"), self.point(\"NW\")\n    \n    def FromIntercardinals(pts) -> \"Rect\":\n        ne, se, sw, nw = pts\n        return Rect(sw[0], sw[1], abs(ne[0] - sw[0]), abs(ne[1] - sw[1]))\n    \n    def aspect(self) -> float:\n        return self.h / self.w\n    \n    def fit(self, other) -> \"Rect\":\n        sx, sy, sw, sh = self\n        ox, oy, ow, oh = other\n        if ow > oh:\n            fw = sw\n            fh = sw * other.aspect()\n        else:\n            fh = sh\n            sw = sh * 1/other.aspect()\n        #print(sh, fw, fh, other.aspect())\n        return self.take(fh, \"mdy\")\n    \n    def avg(self) -> Point:\n        pts = self.cardinals()\n        return Point(\n            sum([p.x for p in pts])/4,\n            sum([p.y for p in pts])/4)\n    \n    def asciih(self, layout, areas):\n        from coldtype.grid import Grid\n        g = Grid(self, layout, \"a\", areas)\n        out = []\n        for k, v in g.keyed.items():\n            try:\n                ki = int(k)\n                out.append([ki, v])\n            except ValueError:\n                pass\n        return [v[1] for v in sorted(out, key=lambda x: x[0])]\n\n    def asciiv(self, layout, areas):\n        from coldtype.grid import Grid\n        g = Grid(self, \"a\", layout, areas.replace(\" \", \" / \"))\n        out = []\n        for k, v in g.keyed.items():\n            try:\n                ki = int(k)\n                out.append([ki, v])\n            except ValueError:\n                pass\n        return [v[1] for v in sorted(out, key=lambda x: x[0])]\n\n    def point(self, eh, ev=Edge.MinX) -> Point:\n        \"\"\"\n        Get a `Point` at a given compass direction, chosen from\n        \n        * C\n        * W\n        * NW\n        * N\n        * NE\n        * E\n        * SE\n        * S\n        * SW\n        \"\"\"\n\n        ev = txt_to_edge(ev)\n        pc = Edge.PairFromCompass(eh)\n        if pc:\n            return self.point(*pc)\n        else:\n            px = self.x\n            py = self.y\n\n            if eh == Edge.MaxX:\n                px = self.x + self.w\n            elif eh == Edge.CenterX:\n                px = self.x + self.w/2\n\n            if ev == Edge.MaxY:\n                py = self.y + self.h\n            if ev == Edge.CenterY:\n                py = self.y + self.h/2\n\n            return Point((px, py), rect=self, corner=(eh, ev))\n    \n    p = point\n\n    def nsew(self):\n        return [self.en, self.es, self.ee, self.ew]\n\n    @property\n    def pne(self) -> Point: return self.point(\"NE\")\n\n    @property\n    def pe(self) -> Point: return self.point(\"E\")\n\n    @property\n    def ee(self) -> Line: return self.edge(\"mxx\")\n\n    @property\n    def pse(self) -> Point: return self.point(\"SE\")\n\n    @property\n    def ps(self) -> Point: return self.point(\"S\")\n\n    @property\n    def es(self) -> Line: return self.edge(\"mny\")\n\n    @property\n    def psw(self) -> Point: return self.point(\"SW\")\n\n    @property\n    def pw(self) -> Point: return self.point(\"W\")\n\n    @property\n    def ew(self) -> Line: return self.edge(\"mnx\")\n\n    @property\n    def pnw(self) -> Point: return self.point(\"NW\")\n\n    @property\n    def pn(self) -> Point: return self.point(\"N\")\n\n    @property\n    def en(self) -> Line: return self.edge(\"mxy\")\n\n    @property\n    def pc(self) -> Point: return self.point(\"C\")\n\n    @property\n    def ecx(self) -> Line: return self.edge(\"mdx\")\n\n    @property\n    def ecy(self) -> Line: return self.edge(\"mdy\")\n\n    def contains(self, other) -> bool:\n        return (self.pne.x >= other.pne.x and self.pne.y >= other.pne.y\n            and self.psw.x <= other.psw.x and self.psw.y <= other.psw.y)\n    \n    def __contains__(self, item) -> bool:\n        return self.contains(item)\n\n    def intersects(self, other) -> bool:\n        return not (self.point(\"NE\").x < other.point(\"SW\").x or self.point(\"SW\").x > other.point(\"NE\").x or self.point(\"NE\").y < other.point(\"SW\").y or self.point(\"SW\").y > other.point(\"NE\").y)\n    \n    def maxima(self, n, edge) -> \"Rect\":\n        e = txt_to_edge(edge)\n        if e == Edge.MinX:\n            return self.setmnx(n)\n        elif e == Edge.MaxX:\n            return self.setmxx(n)\n        elif e == Edge.CenterX:\n            return self.setmdx(n)\n        elif e == Edge.MinY:\n            return self.setmny(n)\n        elif e == Edge.MaxY:\n            return self.setmxy(n)\n        elif e == Edge.CenterY:\n            return self.setmdy(n)\n        else:\n            raise Exception(\"HELLO\")\n    \n    def setmnx(self, x) -> \"Rect\":\n        mnx, mny, mxx, mxy = self.mnmnmxmx()\n        return Rect.FromMnMnMxMx([x, mny, mxx, mxy])\n    \n    def __mul__(self, other):\n        return self.setmnx(other)\n    \n    def setlmnx(self, x):\n        if x > self.mnx:\n            return self.setmnx(x)\n        return self\n    \n    def setmny(self, y):\n        mnx, mny, mxx, mxy = self.mnmnmxmx()\n        return Rect.FromMnMnMxMx([mnx, y, mxx, mxy])\n    \n    def __matmul__(self, other):\n        return self.setmny(other)\n    \n    def setlmny(self, y):\n        if y > self.mny:\n            return self.setmny(y)\n        return self\n    \n    def setmxx(self, x):\n        mnx, mny, mxx, mxy = self.mnmnmxmx()\n        return Rect.FromMnMnMxMx([mnx, mny, x, mxy])\n    \n    def setlmxx(self, x):\n        if x < self.mxx:\n            return self.setmxx(x)\n        return self\n    \n    def setmxy(self, y):\n        mnx, mny, mxx, mxy = self.mnmnmxmx()\n        return Rect.FromMnMnMxMx([mnx, mny, mxx, y])\n    \n    def setlmxy(self, y):\n        if y < self.mxy:\n            return self.setmxy(y)\n        return self\n    \n    def setmdx(self, x):\n        c = self.point(\"C\")\n        return Rect.FromCenter(Point([x, c.y]), self.w, self.h)\n    \n    def setmn(self, mn):\n        return self.setmnx(mn.x).setmny(mn.y)\n\n    def setmx(self, mx):\n        return self.setmxx(mx.x).setmxy(mx.y)\n    \n    def setw(self, w):\n        return Rect(self.x, self.y, w, self.h)\n    \n    def seth(self, h):\n        return Rect(self.x, self.y, self.w, h)\n    \n    def parse_line(self, d, line):\n        parts = re.split(r\"\\s|ƒ|,\", line)\n        reified = []\n        for p in parts:\n            if p == \"auto\" or p == \"a\":\n                reified.append(\"auto\")\n            elif \"%\" in p:\n                reified.append(float(p.replace(\"%\", \"\"))/100 * d)\n            else:\n                fp = float(p)\n                if fp > 1:\n                    reified.append(fp)\n                else:\n                    reified.append(fp*d)\n        remaining = d - sum([0 if r == \"auto\" else r for r in reified])\n        #if not float(remaining).is_integer():\n        #    raise Exception(\"floating parse\")\n        auto_count = reified.count(\"auto\")\n        if auto_count > 0:\n            auto_d = remaining / auto_count\n            auto_ds = [auto_d] * auto_count\n            if not auto_d.is_integer():\n                auto_d_floor = math.floor(auto_d)\n                leftover = remaining - auto_d_floor * auto_count\n                for aidx, ad in enumerate(auto_ds):\n                    if leftover > 0:\n                        auto_ds[aidx] = auto_d_floor + 1\n                        leftover -= 1\n                    else:\n                        auto_ds[aidx] = auto_d_floor\n                #print(auto_ds)\n                #print(\"NO\", auto_d - int(auto_d))\n        res = []\n        for r in reified:\n            if r == \"auto\":\n                res.append(auto_ds.pop())\n            else:\n                res.append(r)\n        return res\n        #return [auto_d if r == \"auto\" else r for r in reified]\n    \n    def __floordiv__(self, other):\n        return self.offset(0, other)\n    \n    def __truediv__(self, other):\n        return self.offset(other, 0)\n    \n    def symbol_to_edge(self, idx, symbol):\n        d = [\"x\", \"y\"][idx]\n        if symbol == \"-\":\n            return \"mn\" + d\n        elif symbol == \"+\":\n            return \"mx\" + d\n        elif symbol == \"=\":\n            return \"md\" + d\n    \n    def sign_to_dim(self, sign):\n        xy = \"x\"\n        if isinstance(sign, complex):\n            xy = \"y\"\n            sign = sign.imag\n        return xy, sign\n    \n    def sign_to_edge(self, sign):\n        xy, sign = self.sign_to_dim(sign)\n        if sign == 0:\n            return \"md\" + xy\n        elif sign < 0:\n            return \"mn\" + xy\n        else:\n            return \"mx\" + xy\n    \n    def t(self, sign, n):\n        return self.take(n, self.sign_to_edge(sign))\n    \n    def s(self, sign, n):\n        return self.subtract(n, self.sign_to_edge(sign))\n    \n    def i(self, sign, n):\n        xy, _ = self.sign_to_dim(sign)\n        return self.inset(n if xy == \"x\" else 0, n if xy == \"y\" else 0)\n    \n    def columns(self, *args):\n        r = self\n        _xs = \" \".join([str(s) for s in args])\n        ws = self.parse_line(r.w, _xs)\n        rs = []\n        for w in ws:\n            _r, r = r.divide(w, \"mnx\")\n            rs.append(_r)\n        return rs\n    \n    def rows(self, *args):\n        r = self\n        _xs = \" \".join([str(s) for s in args])\n        ws = self.parse_line(r.h, _xs)\n        rs = []\n        for w in ws:\n            _r, r = r.divide(w, \"mxy\")\n            rs.append(_r)\n        return rs\n    \n    def interp(self, v, other) -> \"Rect\":\n        \"\"\"Interpolate with another rect\"\"\"\n        apts = self.intercardinals()\n        bpts = other.intercardinals()\n        ipts = [p1.interp(v, p2) for p1, p2 in zip(apts, bpts)]\n        return Rect.FromIntercardinals(ipts)\n\n    def is_integer(self):\n        return all(float(x).is_integer() for x in self.rect());\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/grid/__init__.py",
    "content": "import re, math\nfrom coldtype.geometry import Rect, Edge, Point\nfrom string import ascii_lowercase\n\n\ndef parse_line(d, line):\n    parts = re.split(r\"\\s\", line.strip())\n    reified = []\n    for p in parts:\n        if p == \"auto\" or p == \"a\":\n            reified.append(\"auto\")\n        elif \"%\" in p:\n            reified.append(float(p.replace(\"%\", \"\"))/100 * d)\n        else:\n            fp = float(p)\n            \n            reified.append(fp)\n    remaining = d - sum([0 if r == \"auto\" else r for r in reified])\n    if not float(remaining).is_integer():\n        remaining = round(remaining)\n        #raise Exception(\"floating parse\")\n    auto_count = reified.count(\"auto\")\n    if auto_count > 0:\n        auto_d = remaining / auto_count\n        auto_ds = [auto_d] * auto_count\n        if not auto_d.is_integer():\n            auto_d_floor = math.floor(auto_d)\n            leftover = remaining - auto_d_floor * auto_count\n            for aidx, ad in enumerate(auto_ds):\n                if leftover > 0:\n                    auto_ds[aidx] = auto_d_floor + 1\n                    leftover -= 1\n                else:\n                    auto_ds[aidx] = auto_d_floor\n            #print(auto_ds)\n            #print(\"NO\", auto_d - int(auto_d))\n    res = []\n    for r in reified:\n        if r == \"auto\":\n            res.append(auto_ds.pop())\n        else:\n            res.append(r)\n    return res\n    #return [auto_d if r == \"auto\" else r for r in reified]\n\n\ndef union_rect(r1, r2):\n    ox = min(r1.x, r2.x)\n    oy = min(r1.y, r2.y)\n    ex = max(r1.x+r1.w, r2.x+r2.w)\n    ey = max(r1.y+r1.h, r2.y+r2.h)\n    return Rect(ox, oy, ex-ox, ey-oy)\n    \nclass Grid():\n    def __init__(self,\n        r,\n        columns=\"auto\",\n        rows=\"auto\",\n        areas=None,\n        warn_float=True,\n        forcePixel=False,\n        ):\n        self._rect = r\n        self.warn_float = warn_float\n        self.force_pixel = forcePixel\n\n        if isinstance(columns, str):\n            self.columns = columns\n        else:\n            self.columns = (\"a \"*columns).strip()\n\n        if isinstance(rows, str):\n            self.rows = rows\n        else:\n            self.rows = (\"a \"*rows).strip()\n        \n        _rows = self.rows.replace(\"|\", \"\").replace(\"  \", \" \").split(\" \")\n        _columns = self.columns.replace(\"|\", \"\").replace(\" \", \" \").split(\" \")\n        \n        self.areas = areas\n        if not self.areas:\n            ys = ascii_lowercase\n            xs = [f\"{i}\" for i in range(1, 100)]\n            cs = []\n            cw = len(_columns)\n            if len(_rows) == 1:\n                cs = [\" \".join([f\"a{i}\" for i in xs[0:cw]])]\n            else:\n                for ridx, r in enumerate(_rows):\n                    pre = ys[ridx]\n                    cs.append(pre + f\" {pre}\".join(xs[0:cw]))\n            self.areas = \" / \".join(cs)\n\n        self.cells = None\n        self.keyed = None\n        self.update()\n    \n    def __repr__(self):\n        return f\"Grid({list(self.keyed.keys())})\"\n    \n    def clone(self, other_grid):\n        self.columns = other_grid.columns\n        self.rows = other_grid.rows\n        self.areas = other_grid.areas\n        return self\n    \n    @property\n    def r(self):\n        return self.rect\n    \n    @property\n    def rect(self):\n        return self._rect\n    \n    @rect.setter\n    def rect(self, rect):\n        self._rect = rect\n        self.update()\n        return self\n\n    def key(self):\n        if isinstance(self._rect, str):\n            return self._rect\n    \n    def update(self):\n        if self.key():\n            return\n\n        # TODO should be read from a configurable dict\n        # (on a subclass of grid?)\n        self.columns = self.columns.replace(\"$CLH\", \"36\")\n        self.rows = self.rows.replace(\"$CLH\", \"36\")\n\n        cg, bs = self.calc_grid(self._rect, self.columns, self.rows, self.areas)\n        self.borders = bs\n        if self.areas:\n            self.keyed = cg\n            self.cells = None\n        else:\n            self.cells = cg\n            self.keyed = None\n        \n    def __getitem__(self, key):\n        if self.cells:\n            if isinstance(key, int):\n                return self.cells[key]\n            else:\n                raise Exception(\"Must query cell-grid with indices\")\n        elif self.keyed:\n            if isinstance(key, str):\n                return self.keyed[key]\n            else:\n                print(\">>>>>>>>>>\", self, key)\n                raise Exception(\"Must query area-grid with strings\")\n\n    def calc_grid(self, r, columns, rows, areas):\n        cs = parse_line(r.w, columns)\n        rs = parse_line(r.h, rows)\n        if areas:\n            areas = [a.strip().split(\" \") for a in areas.split(\"/\")]\n        _grid = []\n        keyed = {}\n        borders = []\n        for idx, rr in enumerate(r.subdivide(rs[:-1], \"mxy\", forcePixel=self.force_pixel)):\n            cells = rr.subdivide(cs[:-1], \"mnx\", forcePixel=self.force_pixel)\n            _grid.extend(cells)\n            if areas:\n                _keyed = {}\n                last_area = None\n                jdx = 0\n                if idx >= len(areas):\n                    continue\n                for ra in areas[idx]:\n                    if not ra:\n                        continue\n                    if ra == \"||\":\n                        borders.append([last_area, Edge.MaxX, 1])\n                        continue\n                    elif ra == \"|\":\n                        borders.append([last_area, Edge.MaxX, 0])\n                        continue\n                    elif ra == \"__\":\n                        borders.append([rr, Edge.MinY, 1])\n                        continue\n                    elif ra == \"_\":\n                        borders.append([rr, Edge.MinY, 0])\n                        continue\n\n                    _ra = ra.replace(\"_\", \"\")\n                    if ra.startswith(\"__\"):\n                        borders.append([_ra, Edge.MaxY, 1])\n                    elif ra.startswith(\"_\"):\n                        borders.append([_ra, Edge.MaxY, 0])\n                    elif ra.endswith(\"__\"):\n                        borders.append([_ra, Edge.MinY, 1])\n                    elif ra.endswith(\"_\"):\n                        borders.append([_ra, Edge.MinY, 0])\n                    \n                    ra = _ra\n                    if last_area and last_area == ra:\n                        _keyed[ra] = _keyed[ra] = union_rect(_keyed[ra], cells[jdx])\n                    else:\n                        try:\n                            _keyed[ra] = cells[jdx]\n                        except IndexError:\n                            print(\"-------------------\")\n                            print(self.columns)\n                            print(self.rows)\n                            print(self.areas)\n                            print(ra)\n                            raise Exception(\"Invalid\")\n                    last_area = ra\n                    jdx += 1\n                for k, v in _keyed.items():\n                    if k not in keyed:\n                        keyed[k] = v\n                    else:\n                        keyed[k] = union_rect(keyed[k], v)\n        if areas:\n            if borders:\n                b = []\n                for a, edge, weight in borders:\n                    if isinstance(a, Rect):\n                        b.append([a, edge, weight])\n                    else: \n                        b.append([keyed[a], edge, weight])\n            else:\n                b = []\n\n            if True:\n                for k, v in keyed.items():\n                    x, y, w, h = v\n                    if self.warn_float:\n                        if (not float(x).is_integer()\n                            or not float(y).is_integer()\n                            or not float(w).is_integer()\n                            or not float(h).is_integer()):\n                            print(\">>> FLOAT RECT:::\", k, v, \"///\", r)\n            return keyed, b\n        else:\n            return _grid, []"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/helpers.py",
    "content": "from pathlib import Path\nfrom coldtype.text.reader import normalize_font_path\nfrom coldtype.interpolation import norm, interp_dict, lerp, loopidx\nfrom coldtype.random import random_series\n\ntry:\n    from defcon import Font as DefconFont\nexcept ImportError:\n    DefconFont = None\n\n\ndef sibling(root, file):\n    return Path(root).parent.joinpath(file)\n\ndef download(url, save_to:Path, force=False):\n    import requests\n\n    if not force and save_to.exists():\n        return save_to\n\n    save_to.parent.mkdir(parents=True, exist_ok=True)\n    \n    response = requests.get(url)\n    response.raise_for_status()\n    \n    with save_to.open(\"wb\") as f:\n        f.write(response.content)\n    \n    return save_to\n\ndef raw_ufo(path):\n    return DefconFont(normalize_font_path(path))\n\ndef quick_ufo(path\n    , familyName\n    , styleName=\"Regular\"\n    , versionMajor=1\n    , versionMinor=0\n    , unitsPerEm=1000\n    , descender=-250\n    , ascender=750\n    , capHeight=750\n    , xHeight=500\n    ):\n    np:Path = Path(path).expanduser().resolve()\n    \n    if not np.exists():\n        np.parent.mkdir(exist_ok=True, parents=True)\n        ufo = DefconFont()\n        ufo.save(str(np))\n    \n    ufo = DefconFont(str(np))\n\n    ufo.info.familyName = familyName\n    ufo.info.styleName = styleName\n    ufo.info.versionMajor = versionMajor\n    ufo.info.versionMinor = versionMinor\n    ufo.info.unitsPerEm = unitsPerEm\n    ufo.info.descender = descender\n    ufo.info.xHeight = xHeight\n    ufo.info.capHeight = capHeight\n    ufo.info.ascender = ascender\n\n    return ufo\n\n\ndef ßhide(el):\n    return None\n\ndef ßshow(el):\n    return el\n\ndef cycle_idx(arr, idx):\n    if idx < 0:\n        return len(arr) - 1\n    elif idx >= len(arr):\n        return 0\n    else:\n        return idx\n\n_by_uni = None\n_by_glyph = None\n_class_lookup = None\n\ndef _populate_glyphs_unis():\n    global _by_uni\n    global _by_glyph\n    global _class_lookup\n    _by_uni = {}\n    _by_glyph = {}\n    _class_lookup = {}\n\n    #try:\n    if True:\n        lines = (Path(__file__).parent / \"assets/glyphNamesToUnicode.txt\").read_text().split(\"\\n\")\n\n        for l in lines:\n            if l.startswith(\"#\"):\n                continue\n            l = l.split(\" \")[:3]\n            uni = int(l[1], 16)\n            _by_uni[uni] = l[0]\n            _by_glyph[l[0]] = uni\n            _class_lookup[l[0]] = l[2]\n    #except:\n    #    pass\n\ndef uni_to_glyph(u):\n    if not _by_uni:\n        _populate_glyphs_unis()\n    return _by_uni.get(u)\n    \ndef glyph_to_uni(g):\n    if g.lower() in [\n        \"gcommaaccent\",\n        \"kcommaaccent\",\n        \"lcommaaccent\",\n        \"ncommaaccent\",\n        \"rcommaaccent\",\n        ]:\n        g = g.replace(\"commaaccent\", \"cedilla\")\n    elif g.lower() == \"kgreenlandic\":\n        g = g.replace(\"greenlandic\", \"ra\")\n    if not _by_glyph:\n        _populate_glyphs_unis()\n    return _by_glyph.get(g)\n\ndef glyph_to_class(g):\n    if not _class_lookup:\n        _populate_glyphs_unis()\n    return _class_lookup.get(g)\n\n# Function for running async code synchronously from both standard sync code and from a notebook context\n\n#https://stackoverflow.com/questions/55647753/call-async-function-from-sync-function-while-the-synchronous-function-continues\n\nimport asyncio\nimport threading\nfrom concurrent.futures import ThreadPoolExecutor\nfrom typing import Any, Coroutine, TypeVar\n\n__all__ = [\n    \"run_coroutine_sync\",\n]\n\nT = TypeVar(\"T\")\n\ndef run_coroutine_sync(coroutine: Coroutine[Any, Any, T], timeout: float = 30) -> T:\n    def run_in_new_loop():\n        new_loop = asyncio.new_event_loop()\n        asyncio.set_event_loop(new_loop)\n        try:\n            return new_loop.run_until_complete(coroutine)\n        finally:\n            new_loop.close()\n\n    try:\n        loop = asyncio.get_running_loop()\n    except RuntimeError:\n        return asyncio.run(coroutine)\n\n    if threading.current_thread() is threading.main_thread():\n        if not loop.is_running():\n            return loop.run_until_complete(coroutine)\n        else:\n            with ThreadPoolExecutor() as pool:\n                future = pool.submit(run_in_new_loop)\n                return future.result(timeout=timeout)\n    else:\n        return asyncio.run_coroutine_threadsafe(coroutine, loop).result()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/img/abstract.py",
    "content": "from pathlib import Path\nfrom coldtype.runon.path import P\nfrom coldtype.geometry import Rect\nfrom coldtype.img.blendmode import BlendMode\n\n\nclass AbstractImage(P):\n    def __init__(self, src, img=None):\n        if isinstance(src, Path) or isinstance(src, str):\n            self.src = Path(str(src)).expanduser().absolute()\n            if not self.src.exists():\n                raise Exception(\"Image src does not exist\", self.src)\n            if img:\n                self._img = img\n            else:\n                self._img = self.load_image(self.src)\n        else:\n            self.src = None\n            self._img = src\n        \n        self.transforms = []\n        self.visible = True\n        self.alpha = 1\n\n        super().__init__()\n        self.data(frame=self.rect())\n    \n    def load_image(self, src):\n        raise NotImplementedError()\n    \n    def write(self, path):\n        raise NotImplementedError()\n    \n    def rect(self):\n        return Rect(self.width(), self.height())\n    \n    def bounds(self):\n        return self.data(\"frame\")\n    \n    def img(self):\n        return None\n    \n    def a(self, alpha=None):\n        if alpha is None:\n            return self.alpha\n        else:\n            self.alpha = alpha\n        return self\n    \n    def width(self):\n        raise NotImplementedError()\n    \n    def height(self):\n        raise NotImplementedError()\n    \n    def align(self, rect, x=\"mdx\", y=\"mdy\", round_result=True, tx=True, ty=True):\n        \"\"\"\n        tx and ty are here for keyword compatibility, they don't do anything\n        \"\"\"\n        self.data(frame=self.rect().align(rect, x, y, round_result=round_result))\n        return self\n    \n    def _resize(self, fx, fy):\n        raise NotImplementedError()\n    \n    def resize(self, factor, factor_y=None):\n        fx, fy = factor, factor\n        if factor_y is not None:\n            fy = factor_y\n        \n        if fx == 1 and fy == 1:\n            return self\n\n        self._resize(fx, fy)\n        self.data(frame=\n            self.rect().align(self.data(\"frame\"), \"mnx\", \"mny\"))\n        return self\n    \n    def rotate(self, degrees, point=None):\n        self.transforms.append([\"rotate\", degrees, point or self.data(\"frame\").pc])\n        return self\n    \n    def matrix(self, a, b, c, d, e, f):\n        self.transforms.append([\"matrix\", [a, b, c, d, e, f]])\n        return self\n    \n    def _precompose_fn(self):\n        raise NotImplementedError()\n    \n    def precompose(self, rect, as_image=True):\n        res = P([self]).ch(self._precompose_fn()(rect))\n        if as_image:\n            return type(self).FromPen(res, original_src=self.src)\n        else:\n            return res\n    \n    def crop(self, crop, mutate=True):\n        if callable(crop):\n            crop = crop(self)\n        \n        xo, yo = -crop.bounds().x, -crop.bounds().y\n\n        cropped = P([\n            (self.in_pen().translate(xo, yo)),\n            (P()\n                .rect(self.bounds())\n                .difference(crop)\n                .f(-1)\n                .blendmode(BlendMode.Clear)\n                .translate(xo, yo))\n            ]).ch(self._precompose_fn()(\n                crop.bounds().zero()))\n        \n        if mutate:\n            self._img = cropped.img().get(\"src\")\n            self.data(frame=self.rect())\n            return self\n        else:\n            return AbstractImage(self.src, img=cropped.img().get(\"src\"))\n        \n        #return self\n    \n    def in_pen(self):\n        return (P(self.bounds())\n            .img(self._img, self.bounds(), pattern=False))\n        \n    def to_pen(self, rect=None):\n        return self.precompose(rect or self.data(\"frame\"), as_image=False)\n    \n    def FromPen(pen:P, original_src=None):\n        return AbstractImage(original_src, img=pen.img().get(\"src\"))\n    \n    def __str__(self):\n        if self.src:\n            try:\n                return f\"<AbstractImage({self.src.relative_to(Path.cwd())})/>\"\n            except ValueError:\n                return f\"<AbstractImage({self.src})/>\"\n        else:\n            return f\"<AbstractImage(in-memory)/>\""
  },
  {
    "path": "packages/coldtype-core/src/coldtype/img/blendmode.py",
    "content": "from enum import Enum, auto\n\ntry:\n    import skia\nexcept ImportError:\n    skia = None\n\n\nclass BlendMode(Enum):\n    Clear = auto()\n    Src = auto()\n    Dst = auto()\n    SrcOver = auto()\n    DstOver = auto()\n    SrcIn = auto()\n    DstIn = auto()\n    SrcOut = auto()\n    DstOut = auto()\n    SrcATop = auto()\n    DstATop = auto()\n    Xor = auto()\n    Plus = auto()\n    Modulate = auto()\n    Screen = auto()\n    Overlay = auto()\n    Darken = auto()\n    Lighten = auto()\n    ColorDodge = auto()\n    ColorBurn = auto()\n    HardLight = auto()\n    SoftLight = auto()\n    Difference = auto()\n    Exclusion = auto()\n    Multiply = auto()\n    Hue = auto()\n    Saturation = auto()\n    Color = auto()\n    Luminosity = auto()\n    \n    def to_skia(self):\n        return _SKIA_MAPPING[self.value-1]\n    \n    def print(self):\n        print(self.name)\n        return self\n\n    @staticmethod\n    def Cycle(i, show=False):\n        bms = list(BlendMode)\n        match = bms[i%len(bms)]\n        if show:\n            print(match)\n        return match\n\nif not skia:\n    _SKIA_MAPPING = []\nelse:\n    _SKIA_MAPPING = [\n        skia.BlendMode.kClear,\n        skia.BlendMode.kSrc,\n        skia.BlendMode.kDst,\n        skia.BlendMode.kSrcOver,\n        skia.BlendMode.kDstOver,\n        skia.BlendMode.kSrcIn,\n        skia.BlendMode.kDstIn,\n        skia.BlendMode.kSrcOut,\n        skia.BlendMode.kDstOut,\n        skia.BlendMode.kSrcATop,\n        skia.BlendMode.kDstATop,\n        skia.BlendMode.kXor,\n        skia.BlendMode.kPlus,\n        skia.BlendMode.kModulate,\n        skia.BlendMode.kScreen,\n        skia.BlendMode.kOverlay,\n        skia.BlendMode.kDarken,\n        skia.BlendMode.kLighten,\n        skia.BlendMode.kColorDodge,\n        skia.BlendMode.kColorBurn,\n        skia.BlendMode.kHardLight,\n        skia.BlendMode.kSoftLight,\n        skia.BlendMode.kDifference,\n        skia.BlendMode.kExclusion,\n        skia.BlendMode.kMultiply,\n        skia.BlendMode.kHue,\n        skia.BlendMode.kSaturation,\n        skia.BlendMode.kColor,\n        skia.BlendMode.kLuminosity]\n\nif __name__ == \"__main__\":\n    print(BlendMode.Saturation.to_skia())"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/img/drawbotimage.py",
    "content": "from coldtype.img.abstract import AbstractImage\n\ntry:\n    import drawBot as db\nexcept ImportError:\n    print(\"No DrawBot installed! `pip install git+https://github.com/typemytype/drawbot`\")\n\nclass DrawBotImage(AbstractImage):\n    def load_image(self, src):\n        w, h = db.imageSize(src)\n        im = db.ImageObject()\n        with im:\n            db.size(w, h)\n            db.image(src, (0, 0))\n        return im\n    \n    def width(self):\n        return db.imageSize(self.src)[0]\n    \n    def height(self):\n        return db.imageSize(self.src)[1]\n\n    # def _resize(self, fx, fy):\n    #     self._img = self._img.resize(\n    #         int(self._img.width()*fx),\n    #         int(self._img.height()*fy))\n    \n    # def _precompose_fn(self):\n    #     return precompose\n    \n    # def write(self, path):\n    #     self._img.save(str(path), skia.kPNG)\n    #     return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/img/skiaimage.py",
    "content": "import skia\nfrom coldtype.img.abstract import AbstractImage\nfrom coldtype.fx.skia import precompose\nfrom coldtype.skiashim import canvas_drawImage, paint_withFilterQualityHigh, image_resize\nfrom coldtype.runon.path import P\n\nclass SkiaImage(AbstractImage):\n    @staticmethod\n    def FromBase64(b64):\n        import base64\n        \n        if b64.startswith(\"data:image/\"):\n            b64 = b64.split(\",\")[1]\n        \n        image_data = base64.b64decode(b64)\n        skia_image = skia.Image.MakeFromEncoded(skia.Data.MakeWithCopy(image_data))\n\n        return SkiaImage(skia_image)\n\n    def load_image(self, src):\n        return skia.Image.MakeFromEncoded(skia.Data.MakeFromFileName(str(src)))\n    \n    def width(self):\n        return self._img.width()\n    \n    def height(self):\n        return self._img.height()\n    \n    def copy(self):\n        return SkiaImage(self._img)\n\n    def _resize(self, fx, fy):\n        # should preserve the offset?\n        # or somehow keep the alignment?\n        \n        self._img = image_resize(self._img,\n            round(self._img.width()*fx),\n            round(self._img.height()*fy))\n    \n    def _precompose_fn(self):\n        return precompose\n    \n    def css_scale(self, x, y=None):\n        if y is None:\n            y = x\n        self._img = self._redraw(lambda canvas, paint: canvas.scale(x, y))\n        return self\n    \n    def _redraw(self, modifier):\n        from coldtype.fx.skia import SKIA_CONTEXT\n        from coldtype.pens.skiapen import SkiaPen\n\n        frame = self.data(\"frame\")\n\n        def rotator(canvas):\n            paint = paint_withFilterQualityHigh()\n            modifier(canvas, paint)\n            canvas_drawImage(canvas, self._img, 0, 0, paint)\n        \n        return SkiaPen.Precompose(rotator, frame.inset(0), context=SKIA_CONTEXT)\n    \n    def css_translate(self, x, y=None):\n        self._img = self._redraw(lambda canvas, paint: canvas.translate(x, y))\n    \n    def css_matrix(self, a, b, c, d, tx, ty):\n        matrix = skia.Matrix([a, c, tx, b, d, ty, 0, 0, 1])\n        self._img = self._redraw(lambda canvas, paint: canvas.setMatrix(matrix))\n        return self\n    \n    def _rotate(self, degrees, point=None):\n        #self.transforms.append([\"rotate\", degrees, point or self.data(\"frame\").pc])\n\n        from coldtype.fx.skia import SKIA_CONTEXT\n        from coldtype.pens.skiapen import SkiaPen\n        \n        frame = self.data(\"frame\")\n        rotated = P(frame).rotate(degrees, point)\n        rotated_frame = rotated.ambit()#.zero()\n        dx, dy = rotated_frame.x - frame.x, rotated_frame.y - frame.y\n\n        width, height = self.width(), self.height()\n        center_x, center_y = width / 2, height / 2\n\n        def rotator(canvas):\n            paint = paint_withFilterQualityHigh()\n            canvas.translate(-dx, -dy)\n            canvas.translate(center_x, center_y)\n            canvas.rotate(-degrees)\n            canvas.translate(-center_x, -center_y)\n            canvas_drawImage(canvas, self._img, 0, 0, paint)\n        \n        img = SkiaPen.Precompose(rotator, rotated_frame, context=SKIA_CONTEXT)\n        return SkiaImage(img)#.translate(dx, dy)\n    \n    def write(self, path):\n        self._img.save(str(path), skia.kPNG)\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/img/skiasvg.py",
    "content": "import skia\nfrom coldtype.img.abstract import AbstractImage\n\n\nclass SkiaSVG(AbstractImage):\n    def width(self):\n        return self._img.containerSize().width()\n    \n    def height(self):\n        return self._img.containerSize().height()\n    \n    def copy(self):\n        return SkiaSVG(self._img)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/interpolation/__init__.py",
    "content": "\ndef norm(value, start, stop):\n    return start + (stop-start) * value\n\ndef lerp(start, stop, amt):\n    return float(amt-start) / float(stop-start)\n\ndef interp_dict(v, a, b=None):\n    if not isinstance(a, dict):\n        return norm(v, a, b)\n\n    if b is None:\n        a, b = a[0], a[1]\n    \n    out = dict()\n    for k, _v in a.items():\n        if hasattr(a[k], \"interp\"):\n            out[k] = a[k].interp(v, b[k])\n        elif isinstance(a[k], str):\n            out[k] = b[k]\n        else:\n            out[k] = norm(v, a[k], b[k])\n    return out\n\ndef loopidx(lst, idx):\n    return lst[idx % len(lst)]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/midi/controllers.py",
    "content": "\ndef _norm(lookup, k, default):\n    return lookup.get(str(k), 63.5 if default == None else default*127) / 127\n\n\ndef midi_controller_lookup_fn(name, column_starts=[], cmc={}, channel=\"9\"):\n    \"\"\"\n    Intuitive lookup function generator for midi controls\n    scheme is bottom-to-top, 10 is equivalent to column 1, row 0\n    22 == column 2, row 3, etc. (or can be customized for\n    whatever device you’d like)\n    \"\"\"\n    # TODO use the name so individual devices are targetable\n    def lookup(ctrl, default=None, relative=False):\n        scoped = cmc.get(name, {})\n        scoped = scoped.get(str(channel), {})\n        if column_starts:\n            column = int(str(ctrl)[0])\n            row = int(str(ctrl)[1])\n            mnum = column_starts[row]+(column-1)\n        else:\n            mnum = ctrl\n        current = _norm(scoped, mnum, default)\n        if relative:\n            was = _norm(scoped, \"_\"+str(mnum), default)\n            rel = current - was\n            return rel\n        else:\n            return current\n    return lookup\n\n\ndef Generic(name, cmc, channel):\n    return midi_controller_lookup_fn(name, cmc=cmc, channel=channel)\n\n\ndef LaunchControlXL(cmc, channel=\"9\"):\n    return midi_controller_lookup_fn(\n        \"Launch Control XL\",\n        column_starts=[77, 49, 29, 13],\n        cmc=cmc,\n        channel=channel)\n\n\ndef LaunchkeyMini(cmc, channel=\"9\"):\n    return midi_controller_lookup_fn(\n        \"Launchkey Mini LK Mini MIDI\",\n        column_starts=[21],\n        cmc=cmc,\n        channel=channel)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/notebook/__init__.py",
    "content": "from coldtype import *\nimport json, os\n\nfrom pathlib import Path\nfrom base64 import b64encode\nfrom IPython.display import display, SVG, HTML, clear_output\nfrom coldtype.renderable.renderable import renderable as _renderable\nfrom coldtype.renderable.animation import animation as _animation, aframe as _aframe\nfrom coldtype.renderable.animation import Action, Timeline, FFMPEGExport\nfrom coldtype.runon.path import P\nfrom coldtype.pens.svgpen import SVGPen\nfrom coldtype.color import rgb, hsl\nfrom coldtype.geometry import Rect\nfrom subprocess import run\nfrom shutil import rmtree\n\nDEFAULT_DISPLAY = \"png\"\n\ntry:\n    from coldtype.fx.skia import precompose\n    from coldtype.pens.skiapen import SkiaPen\n    from io import BytesIO\nexcept ImportError:\n    precompose = None\n\n\ndef update_ffmpeg():\n    print(\"fetching...\")\n    os.system(\"add-apt-repository -y ppa:jonathonf/ffmpeg-4\")\n    print(\"updating...\")\n    os.system(\"apt-get update\")\n    print(\"mediainfo...\")\n    os.system(\"apt install mediainfo\")\n    print(\"ffmpeg...\")\n    os.system(\"apt-get install ffmpeg\")\n    clear_output()\n    print('ffmpeg update finished')\n\n\ndef show(fmt=\"png\", rect=None, align=False, padding=[0, 0], tx=0, ty=0, scale=0.5):\n    if not precompose and fmt == \"png\":\n        raise Exception(\"pip install skia-python\")\n    \n    def _display(_pen:P):\n        pen = _pen.copy(with_data=1)\n        pen.data(_notebook_shown=True)\n        nonlocal rect, fmt\n\n        if fmt is None:\n            img = pen.img()\n            if img and img.get(\"src\"):\n                fmt = \"png\"\n            else:\n                fmt = \"svg\"\n\n        if align and rect is not None:\n            pen.align(rect)\n        \n        if rect is None:\n            lar = pen.data(\"_last_align_rect\")\n            if lar and False:\n                rect = lar\n                pen = P([P(rect).fssw(-1, 0.75, 2), pen])\n            else:\n                amb = pen.ambit(tx=tx, ty=ty)\n                rect = Rect(amb.w+padding[0], amb.h+padding[1])\n                pen.align(rect)\n        \n        if fmt == \"png\":\n            src = pen.ch(precompose(rect)).img().get(\"src\")\n            with BytesIO(src.encodeToData()) as f:\n                f.seek(0)  # necessary?\n                b64 = b64encode(f.read()).decode(\"utf-8\")\n                display(HTML(f\"<img width={rect.w*scale} src='data:image/png;base64,{b64}'/>\"))\n        elif fmt == \"svg\":\n            svg = SVGPen.Composite(pen, rect, viewBox=False)\n            display(SVG(svg))\n        \n        return _pen\n    \n    return _display\n\n\ndef showpng(rect=None, align=False, padding=[60, 50], tx=0, ty=0, scale=0.5):\n    return show(\"png\", rect, align, padding, tx, ty, scale)\n\ndef showlocalpng(rect, src, scale=0.5):\n    with open(src, \"rb\") as img_file:\n        encoded_string = b64encode(img_file.read()).decode(\"utf-8\")\n        display(HTML(f\"<img width={rect.w*scale} src='data:image/png;base64,{encoded_string}'/>\"))\n\ndef show_frame(a, idx, scale=0.5):\n    rp = a.passes(Action.PreviewIndices, None, [idx])[0]\n    res = a.run_normal(rp)\n    show(a.fmt, a.rect, padding=[0, 0], scale=scale)(res)\n    #rp.output_path.parent.mkdir(parents=True, exist_ok=True)\n    #SkiaPen.Composite(res, a.rect, str(rp.output_path))\n    #showlocalpng(a.rect, rp.output_path)\n\n\njs = \"\"\"\nfunction animate(name, start_playing) {\n    svg = document.querySelector(`#${name} svg`);\n    svg_frames = [].slice.apply(svg.querySelectorAll(\".frame\"));\n    svg_frames.forEach((sf) => sf.style.display = \"none\");\n    svg_frames[0].style.display = \"block\";\n\n    var fps = parseFloat(svg.dataset.fps);\n    var duration = parseInt(svg.dataset.duration);\n    var fpsInterval = 1000 / fps;\n    var then = Date.now();\n    var startTime = then;\n    var elapsed = 0;\n    var i = 0;\n    var playing = !!start_playing;\n\n    function _animate() {\n        if (!playing) {\n            return;\n        }\n        requestAnimationFrame(_animate);\n        var now = Date.now();\n        elapsed = now - then;\n        if (elapsed > fpsInterval) {\n            then = now - (elapsed % fpsInterval);\n            svg_frames.forEach((sf) => sf.style.display = \"none\");\n            svg_frames[i%duration].style.display = \"block\";\n            i++;\n        }\n    }\n\n    svg.addEventListener(\"click\", function() {\n        if (playing) {\n            playing = false;\n        } else {\n            playing = true;\n            _animate();\n        }\n    });\n\n    if (playing) {\n        _animate();\n    }\n}\n\"\"\"\n\ndef show_animation(a:_animation, start=False):\n    idxs = range(0, a.duration+1)\n    passes = a.passes(Action.PreviewIndices, None, idxs)\n    results = [a.run_normal(rp) for rp in passes]\n    svg = SVGPen.Animation(results, a.rect, a.timeline.fps)\n    html = f\"<div id='{a.name}'>{svg}</div>\"\n    js_call = f\"<script type='text/javascript'>{js}; animate('{a.name}', {int(start)})</script>\";\n    display(HTML(html + js_call), display_id=a.name)\n\ndef render_animation(a, show=[], preview_scale=0.5, scale=1):\n    try:\n        from tqdm.notebook import tqdm\n    except (ImportError, ModuleNotFoundError):\n        tqdm = None\n        print(\"no tqdm\")\n\n    idxs = list(range(0, a.duration))\n    passes = a.passes(Action.PreviewIndices, None, idxs)\n    output_dir = passes[0].output_path.parent\n    if output_dir.exists():\n        rmtree(output_dir)\n    output_dir.mkdir(parents=True, exist_ok=True)\n\n    xs = passes\n    if tqdm:\n        xs = tqdm(passes, leave=False)\n\n    for idx, rp in enumerate(xs):\n        res = a.run_normal(rp)\n        if a.fmt == \"png\":\n            SkiaPen.Composite(res, a.rect, str(rp.output_path), scale=scale)\n            if show == \"*\" or idx in show:\n                showlocalpng(a.rect, rp.output_path, scale=preview_scale)\n        elif a.fmt == \"svg\":\n            SkiaPen.SVG(res, a.rect, str(rp.output_path), scale=scale)\n    \n    clear_output()\n\ndef show_video(a, fmt=\"h264\", loops=1, verbose=False, download=False, scale=0.5, audio=None, audio_loops=None,autoplay=True):\n    ffex = FFMPEGExport(a,\n        loops=loops,\n        audio=audio,\n        audio_loops=audio_loops)\n    \n    if fmt == \"h264\":\n        ffex.h264()\n    elif fmt == \"gif\":\n        ffex.gif()\n    else:\n        print(\"Unrecognized fmt:\", fmt)\n        return\n    \n    ffex.write(verbose=verbose)\n    compressed_path = str(ffex.output_path.absolute())\n\n    if fmt == \"h264\":\n        mp4 = open(compressed_path, 'rb').read()\n        data_url = \"data:video/mp4;base64,\" + b64encode(mp4).decode()\n        clear_output()\n        display(HTML(f\"\"\"\n        <video width={a.rect.w*scale} controls loop=true {'autoplay' if autoplay else ''}>\n            <source src=\"%s\" type=\"video/mp4\">\n        </video>\n        \"\"\" % data_url))\n    elif fmt == \"gif\":\n        gif = open(compressed_path, 'rb').read()\n        data_url = \"data:image/gif;base64,\" + b64encode(gif).decode()\n        clear_output()\n        #display(HTML(f\"<img width={rect.w*scale} src='data:image/gif;base64,{data_url}'/>\"))\n        display(HTML(f\"\"\"<img width={a.rect.w*scale} src=\"%s\"></img>\"\"\" % data_url))\n    \n    if download:\n        try:\n            from google.colab import files\n            files.download(ffex.output_path)\n        except ImportError:\n            print(\"download= arg is for colab\")\n            pass\n\n\nclass notebook_renderable(_renderable):\n    def __init__(self,\n        rect=(540, 540),\n        preview=True,\n        preview_scale=0.5,\n        render_bg=True,\n        border=(0.75, 2),\n        **kwargs\n        ):\n        self._preview = preview\n        self.preview_scale = preview_scale\n        self.border = border\n\n        super().__init__(rect, render_bg=render_bg, **kwargs)\n    \n    def __call__(self, func):\n        res = super().__call__(func)\n\n        if self._preview:\n            self.preview()\n        return res\n    \n    def preview(self):\n        res = self.frame_result(0, post=False)\n        out = P([\n            P(self.rect).fssw(-1, *self.border) if self.border else None,\n            res\n        ])\n        out.ch(show(\"png\", self.rect, padding=[0, 0], scale=self.preview_scale))\n        return self\n\n\nclass notebook_animation(_animation):\n    def __init__(self,\n        rect=(1080, 1080),\n        display=True,\n        preview_scale=0.5,\n        render_bg=True,\n        storyboard=None,\n        interactive=True,\n        render_show=False,\n        vars={},\n        **kwargs\n        ):\n        self._display = display\n        self.interactive = interactive\n        self.preview_scale = preview_scale\n        self.render_show = render_show\n        self.vars = vars\n\n        if storyboard is None:\n            self._storyboarded = False\n            storyboard = [0]\n        else:\n            self.interactive = False\n            self._storyboarded = True\n        \n        self.storyboard = storyboard\n        super().__init__(rect, render_bg=render_bg, **kwargs)\n    \n    def __call__(self, func):\n        res = super().__call__(func)\n        if self.render_show:\n            self.render().show()\n        elif self._display:\n            self.display()\n        return res\n    \n    def display(self):\n        if not self.interactive:\n            self.preview(*self.storyboard)\n            return\n\n        self._interaction_file = Path(\"_coldtype_notebook_tmp/\" + self.name + \"_tmp_state.json\")\n        self._interaction_state = {}\n\n        if not self._interaction_file.exists():\n            self._interaction_file.parent.mkdir(parents=True, exist_ok=True)\n            self._interaction_file.write_text(\"{}\")\n\n        if len(self.storyboard) > 1:\n            self.preview(*self.storyboard[1:])\n        else:\n            self.interactive_preview(self.storyboard[0])\n\n    \n    def interactive_preview(self, start):\n        from ipywidgets import IntSlider, FloatSlider, interact\n        self._interaction_state = json.loads(self._interaction_file.read_text())\n\n        def show_anim(**kwargs):\n            self._interaction_state = kwargs\n            self._interaction_file.write_text(json.dumps(kwargs))\n            self.preview(kwargs[\"i\"])\n\n        vars = dict(i=IntSlider(\n            min=0,\n            max=self.duration-1,\n            continuous_update=False,\n            value=self._interaction_state.get(\"i\", 0),\n            description=\"f.i\"))\n    \n        for v, val in self.vars.items():\n            vars[v] = FloatSlider(min=0,\n                max=1, step=1e-2,\n                continuous_update=False,\n                value=self._interaction_state.get(v, val))\n        \n        interact(show_anim, **vars)\n    \n    def iv(self, k):\n        return self._interaction_state.get(k, 0)\n    \n    def preview(self, *frames):\n        if len(frames) == 0:\n            frames = [0]\n        elif len(frames) == 1:\n            if frames[0] == \"*\":\n                frames = list(range(self.start, self.end))\n        \n        for frame in frames:\n            show_frame(self, frame, scale=self.preview_scale)\n        \n        return self\n    \n    def render(self, scale=1):\n        render_animation(self, show=[], scale=scale)\n        return self\n    \n    def show(self,\n        fmt=\"h264\",\n        loops=1,\n        verbose=False,\n        download=False,\n        scale=0.5,\n        audio=None,\n        audio_loops=None,\n        autoplay=True\n        ):\n        if self.fmt == \"svg\":\n            show_animation(self, start=False)\n        else:\n\n            show_video(self,\n                fmt=fmt,\n                loops=loops,\n                verbose=verbose,\n                download=download,\n                scale=scale,\n                audio=audio,\n                audio_loops=audio_loops,\n                autoplay=autoplay)\n        return None\n    \n    def zip(self, download=False):\n        zipfile = f\"{str(self.output_folder)}.zip\"\n        run([\"zip\", \"-j\", \"-r\", zipfile, str(self.output_folder)])\n        print(\"> zipped:\", zipfile)\n        if download:\n            try:\n                from google.colab import files\n                files.download(zipfile)\n            except ImportError:\n                print(\"download= arg is for colab\")\n                pass\n        return self\n\n\nclass notebook_aframe(_aframe):\n    def __init__(self,\n        rect=(1080, 1080),\n        **kwargs\n        ):\n\n        super().__init__(rect,\n            timeline=Timeline(1),\n            interactive=False,\n            #storyboard=[0],\n            **kwargs)\n\n\ndef nshow(self):\n    return self.ch(show(tx=1, ty=1))\n\nP.nshow = nshow\n\nrenderable = notebook_renderable\nanimation = notebook_animation\naframe = notebook_aframe\n\n# to set up font paths correctly (seems fine?)\nfrom coldtype.renderer.reader import SourceReader\nNOTEBOOK_SOURCE_READER = SourceReader()\nNOTEBOOK_SOURCE_READER.read_configs(None, None)\n\nclear_output()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/notebook/parser.py",
    "content": "from coldtype import *\nimport json, dateparser, markdown, jinja2\n\nfrom pygments import highlight\nfrom pygments.lexers import PythonLexer\nfrom pygments.formatters import HtmlFormatter\nfrom lxml.html import fragment_fromstring, tostring\n\nfrom time import time\nfrom datetime import datetime\nfrom email.utils import format_datetime\nfrom shutil import copytree\n\nfrom coldtype.runon import Runon\n\nclass NotebookParser():\n    def __init__(self\n        , notebook_dir:Path\n        , build_dir:Path\n        , templates_dir:Path\n        , assets_dir:Path\n        , do_nest:bool = False\n        , sort:dict = {}\n        ) -> None:\n        self.notebook_dir = notebook_dir\n        self.build_dir = build_dir\n        self.templates_dir = templates_dir\n        self.assets_dir = assets_dir\n\n        self.build_dir.mkdir(exist_ok=True)\n\n        # TODO recursive glob to get a tree, to make a table-of-contents instead of only flat-list\n        self.notebooks = list(self.notebook_dir.glob(\"**/*.ipynb\"))\n        print(\">>>\", self.notebooks)\n\n        self.template_env = jinja2.Environment(loader=jinja2.FileSystemLoader(str(self.templates_dir)))\n\n        self.index_template = self.template_env.get_template(\"index.j2\")\n        self.post_template = self.template_env.get_template(\"post.j2\")\n\n        try:\n            self.feed_template = self.template_env.get_template(\"feed.j2\")\n        except:\n            self.feed_template = None\n\n        posts = []\n\n        self.build_unix = int(time())\n        self.build_time = format_datetime(datetime.utcfromtimestamp(int(time()))).strip()\n\n        for notebook in self.notebooks:\n            if notebook.stem.startswith(\"_\"):\n                continue\n\n            path = notebook.relative_to(self.notebook_dir)\n            data = json.loads(Path(notebook).read_text())\n\n            frontmatter = eval(\"\".join(data[\"cells\"][0][\"source\"]))\n\n            slug = frontmatter.get(\"slug\", \".\".join(str(path).split(\".\")[:-1]))\n            date = dateparser.parse(frontmatter[\"date\"])\n            date_string = date.strftime(\"%B %d, %Y\")\n\n            cells = []\n            for c in data[\"cells\"][1:]:\n                ct = c[\"cell_type\"]\n                if ct == \"markdown\":\n                    cells.append(dict(text=markdown.markdown(\"\".join(c[\"source\"]), extensions=[\"smarty\", \"fenced_code\"])))\n                elif ct == \"code\":\n                    src = \"\".join(c[\"source\"])\n                    if src.strip().startswith(\"#hide-publish\") or src.strip().startswith(\"#hide-blog\"):\n                        continue\n                \n                    lines = []\n                    for line in src.splitlines():\n                        if not line.strip().endswith(\"#hide-publish\") and not line.strip().endswith(\"#hide-blog\"):\n                            lines.append(line)\n                    \n                    src = \"\\n\".join(lines)\n                    \n                    highlit = fragment_fromstring(\n                        highlight(src, PythonLexer(),\n                            HtmlFormatter(linenos=False)))\n                    html = tostring(highlit, pretty_print=True, encoding=\"utf-8\").decode(\"utf-8\")\n                    cell = dict(html=html)\n\n                    outputs = []\n                    if \"outputs\" in c:\n                        for o in c[\"outputs\"]:\n                            if o[\"output_type\"] == \"display_data\" and o[\"data\"] and \"text/html\" in o[\"data\"]:\n                                outputs.append(o[\"data\"][\"text/html\"])\n                                #print(o[\"data\"][\"text/html\"][:10])\n                            elif o.get(\"name\") == \"stdout\":\n                                outputs.append([\"<pre class='stdout'>\" + \"\".join(o[\"text\"]) + \"</pre>\"])\n                                #print(outputs[-1][10])\n                            else:\n                                pass\n                    \n                    if len(outputs) > 0:\n                        cell[\"outputs\"] = outputs\n                    else:\n                        cell[\"no-outputs\"] = True\n                    cells.append(cell)\n            \n            # need to be nested somehow\n\n            post = dict(\n                metadata={\n                    **frontmatter,\n                    \"slug\": slug,\n                    **dict(\n                        path=notebook,\n                        pubDate=format_datetime(date).strip(),\n                        date_string=date_string,\n                        date=date)},\n                notebook=notebook.stem,\n                cells=cells)\n            \n            dst = self.build_dir / f\"{slug}.html\"\n            dst.parent.mkdir(parents=True, exist_ok=True)\n            \n            dst.write_text(self.post_template.render(dict(post=post, build_unix=self.build_unix)))\n\n            posts.append(post)\n\n        posts = list(reversed(sorted(posts, key=lambda p: p[\"metadata\"][\"date\"])))\n\n        if do_nest:\n            class Post(Runon):\n                def __init__(self, val):\n                    super().__init__(None)\n                    self._val = val\n                \n            nested_posts = Runon()\n\n            for p in posts:\n                slug = p[\"metadata\"][\"slug\"]\n                slugs = slug.split(\"/\")[:-1]\n                nested = nested_posts\n                for s in slugs:\n                    n = nested.find_(s, none_ok=True)\n                    if not n:\n                        n = Runon().tag(s)\n                        nested.append(n)\n                    nested = n\n                nested.append(Post(p).tag(slug).data(post=True))\n            \n            def sorter(el, pos, data):\n                if pos != 0:\n                    sorter = sort[el.tag()]\n                    def sortfn(x):\n                        return sorter.index(x.tag().split(\"/\")[-1])\n                    el._els = list(sorted(el._els, key=sortfn))\n            \n            nested_posts.prewalk(sorter)\n            posts = nested_posts\n\n        copytree(self.assets_dir, self.build_dir / \"assets\", dirs_exist_ok=True)\n        (self.build_dir / \"index.html\").write_text(self.index_template.render(dict(posts=posts, build_unix=self.build_unix)))\n        \n        if self.feed_template:\n            (self.build_dir / \"feed.xml\").write_text(self.feed_template.render(dict(posts=posts, build=self.build_time, build_unix=self.build_unix)))\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/osutil.py",
    "content": "import platform, os, subprocess\nfrom enum import Enum\n\nclass System(Enum):\n    Darwin = \"Darwin\"\n    Windows = \"Windows\"\n    Linux = \"Linux\"\n\ndef operating_system():\n    sys = platform.system()\n    if sys == \"Darwin\":\n        return System.Darwin\n    elif sys == \"Windows\":\n        return System.Windows\n    elif sys == \"Linux\":\n        return System.Linux\n\n\ndef on_windows():\n    return operating_system() == System.Windows\n\ndef on_mac():\n    return operating_system() == System.Darwin\n\ndef on_linux():\n    return operating_system() == System.Linux\n\n\ndef play_sound(name=\"Pop\"):\n    \"\"\"\n    easy sound-playing utility\n    should be implemented on other\n    platforms as well\n    \"\"\"\n    if on_mac():\n        os.system(f\"afplay /System/Library/Sounds/{name}.aiff &\")\n\n\ndef show_in_finder(path):\n    from showinfm import show_in_file_manager\n    \n    p = path.expanduser().resolve()\n    show_in_file_manager(str(p))\n\n    # if on_mac() or on_linux():\n    #     os.system(f\"open {p}\")\n    # elif on_windows():\n    #     os.system(f\"explorer {p}\")\n    # else:\n    #     print(\"show-in-finder not implemented for os\")\n\n\ndef in_notebook() -> bool:\n    try:\n        shell = get_ipython().__class__.__name__\n        if shell == 'ZMQInteractiveShell':\n            return True   # Jupyter notebook or qtconsole\n        elif shell == 'TerminalInteractiveShell':\n            return False  # Terminal running IPython\n        else:\n            return False  # Other type (?)\n    except NameError:\n        return False      # Probably standard Python interpreter\n\n\ndef run_with_check(args):\n    print(\"---\")\n    print(\"$\", \" \".join([str(s) for s in args]))\n    try:\n        subprocess.run(args, capture_output=True, check=True)\n    except subprocess.CalledProcessError as e:\n        print(e.stderr.decode(\"utf-8\"))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/axidrawpen.py",
    "content": "import time, math\n\nfrom fontTools.pens.basePen import BasePen\nfrom fontTools.pens.transformPen import TransformPen\nfrom coldtype.geometry import Rect, Point\n\ntry:\n    from pyaxidraw import axidraw\nexcept:\n    print(\"Couldn’t import pyaxidraw\")\n    pass\n\nclass AxiDrawPen(BasePen):\n    def __init__(self, dat, page, move_delay=0):\n        super().__init__(None)\n        self.dat = dat\n        self.page = page\n        self.ad = None\n        self.move_delay = move_delay\n        #dat.replay(self)\n        self.last_moveTo = None\n    \n    def _moveTo(self, p):\n        self.last_moveTo = p\n        time.sleep(self.move_delay)\n        self.ad.moveto(*p)\n        time.sleep(self.move_delay)\n\n    def _lineTo(self, p):\n        time.sleep(self.move_delay)\n        self.ad.lineto(*p)\n\n    def _curveToOne(self, p1, p2, p3):\n        print(\"! CANNOT CURVE !\")\n\n    def _qCurveToOne(self, p1, p2):\n        print(\"! CANNOT CURVE !\")\n\n    def _closePath(self):\n        # can this work?\n        if self.last_moveTo:\n            self.ad.lineto(*self.last_moveTo)\n\n    def draw(self,\n        scale=0.01,\n        cm=False,\n        ad=None,\n        move_delay=0,\n        zero=True,\n        ):\n\n        self.dat.scale(scale, point=Point(0, 0))\n        page = self.page.scale(scale)\n        bounds = self.dat.bounds()\n\n        limits = Rect(0, 0, 11, 8.5)\n        if cm:\n            limits = limits.scale(2.54)\n        \n        def small_enough(r):\n            return (r.mnx >= 0\n                and r.mny >= 0\n                and r.mxx <= limits.w\n                and r.mxy <= limits.h)\n\n        if small_enough(page) and small_enough(bounds):\n            print(\"Drawing!\")\n        else:\n            print(\"Too big!\", page, bounds)\n            return False\n        \n        own_ad = False\n        if not ad:\n            own_ad = True\n            ad = axidraw.AxiDraw()\n            ad.interactive()\n            ad.options.units = 1 if cm else 0\n            ad.options.speed_pendown = 50\n            ad.options.speed_penup = 50\n            ad.options.pen_rate_raise = 50\n\n        if own_ad:\n            ad.connect()\n        ad.penup()\n        self.ad = ad\n        self.move_delay = move_delay\n\n        tp = TransformPen(self,\n            (1, 0, 0, -1, 0, page.h))\n        \n        self.dat.replay(tp)\n        ad.penup()\n        time.sleep(move_delay)\n        ad.penup()\n        \n        if zero:\n            ad.moveto(0,0)\n        if own_ad:\n            ad.disconnect()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/blenderpen.py",
    "content": "from contextlib import contextmanager\nfrom coldtype.geometry import Rect, Edge, Point\nfrom coldtype.beziers import CurveCutter, raise_quadratic\nfrom coldtype.pens.drawablepen import DrawablePenMixin\nfrom fontTools.pens.basePen import BasePen\nfrom coldtype.color import Gradient, Color, normalize_color\nfrom coldtype.blender.fluent import BpyObj\n\nimport math\nimport random\ntry:\n    # Blender-specific things\n    import bpy\n    from mathutils import Vector, Matrix\nexcept:\n    #print(\">>> Not a blender environment\")\n    pass\n\n\nclass BPH():\n    def Clear():\n        print(\">>>CLERAING\")\n        for block in bpy.data.meshes:\n            if block.users == 0:\n                bpy.data.meshes.remove(block)\n\n        for block in bpy.data.materials:\n            if block.users == 0:\n                bpy.data.materials.remove(block)\n\n        for block in bpy.data.textures:\n            if block.users == 0:\n                bpy.data.textures.remove(block)\n\n        for block in bpy.data.images:\n            if block.users == 0:\n                bpy.data.images.remove(block)\n\n    def FindCollectionForItem(item):\n        collections = item.users_collection\n        if len(collections) > 0:\n            return collections[0]\n        return bpy.context.scene.collection\n\n    def Collection(name, parent=None):\n        if name not in bpy.data.collections:\n            coll = bpy.data.collections.new(name)\n            if parent:\n                parent.children.link(coll)\n            else:\n                bpy.context.scene.collection.children.link(coll)\n        return bpy.data.collections.get(name)\n\n    def CheckExists(name, dn=False):\n        if dn and name in bpy.context.scene.objects:\n            obj = bpy.context.scene.objects[name]\n            bpy.data.objects.remove(obj, do_unlink=True)\n            return False\n        return name in bpy.context.scene.objects\n    \n    def AddOrFind(name, add_fn, dn=False):\n        if dn and name in bpy.context.scene.objects:\n            obj = bpy.context.scene.objects[name]\n            bpy.data.objects.remove(obj, do_unlink=True)\n            \n        if name not in bpy.context.scene.objects:\n            add_fn()\n            bc = bpy.context.active_object\n            bc.name = name\n            return bc\n        else:\n            return bpy.context.scene.objects[name]\n\n    def Primitive(_type, coll, name, dn=False, container=None, material=\"ColdtypeDefault\", cyclic=True):\n        created = False\n        \n        if dn: #and name in bpy.context.scene.objects:\n            # obj = bpy.context.scene.objects[name]\n            # bpy.data.objects.remove(obj)\n\n            for m in bpy.data.objects:\n                if name in m.name:\n                    bpy.data.objects.remove(m)\n\n            for m in bpy.data.meshes:\n                if name in m.name:\n                    bpy.data.meshes.remove(m)\n            \n            for m in bpy.data.materials:\n                if name in m.name:\n                    bpy.data.materials.remove(m)\n\n        if name not in bpy.context.scene.objects:\n            created = True\n            if _type == \"Bezier\":\n                bpy.ops.curve.primitive_bezier_curve_add()\n            elif _type == \"plane\":\n                bpy.ops.mesh.primitive_plane_add()\n            elif _type == \"cube\":\n                bpy.ops.mesh.primitive_cube_add()\n            bc = bpy.context.object\n            bc.name = name\n            bc.data.name = name\n            #name = bc.name\n            \n            if _type == \"Bezier\":\n                if cyclic:\n                    bc.data.dimensions = \"2D\"\n                    bc.data.fill_mode = \"BOTH\"\n                    bc.data.extrude = 0.1\n                else:\n                    bc.data.dimensions = \"3D\"\n            elif _type == \"plane\":\n                if container:\n                    bc.scale[0] = container.w/2\n                    bc.scale[1] = container.h/2\n                    bc.location[0] = container.x + container.w/2\n                    bc.location[1] = container.y + container.h/2\n                    bpy.ops.object.origin_set(type=\"ORIGIN_CURSOR\")\n                    bpy.ops.object.transform_apply()\n            elif _type == \"cube\":\n                if container:\n                    bc.scale[0] = container.w/2\n                    bc.scale[1] = container.h/2\n                    bc.scale[2] = 0.1\n\n                    bc.location[0] = container.x + container.w/2\n                    bc.location[1] = container.y + container.h/2\n                    bpy.ops.object.origin_set(type=\"ORIGIN_CURSOR\")\n                    bpy.ops.object.transform_apply()\n            \n            if material:\n                if material == \"auto\":\n                    mat = bpy.data.materials.new(f\"Material_{name}\")\n                    mat.use_nodes = True\n                    bc.data.materials.append(mat)\n        \n        bc = bpy.context.scene.objects[name]\n        bc_coll = BPH.FindCollectionForItem(bc)\n        if bc_coll != coll:\n            coll.objects.link(bc)\n            bc_coll.objects.unlink(bc)\n        bc.select_set(False)\n\n        bc.data.name = name\n        #print(bc.name, bc.data.name)\n        return bc, created\n    \n    def Vector(pt, z=0):\n        x, y = pt\n        return Vector((x, y, z))\n\n\nclass BlenderPen(BpyObj, DrawablePenMixin, BasePen):\n    def __init__(self, dat):\n        super().__init__(None)\n        self.dat = dat\n        tag = self.dat.tag()\n        self._material = None\n        if tag is None:\n            raise Exception(\"BlenderPen pens must be tagged\")\n        self.tag = tag\n    \n    def record(self, dat):\n        self.set_origin(0, 0, 0)\n        self._spline = None\n        self.splines = []\n        self._value = []\n        dat.replay(self)\n        if self._spline and len(self._spline) > 0 and self._spline not in self.splines:\n            self.splines.append(self._spline)\n        x, y = self.dat.ambit().pc\n        #self.set_origin(x/100, y/100, 0)\n\n    def _moveTo(self, p):\n        if self._spline and len(self._spline) > 0 and self._spline not in self.splines:\n            self.splines.append(self._spline)\n        self._spline = []\n        self._value.append([p])\n        self._spline.append([\"BEZIER\", \"start\", [p, p, p]])\n\n    def _lineTo(self, p):\n        self._value.append([p])\n        self._spline.append([\"BEZIER\", \"curve\", [p, p, p]])\n\n    def _curveToOne(self, p1, p2, p3):\n        self._spline[-1][-1][-1] = p1\n        self._value.append([p1, p2, p3])\n        self._spline.append([\"BEZIER\", \"curve\", [p2, p3, p3]])\n\n    def _qCurveToOne(self, p1, p2):\n        start = self._value[-1][-1]\n        q1, q2, q3 = raise_quadratic(start, (p1[0], p1[1]), (p2[0], p2[1]))\n        self._spline[-1][-1][-1] = q1\n        self._value.append([q1, q2, q3])\n        self._spline.append([\"BEZIER\", \"curve\", [q2, q3, q3]])\n\n    def _closePath(self):\n        if self._spline and len(self._spline) > 0 and self._spline not in self.splines:\n            self.splines.append(self._spline)\n            self.spline = None\n        self.spline = None\n    \n    def materials(self):\n        return self.obj.data.materials\n\n    def bsdf(self):\n        if self._material:\n            try:\n                return self.materials()[0].node_tree.nodes[\"Principled BSDF\"]\n            except:\n                return None\n    \n    def shadow(self, clip=None, radius=10, alpha=0.3, color=Color.from_rgb(0,0,0,1)):\n        pass\n\n    def setColorValue(self, value, color):\n        value[0] = color.r\n        value[1] = color.g\n        value[2] = color.b\n        value[3] = 1\n        if color.a != 1:\n            self.transmission(1)\n            #value[0] = 1\n            #value[1] = 1\n            #value[2] = 1\n            #value[3] = 1\n    \n    def fill(self, color):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        if color:\n            if isinstance(color, Gradient):\n                self.fill(color.stops[0][0])\n            else:\n                #print(\"FILL>>>>>\", self.tag, color)\n                bsdf = self.bsdf()\n                dv = bsdf.inputs[0].default_value\n                self.setColorValue(dv, color)\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        if weight and color and color.a > 0:\n            #print(\"STROKE>>>\", self.tag, weight, color)\n            self.obj.data.fill_mode = \"NONE\"\n            if isinstance(color, Gradient):\n                pass\n            else:\n                self.fill(color)\n            \n    def extrude(self, amount=0.1):\n        self.obj.data.extrude = amount\n        return self\n    \n    def bevel(self, depth=0.02):\n        self.obj.data.bevel_depth = depth\n        return self\n    \n    def specular(self, amount=0.5):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        self.bsdf().inputs[7].default_value = amount\n        return self\n    \n    def metallic(self, amount=1):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        self.bsdf().inputs[1].default_value = amount\n        return self\n    \n    def roughness(self, amount=0.5):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        self.bsdf().inputs[2].default_value = amount\n        return self\n    \n    def transmission(self, amount=1):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        self.bsdf().inputs[18].default_value = amount\n        return self\n\n    def emission(self, color=None, strength=1):\n        if not self._material == \"auto\" or not self.bsdf():\n            return\n        if color is not None:\n            self.setColorValue(self.bsdf().inputs[27].default_value, normalize_color(color))\n            self.bsdf().inputs[28].default_value = strength\n        return self\n    \n    def image(self, src=None, opacity=1, rect=None, pattern=True):\n        mat = self.materials()[0]\n        bsdf = self.bsdf()\n        if \"Image Texture\" in mat.node_tree.nodes:\n            imgtex = mat.node_tree.nodes[\"Image Texture\"]\n        else:\n            imgtex = mat.node_tree.nodes.new(\"ShaderNodeTexImage\")\n            mat.node_tree.links.new(bsdf.inputs[\"Base Color\"], imgtex.outputs[\"Color\"])\n        imgtex.image = bpy.data.images.load(str(src))\n        return self\n    \n    def at_frame(self, frame, path, value=None):\n        bpy.data.scenes[0].frame_set(frame)\n        if value is not None:\n            if callable(value):\n                value(self)\n            else:\n                exec(f\"self.obj.{path} = {value}\")\n        self.obj.keyframe_insert(data_path=path)\n        return self\n        #setattr(self.obj, path, value)\n\n    def hide(self, hide=True):\n        self.obj.hide_viewport = hide\n        self.obj.hide_render = hide\n        return self\n    \n    def set_visibility_at_frame(self, frame, visibility):\n        bpy.data.scenes[0].frame_set(frame)\n        self.hide(not visibility)\n        self.obj.keyframe_insert(data_path=\"hide_render\")\n        self.obj.keyframe_insert(data_path=\"hide_viewport\")\n        return self\n    \n    def show_on_frame(self, frame):\n        self.set_visibility_at_frame(0, False)\n        self.set_visibility_at_frame(frame, True)\n        self.set_visibility_at_frame(frame+1, False)\n        return self\n    \n    def show_at_frame(self, frame):\n        self.set_visibility_at_frame(0, False)\n        self.set_visibility_at_frame(frame-1, False)\n        self.set_visibility_at_frame(frame, True)\n        return self\n    \n    def make_invisible(self):\n        self.obj.cycles_visibility.camera = False\n        self.obj.cycles_visibility.diffuse = False\n        self.obj.cycles_visibility.glossy = False\n        self.obj.cycles_visibility.transmission = False\n        self.obj.cycles_visibility.scatter = False\n        self.obj.cycles_visibility.shadow = False\n        return self\n    \n    def convert_to_mesh(self):\n        bpy.context.view_layer.objects.active = None\n        bpy.context.view_layer.objects.active = self.obj\n        self.obj.select_set(True)\n        bpy.ops.object.convert(target=\"MESH\")\n        self.obj.select_set(False)\n        bpy.context.view_layer.objects.active = None\n        return self\n\n    convertToMesh = convert_to_mesh\n    \n    def remesh_smooth(self, octree_depth=7, smooth=False):\n        with self.obj_selected() as o:\n            if \"Remesh\" not in o.modifiers:\n                bpy.ops.object.modifier_add(type=\"REMESH\")\n            rm = o.modifiers[\"Remesh\"]\n            rm.mode = \"SMOOTH\"\n            rm.octree_depth = octree_depth\n            rm.use_remove_disconnected = False\n            rm.use_smooth_shade = smooth\n        return self\n    \n    def cloth(self, pressure=5):\n        with self.obj_selected() as o:\n            bpy.ops.object.modifier_add(type='CLOTH')\n            cl = o.modifiers[\"Cloth\"]\n            cl.settings.effector_weights.gravity = 0\n            cl.settings.use_pressure = True\n            cl.settings.uniform_pressure_force = pressure\n            cl.settings.collision_settings.use_self_collision = True\n        return self\n    \n    def apply_transform(self,\n        location=True,\n        rotation=True,\n        scale=True,\n        properties=True\n        ):\n        bpy.context.view_layer.objects.active = None\n        bpy.context.view_layer.objects.active = self.obj\n        \n        self.obj.select_set(True)\n        bpy.ops.object.transform_apply(location=location,\n            rotation=rotation,\n            scale=scale,\n            properties=properties)\n        self.obj.select_set(False)\n\n        bpy.context.view_layer.objects.active = None\n        return self\n\n    def with_origin(self, xyz, fn):\n        if xyz == \"C\":\n            pc = self.dat.ambit().pc\n            xyz = (pc.x/100, pc.y/100, 0)\n        self.set_origin(*xyz)\n        fn(self)\n        self.set_origin(0, 0, 0)\n        return self\n\n    def center_origin(self):\n        c = self.dat.ambit().pc\n        self.locate_relative(x=-c.x/100, y=-c.y/100)\n        \n        bpy.context.view_layer.objects.active = None\n        bpy.context.view_layer.objects.active = self.obj\n        \n        self.obj.select_set(True)\n        bpy.ops.object.origin_set(type=\"ORIGIN_CURSOR\")\n        self.obj.select_set(False)\n\n        bpy.context.view_layer.objects.active = None\n\n        self.locate_relative(x=+c.x/100, y=+c.y/100)\n        return self\n    \n    def draw(self, collection, style=None, scale=0.01, cyclic=True, dn=False, primitive=None, material=\"auto\"):\n        self._material = material\n\n        if primitive is not None:\n            self.obj, self.created = BPH.Primitive(primitive, collection, self.tag, dn=dn, material=material, container=self.dat.ambit().scale(scale))\n        else:\n            self.obj, self.created = BPH.Primitive(\"Bezier\", collection, self.tag, dn=dn, material=material, cyclic=cyclic)\n\n            if cyclic:\n                self.obj.data.fill_mode = \"BOTH\"\n            self.origin_to_cursor()\n            \n            if cyclic:\n                self.record(self.dat.copy().removeOverlap().scale(scale, point=False))\n            else:\n                self.record(self.dat.copy().scale(scale, point=False))\n            \n            try:\n                self.draw_on_bezier_curve(self.obj.data, cyclic=cyclic)\n            except:\n                pass\n        \n        if material and material != \"auto\":\n            try:\n                mat = bpy.data.materials[material]\n            except KeyError:\n                mat = bpy.data.materials.new(material)\n                mat.use_nodes = True\n                \n            self.obj.data.materials.clear()\n            self.obj.data.materials.append(mat)\n        \n        for attrs, attr in self.findStyledAttrs(style):\n            self.applyDATAttribute(attrs, attr)\n\n        return self\n\n    def draw_on_bezier_curve(self, bez, cyclic=True):\n        for spline in reversed(bez.splines): # clear existing splines\n            bez.splines.remove(spline)\n\n        for spline_data in self.splines:\n            bez.splines.new('BEZIER')\n            spline = bez.splines[-1]\n            spline.use_cyclic_u = cyclic\n            for i, (t, style, pts) in enumerate(spline_data):\n                l, c, r = pts\n                if i > 0:\n                    spline.bezier_points.add(1)\n                pt = spline.bezier_points[-1]\n                pt.co = BPH.Vector(c)\n                pt.handle_left = BPH.Vector(l)\n                pt.handle_right = BPH.Vector(r)\n\n    def noop(self, *args, **kwargs):\n        return self\n\nclass BlenderPenCube(BlenderPen):\n    def extrude(self, amount=0.1, apply=False):\n        with self.obj_selected():\n            self.obj.scale[2] = amount*10\n            if apply:\n                bpy.ops.object.transform_apply()\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/drawablepen.py",
    "content": "# Mixin for attribute-application\n\nfrom coldtype.runon import Runon\nfrom coldtype.color import Gradient, Color\n\nclass DrawablePenMixin(object):\n    def print(self, *args):\n        for a in args:\n            if callable(a):\n                print(a(self))\n            else:\n                print(a)\n        return self\n\n    def fill(self, el, color):\n        raise Exception(\"Pen does not implement fill function\")\n    \n    def stroke(self, el, weight=1, color=None, dash=None, miter=None):\n        raise Exception(\"Pen does not implement stroke function\")\n\n    def shadow(self, el, clip=None, radius=10, alpha=0.3, color=Color.from_rgb(0,0,0,1)):\n        raise Exception(\"Pen does not implement shadow function\")\n\n    def image(self, el, src=None, opacity=None, rect=None, pattern=True):\n        raise Exception(\"Pen does not implement image function\")\n\n    def applyDATAttribute(self, attrs, attribute):\n        k, v = attribute\n        if v:\n            if k == \"shadow\":\n                return self.shadow(**v)\n            elif k == \"fill\":\n                return self.fill(v)\n            elif k == \"stroke\":\n                return self.stroke(**v, dash=attrs.get(\"dash\"))\n            elif k == \"image\":\n                return self.image(**v)\n    \n    def findStyledAttrs(self, style):\n        attrs = self.dat.style(style)\n\n        for attr in attrs.items():\n            if attr and attr[-1]:\n                yield attrs, attr\n\n    def FindPens(pens):\n        if not isinstance(pens, Runon):\n            pens = pens[0]\n\n        found = []\n        def walker(pen, pos, data):\n            if pos == 0:\n                found.append(pen)\n        \n        pens.walk(walker)\n\n        for pen in found:\n            yield pen"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/drawbotpen.py",
    "content": "try:\n    import drawBot as db\nexcept:\n    pass\n\nfrom coldtype.runon.path import P\nfrom coldtype.geometry import Rect, Edge, Point\nfrom coldtype.pens.drawablepen import DrawablePenMixin\nfrom coldtype.color import Color, Gradient\n\n\ndef get_image_rect(src):\n    w, h = db.imageSize(str(src))\n    return Rect(0, 0, w, h)\n\n\nclass DrawBotPen(DrawablePenMixin, P):\n    def __init__(self, dat, rect=None):\n        super().__init__()\n        self.rect = rect\n        self.dat = dat\n        self.bp = db.BezierPath()\n        self.dat.replay(self.bp)\n    \n    def fill(self, color):\n        if color:\n            if isinstance(color, Gradient):\n                self.gradient(color)\n            elif isinstance(color, Color):\n                db.fill(color.r, color.g, color.b, color.a)\n        else:\n            db.fill(None)\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        db.strokeWidth(weight)\n        if dash:\n            db.lineDash(dash)\n        if color:\n            if isinstance(color, Gradient):\n                pass # possible?\n            elif isinstance(color, Color):\n                db.stroke(color.r, color.g, color.b, color.a)\n        else:\n            db.stroke(None)\n        \n    def image(self, src=None, opacity=1, rect=None, rotate=0, repeating=False, scale=True):\n        bounds = self.dat.bounds()\n        src = str(src)\n        if not rect:\n            rect = bounds\n        try:\n            img_w, img_h = db.imageSize(src)\n        except ValueError:\n            print(\"DrawBotPen: No image\")\n            return\n        x = bounds.x\n        y = bounds.y\n        if repeating:\n            x_count = bounds.w / rect.w\n            y_count = bounds.h / rect.h\n        else:\n            x_count = 1\n            y_count = 1\n        _x = 0\n        _y = 0\n        while x <= (bounds.w+bounds.x) and _x < x_count:\n            _x += 1\n            while y <= (bounds.h+bounds.y) and _y < y_count:\n                _y += 1\n                with db.savedState():\n                    r = Rect(x, y, rect.w, rect.h)\n                    #db.fill(1, 0, 0.5, 0.05)\n                    #db.oval(*r)\n                    if scale == True:\n                        db.scale(rect.w/img_w, center=r.point(\"SW\"))\n                    elif scale:\n                        try:\n                            db.scale(scale[0], scale[1], center=r.point(\"SW\"))\n                        except TypeError:\n                            db.scale(scale, center=r.point(\"SW\"))\n                    db.rotate(rotate)\n                    db.image(src, (r.x, r.y), alpha=opacity)\n                y += rect.h\n            y = 0\n            x += rect.w\n    \n    def shadow(self, clip=None, radius=10, alpha=0.3, color=Color.from_rgb(0,0,0,1)):\n        if clip:\n            cp = P(clip).f(None)\n            bp = db.BezierPath()\n            cp.replay(bp)\n            db.clipPath(bp)\n        #elif self.rect:\n        #    cp = P(fill=None).rect(self.rect).xor(self.dat)\n        #    bp = db.BezierPath()\n        #    cp.replay(bp)\n        #    db.clipPath(bp)\n        db.shadow((0, 0), radius*3, list(color.with_alpha(alpha)))\n\n    def gradient(self, gradient):\n        stops = gradient.stops\n        db.linearGradient(stops[0][1], stops[1][1], [list(s[0]) for s in stops], [0, 1])\n    \n    def draw(self, scale=1, style=None, attrs=True):\n        if len(self.dat) > 0:\n            for p in self.dat._els:\n                DrawBotPen(p, rect=self.rect).draw(scale=scale, attrs=attrs)\n        else:\n            with db.savedState():\n                db.scale(scale)\n                if attrs:\n                    for attrs, attr in self.findStyledAttrs(style):\n                        self.applyDATAttribute(attrs, attr)\n                db.drawPath(self.bp)\n        return self\n    \n    def draw_with_filters(self, rect, filters):\n        im = db.ImageObject()\n        with im:\n            db.size(*rect.wh())\n            self.draw()\n        for filter_name, filter_kwargs in filters:\n            getattr(im, filter_name)(**filter_kwargs)\n        x, y = im.offset()\n        db.image(im, (x, y))\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/jsonpen.py",
    "content": "import os\n\nfrom fontTools.pens.transformPen import TransformPen\nfrom fontTools.pens.basePen import BasePen\n\nfrom coldtype.pens.drawablepen import DrawablePenMixin\nfrom coldtype.color import Gradient\nfrom coldtype.color import Color\nimport base64\n\ndef path_str(*ps):\n    return \" \".join([str(int(p)) if float(p).is_integer() else \"{:.02f}\".format(p) for p in ps])\n\nclass JSONPen(DrawablePenMixin, BasePen):\n    def __init__(self, dat, rect):\n        BasePen.__init__(self, None)\n        self.pStr = f\"\"\n        self.lastMove = None\n        self.dat = dat\n        self.serialAttrs = {\"tag\":dat.tag()}\n        self.rect = rect\n        if self.rect:\n            tp = TransformPen(self, (1, 0, 0, -1, 0, self.rect.h))\n            dat.replay(tp)\n        else:\n            dat.replay(self)\n\n    def _moveTo(self, p):\n        self.lastMove = None\n        self.pStr += \"m {:s} \".format(path_str(*p))\n\n    def _lineTo(self, p):\n        self.pStr += \"{:s}{:s} \".format(\"\" if self.lastMove == \"l \" else \"l \", path_str(*p))\n        self.lastMove = \"l \"\n\n    def _curveToOne(self, p1, p2, p3):\n        self.pStr += \"{:s}{:s} \".format(\"\" if self.lastMove == \"c \" else \"c \", path_str(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]))\n        self.lastMove = \"c \"\n\n    def _qCurveToOne(self, p1, p2):\n        self.pStr += \"{:s}{:s} \".format(\"\" if self.lastMove == \"q \" else \"q \", path_str(p1[0], p1[1], p2[0], p2[1]))\n        self.lastMove = \"q \"\n\n    def _closePath(self):\n        self.pStr += \"z \"\n        self.lastMove = None\n    \n    def fill(self, color=None):\n        if not color or color == \"transparent\":\n            self.serialAttrs[\"fill\"] = None\n        elif isinstance(color, Gradient):\n            self.serialAttrs[\"fill\"] = [\"g\", self.gradient(color)]\n        elif isinstance(color, Color):\n            self.serialAttrs[\"fill\"] = [\"f\", self.color(color)]\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        if color and weight > 0:\n            if color == \"transparent\":\n                self.serialAttrs[\"stroke\"] = None\n            elif isinstance(color, Color):\n                self.serialAttrs[\"stroke\"] = [self.color(color), weight]\n    \n    def rectPoints(self, rect):\n        return [rect.x, rect.y, rect.w, rect.h]\n    \n    def color(self, color):\n        return [round(c, 2) for c in color.rgba()]\n    \n    def gradient(self, gradient):\n        _gradient = []\n        for color, position in gradient.stops:\n            _gradient.extend([[self.color(color), [position.x, self.rect.h-position.y]]])\n        return _gradient\n    \n    def shadow(self, clip=None, radius=14, color=Color.from_rgb(0,0,0,0.3)):\n        if clip:\n            self.serialAttrs[\"shadow\"] = [radius, color.a, self.rectPoints(clip.flip(self.rect.h)), self.color(color.with_alpha(1))]\n        else:\n            self.serialAttrs[\"shadow\"] = [radius, color.a, None]\n\n    def image(self, src=None, opacity=1, rect=None):\n        self.serialAttrs[\"pattern\"] = [opacity-0.025, base64.b64encode(open(src, \"rb\").read()).decode('utf-8')]\n\n    def asCode(self, bounds, style=None):\n        #attrs = self.dat.attrs[\"dark\"] if \"dark\" in self.dat.attrs else self.dat.attrs[\"default\"]\n        allSerialAttrs = dict()\n        for style, attrs in self.dat.attrs.items():\n            self.serialAttrs = dict()\n            for attr in attrs.items():\n                self.applyDATAttribute(attrs, attr)\n            allSerialAttrs[style] = self.serialAttrs\n        allSerialAttrs[\"d\"] = self.pStr\n        if bounds:\n            allSerialAttrs[\"bounds\"] = self.rectPoints(bounds)\n        allSerialAttrs[\"tag\"] = self.dat.tag()\n        return allSerialAttrs\n    \n    def Composite(pens, rect):\n        out = []\n        for pen in JSONPen.FindPens(pens):\n            jp = JSONPen(pen, rect)\n            out.append(jp.asCode(rect))\n        return out"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/misc.py",
    "content": "from enum import Enum\nfrom fontTools.pens.filterPen import ContourFilterPen\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.misc.bezierTools import splitCubicAtT, calcCubicArcLength\n\nUSE_SKIA_PATHOPS = True\nNO_PATHOPS = False\n\ntry:\n    from pathops import Path, OpBuilder, PathOp, PathVerb\nexcept ImportError:\n    USE_SKIA_PATHOPS = False\n\ntry:\n    from booleanOperations.booleanGlyph import BooleanGlyph\n    from booleanOperations.exceptions import UnsupportedContourError\nexcept ImportError:\n    if not USE_SKIA_PATHOPS:\n        USE_SKIA_PATHOPS = True\n        NO_PATHOPS = True\n\n\nclass BooleanOp(Enum):\n    Difference = 0\n    Union = 1\n    XOR = 2\n    ReverseDifference = 3\n    Intersection = 4\n    Simplify = 5\n\n    def Skia(x):\n        return [\n            PathOp.DIFFERENCE,\n            PathOp.UNION,\n            PathOp.XOR,\n            PathOp.REVERSE_DIFFERENCE,\n            PathOp.INTERSECTION,\n        ][x.value]\n    \n    def BooleanGlyphMethod(x):\n        return [\n            \"difference\",\n            \"union\",\n            \"xor\",\n            \"reverseDifference\",\n            \"intersection\",\n        ][x.value]\n\n\ndef calculate_pathop(pen1, pen2, operation, use_skia_pathops_draw=True):\n    if NO_PATHOPS:\n        raise Exception(\"No pathops library found; please install either skia-pathops or booleanOperations\")\n\n    if USE_SKIA_PATHOPS:\n        p1 = Path()\n        pen1.replay(p1.getPen())\n        if operation == BooleanOp.Simplify:\n            # ignore pen2\n            p1.simplify(fix_winding=True, keep_starting_points=True)\n            d0 = RecordingPen()\n            if not use_skia_pathops_draw:\n                for method, pts in p1:\n                    if method == PathVerb.MOVE:\n                        d0.moveTo(*pts)\n                    elif method == PathVerb.CUBIC:\n                        d0.curveTo(*pts)\n                    elif method == PathVerb.QUAD:\n                        d0.qCurveTo(*pts)\n                    elif method == PathVerb.LINE:\n                        d0.lineTo(*pts)\n                    elif method == PathVerb.CLOSE:\n                        d0.closePath()\n            else:\n                p1.draw(d0)\n            return d0.value\n        if pen2:\n            p2 = Path()\n            pen2.replay(p2.getPen())\n        builder = OpBuilder(fix_winding=True, keep_starting_points=True)\n        builder.add(p1, PathOp.UNION)\n        if pen2:\n            builder.add(p2, BooleanOp.Skia(operation))\n        result = builder.resolve()\n        d0 = RecordingPen()\n        result.draw(d0)\n        return d0.value\n    else:\n        bg = BooleanGlyph()\n        pen1.replay(bg.getPen())\n        if operation == BooleanOp.Simplify:\n            # ignore pen2\n            try:\n                bg = bg.removeOverlap()\n            except UnsupportedContourError:\n                print(\"booleanOperations could not removeOverlap (qcurve present)\")\n                pass\n            dp = RecordingPen()\n            bg.draw(dp)\n            return dp.value\n\n        bg2 = BooleanGlyph()\n        if pen2:\n            pen2.replay(bg2.getPen())\n        bg = bg._booleanMath(BooleanOp.BooleanGlyphMethod(operation), bg2)\n        dp = RecordingPen()\n        bg.draw(dp)\n        return dp.value\n\n\nclass ExplodingPen(ContourFilterPen):\n    def __init__(self, outPen):\n        self._pens = []\n        super().__init__(outPen)\n\n    def filterContour(self, contour):\n        self._pens.append(contour)\n        return contour\n\n\nclass SmoothPointsPen(ContourFilterPen):\n    def __init__(self, outPen, length=80):\n        super().__init__(outPen)\n        self.length = length\n\n    def filterContour(self, contour):\n        nc = []\n\n        def split_line(pts):\n            p0, p1 = pts\n            nc.append([\"lineTo\", [p1]])\n\n        def split_curve(pts):\n            p0, p1, p2, p3 = pts\n            length_arc = calcCubicArcLength(p0, p1, p2, p3)\n            if length_arc <= self.length:\n                nc.append([\"curveTo\", pts[1:]])\n            else:\n                d = self.length / length_arc\n                b = (p0, p1, p2, p3)\n                a, b = splitCubicAtT(*b, d)\n                nc.append([\"curveTo\", a[1:]])\n                split_curve(b)\n\n        for i, (t, pts) in enumerate(contour):\n            if t == \"lineTo\":\n                p0 = contour[i-1][-1][-1]\n                split_line((p0, pts[0]))\n            elif t == \"curveTo\":\n                p1, p2, p3 = pts\n                p0 = contour[i-1][-1][-1]\n                split_curve((p0, p1, p2, p3))\n            else:\n                nc.append([t, pts])\n        return nc"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/outlinepen.py",
    "content": "\"\"\"\nThe MIT License (MIT)\n\nCopyright (c) 2016 Frederik Berlaen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\"\"\"\n\n\"\"\"\nTaken from https://github.com/typemytype/outlinerRoboFontExtension\n\"\"\"\n\nfrom fontTools.pens.basePen import BasePen\nfrom fontTools.misc.bezierTools import splitCubicAtT\nfrom fontTools.pens.recordingPen import RecordingPen, replayRecording\nfrom fontTools.pens.pointPen import AbstractPointPen\nfrom fontTools.pens.pointPen import ReverseContourPointPen\nfrom fontTools.pens.pointPen import PointToSegmentPen\n\n\nfrom defcon import Glyph\nfrom math import sqrt, cos, sin, acos, asin, degrees, radians, pi\n\n\ndef roundFloat(f):\n    error = 1000000.\n    return round(f*error)/error\n\n\ndef checkSmooth(firstAngle, lastAngle):\n    if firstAngle is None or lastAngle is None:\n        return True\n    error = 4\n    firstAngle = degrees(firstAngle)\n    lastAngle = degrees(lastAngle)\n\n    if int(firstAngle) + error >= int(lastAngle) >= int(firstAngle) - error:\n        return True\n    return False\n\n\ndef checkInnerOuter(firstAngle, lastAngle):\n    if firstAngle is None or lastAngle is None:\n        return True\n    dirAngle = degrees(firstAngle) - degrees(lastAngle)\n\n    if dirAngle > 180:\n        dirAngle = 180 - dirAngle\n    elif dirAngle < -180:\n        dirAngle = -180 - dirAngle\n\n    if dirAngle > 0:\n        return True\n\n    if dirAngle <= 0:\n        return False\n\n\ndef interSect(seg1, seg2):\n    seg1s, seg1e = seg1\n    seg2s, seg2e = seg2\n    denom = (seg2e.y - seg2s.y)*(seg1e.x - seg1s.x) - (seg2e.x - seg2s.x)*(seg1e.y - seg1s.y)\n    if roundFloat(denom) == 0:\n        # print('parallel: %s' % denom)\n        return None\n    uanum = (seg2e.x - seg2s.x)*(seg1s.y - seg2s.y) - (seg2e.y - seg2s.y)*(seg1s.x - seg2s.x)\n    ubnum = (seg1e.x - seg1s.x)*(seg1s.y - seg2s.y) - (seg1e.y - seg1s.y)*(seg1s.x - seg2s.x)\n    ua = uanum / denom\n    # ub = ubnum / denom\n    x = seg1s.x + ua*(seg1e.x - seg1s.x)\n    y = seg1s.y + ua*(seg1e.y - seg1s.y)\n    return MathPoint(x, y)\n\n\ndef pointOnACurve(p1, c1, c2, p2, value):\n    x1, y1 = p1\n    cx1, cy1 = c1\n    cx2, cy2 = c2\n    x2, y2 = p2\n    dx = x1\n    cx = (cx1 - dx) * 3.0\n    bx = (cx2 - cx1) * 3.0 - cx\n    ax = x2 - dx - cx - bx\n    dy = y1\n    cy = (cy1 - dy) * 3.0\n    by = (cy2 - cy1) * 3.0 - cy\n    ay = y2 - dy - cy - by\n    mx = ax*(value)**3 + bx*(value)**2 + cx*(value) + dx\n    my = ay*(value)**3 + by*(value)**2 + cy*(value) + dy\n    return MathPoint(mx, my)\n\n\nclass MathPoint(object):\n\n    def __init__(self, x, y=None):\n        if y is None:\n            x, y = x\n        self.x = x\n        self.y = y\n\n    def __repr__(self):\n        return \"<MathPoint x:%s y:%s>\" % (self.x, self.y)\n\n    def __getitem__(self, index):\n        if index == 0:\n            return self.x\n        if index == 1:\n            return self.y\n        raise IndexError\n\n    def __iter__(self):\n        for value in [self.x, self.y]:\n            yield value\n\n    def __add__(self, p):  # p + p\n        if not isinstance(p, self.__class__):\n            return self.__class__(self.x + p, self.y + p)\n        return self.__class__(self.x + p.x, self.y + p.y)\n\n    def __sub__(self, p):  # p - p\n        if not isinstance(p, self.__class__):\n            return self.__class__(self.x - p, self.y - p)\n        return self.__class__(self.x - p.x, self.y - p.y)\n\n    def __mul__(self, p):  # p * p\n        if not isinstance(p, self.__class__):\n            return self.__class__(self.x * p, self.y * p)\n        return self.__class__(self.x * p.x, self.y * p.y)\n\n    def __div__(self, p):  # p / p\n        if not isinstance(p, self.__class__):\n            return self.__class__(self.x / p, self.y / p)\n        return self.__class__(self.x / p.x, self.y / p.y)\n\n    __truediv__ = __div__\n\n    def __eq__(self, p):  # if p == p\n        if not isinstance(p, self.__class__):\n            return False\n        return roundFloat(self.x) == roundFloat(p.x) and roundFloat(self.y) == roundFloat(p.y)\n\n    def __ne__(self, p):  # if p != p\n        return not self.__eq__(p)\n\n    def copy(self):\n        return self.__class__(self.x, self.y)\n\n    def round(self):\n        self.x = round(self.x)\n        self.y = round(self.y)\n\n    def distance(self, p):\n        return sqrt((p.x - self.x)**2 + (p.y - self.y)**2)\n\n    def angle(self, other, add=90):\n        # returns the angle of a Line in radians\n        b = other.x - self.x\n        a = other.y - self.y\n        c = sqrt(a**2 + b**2)\n        if c == 0:\n            return None\n        if add is None:\n            return b/c\n        cosAngle = degrees(acos(b/c))\n        sinAngle = degrees(asin(a/c))\n        if sinAngle < 0:\n            cosAngle = 360 - cosAngle\n        return radians(cosAngle + add)\n\n\nclass CleanPointPen(AbstractPointPen):\n\n    def __init__(self, pointPen):\n        self.pointPen = pointPen\n        self.currentContour = None\n\n    def processContour(self):\n        pointPen = self.pointPen\n        contour = self.currentContour\n\n        index = 0\n        prevAngle = None\n        toRemove = []\n        for data in contour:\n            if data[\"segmentType\"] in [\"line\", \"move\"]:\n                prevPoint = contour[index-1]\n                if prevPoint[\"segmentType\"] in [\"line\", \"move\"]:\n                    angle = MathPoint(data[\"point\"]).angle(MathPoint(prevPoint[\"point\"]))\n                    if prevAngle is not None and angle is not None and roundFloat(prevAngle) == roundFloat(angle):\n                        prevPoint[\"uniqueID\"] = id(prevPoint)\n                        toRemove.append(prevPoint)\n                    prevAngle = angle\n                else:\n                    prevAngle = None\n            else:\n                prevAngle = None\n            index += 1\n\n        for data in toRemove:\n            contour.remove(data)\n\n        pointPen.beginPath()\n        for data in contour:\n            pointPen.addPoint(data[\"point\"], **data)\n        pointPen.endPath()\n\n    def beginPath(self, identifier=None):\n        assert self.currentContour is None\n        self.currentContour = []\n        self.onCurve = []\n\n    def endPath(self):\n        assert self.currentContour is not None\n        self.processContour()\n        self.currentContour = None\n\n    def addPoint(self, pt, segmentType=None, smooth=False, name=None, **kwargs):\n        data = dict(point=pt, segmentType=segmentType, smooth=smooth, name=name)\n        data.update(kwargs)\n        self.currentContour.append(data)\n\n    def addComponent(self, glyphName, transform):\n        assert self.currentContour is None\n        self.pointPen.addComponent(glyphName, transform)\n\n\nclass OutlinePen(BasePen):\n\n    pointClass = MathPoint\n    magicCurve = 0.5522847498\n\n    def __init__(self, glyphSet, offset=10, contrast=0, contrastAngle=0, connection=\"square\", cap=\"round\", miterLimit=None, closeOpenPaths=True, optimizeCurve=False, preserveComponents=False, filterDoubles=True):\n        BasePen.__init__(self, glyphSet)\n\n        self.offset = abs(offset)\n        self.contrast = abs(contrast)\n        self.contrastAngle = contrastAngle\n        self._inputmiterLimit = miterLimit\n        if miterLimit is None:\n            miterLimit = self.offset * 2\n        self.miterLimit = abs(miterLimit)\n\n        self.closeOpenPaths = closeOpenPaths\n        self.optimizeCurve = optimizeCurve\n\n        self.connectionCallback = getattr(self, \"connection%s\" % (connection.title()))\n        self.capCallback = getattr(self, \"cap%s\" % (cap.title()))\n\n        self.originalGlyph = Glyph()\n        self.originalPen = self.originalGlyph.getPen()\n\n        self.outerGlyph = Glyph()\n        self.outerPen = self.outerGlyph.getPen()\n        self.outerCurrentPoint = None\n        self.outerFirstPoint = None\n        self.outerPrevPoint = None\n\n        self.innerGlyph = Glyph()\n        self.innerPen = self.innerGlyph.getPen()\n        self.innerCurrentPoint = None\n        self.innerFirstPoint = None\n        self.innerPrevPoint = None\n\n        self.prevPoint = None\n        self.firstPoint = None\n        self.firstAngle = None\n        self.prevAngle = None\n\n        self.shouldHandleMove = True\n\n        self.preserveComponents = preserveComponents\n        self.components = []\n\n        self.filterDoubles = filterDoubles\n        self.drawSettings()\n\n    def _moveTo(self, pt):\n        x, y = pt\n        if self.offset == 0:\n            self.outerPen.moveTo((x, y))\n            self.innerPen.moveTo((x, y))\n            return\n        self.originalPen.moveTo((x, y))\n\n        p = self.pointClass(x, y)\n        self.prevPoint = p\n        self.firstPoint = p\n        self.shouldHandleMove = True\n\n    def _lineTo(self, pt):\n        x, y = pt\n        if self.offset == 0:\n            self.outerPen.lineTo((x, y))\n            self.innerPen.lineTo((x, y))\n            return\n        self.originalPen.lineTo((x, y))\n\n        currentPoint = self.pointClass(x, y)\n        if currentPoint == self.prevPoint:\n            return\n\n        self.currentAngle = self.prevPoint.angle(currentPoint)\n        thickness = self.getThickness(self.currentAngle)\n        self.innerCurrentPoint = self.prevPoint - self.pointClass(cos(self.currentAngle), sin(self.currentAngle)) * thickness\n        self.outerCurrentPoint = self.prevPoint + self.pointClass(cos(self.currentAngle), sin(self.currentAngle)) * thickness\n\n        if self.shouldHandleMove:\n            self.shouldHandleMove = False\n\n            self.innerPen.moveTo(self.innerCurrentPoint)\n            self.innerFirstPoint = self.innerCurrentPoint\n\n            self.outerPen.moveTo(self.outerCurrentPoint)\n            self.outerFirstPoint = self.outerCurrentPoint\n\n            self.firstAngle = self.currentAngle\n        else:\n            self.buildConnection()\n\n        self.innerCurrentPoint = currentPoint - self.pointClass(cos(self.currentAngle), sin(self.currentAngle)) * thickness\n        self.innerPen.lineTo(self.innerCurrentPoint)\n        self.innerPrevPoint = self.innerCurrentPoint\n\n        self.outerCurrentPoint = currentPoint + self.pointClass(cos(self.currentAngle), sin(self.currentAngle)) * thickness\n        self.outerPen.lineTo(self.outerCurrentPoint)\n        self.outerPrevPoint = self.outerCurrentPoint\n\n        self.prevPoint = currentPoint\n        self.prevAngle = self.currentAngle\n\n    def _curveToOne(self, pt1, pt2, pt3):\n        if self.optimizeCurve:\n            curves = splitCubicAtT(self.prevPoint, pt1, pt2, pt3, .5)\n        else:\n            curves = [(self.prevPoint, pt1, pt2, pt3)]\n        for curve in curves:\n            p1, h1, h2, p2 = curve\n            self._processCurveToOne(h1, h2, p2)\n\n    def _processCurveToOne(self, pt1, pt2, pt3):\n        if self.offset == 0:\n            self.outerPen.curveTo(pt1, pt2, pt3)\n            self.innerPen.curveTo(pt1, pt2, pt3)\n            return\n        self.originalPen.curveTo(pt1, pt2, pt3)\n\n        p1 = self.pointClass(*pt1)\n        p2 = self.pointClass(*pt2)\n        p3 = self.pointClass(*pt3)\n\n        if p1 == self.prevPoint:\n            p1 = pointOnACurve(self.prevPoint, p1, p2, p3, 0.01)\n        if p2 == p3:\n            p2 = pointOnACurve(self.prevPoint, p1, p2, p3, 0.99)\n\n        a1 = self.prevPoint.angle(p1)\n        a2 = p2.angle(p3)\n\n        self.currentAngle = a1\n        tickness1 = self.getThickness(a1)\n        tickness2 = self.getThickness(a2)\n\n        a1bis = self.prevPoint.angle(p1, 0)\n        a2bis = p3.angle(p2, 0)\n        intersectPoint = interSect((self.prevPoint, self.prevPoint + self.pointClass(cos(a1), sin(a1)) * 100),\n                                   (p3, p3 + self.pointClass(cos(a2), sin(a2)) * 100))\n        self.innerCurrentPoint = self.prevPoint - self.pointClass(cos(a1), sin(a1)) * tickness1\n        self.outerCurrentPoint = self.prevPoint + self.pointClass(cos(a1), sin(a1)) * tickness1\n\n        if self.shouldHandleMove:\n            self.shouldHandleMove = False\n\n            self.innerPen.moveTo(self.innerCurrentPoint)\n            self.innerFirstPoint = self.innerPrevPoint = self.innerCurrentPoint\n\n            self.outerPen.moveTo(self.outerCurrentPoint)\n            self.outerFirstPoint = self.outerPrevPoint = self.outerCurrentPoint\n\n            self.firstAngle = a1\n        else:\n            self.buildConnection()\n\n        h1 = None\n        if intersectPoint is not None:\n            h1 = interSect((self.innerCurrentPoint, self.innerCurrentPoint + self.pointClass(cos(a1bis), sin(a1bis)) * tickness1),  (intersectPoint, p1))\n        if h1 is None:\n            h1 = p1 - self.pointClass(cos(a1), sin(a1)) * tickness1\n\n        self.innerCurrentPoint = p3 - self.pointClass(cos(a2), sin(a2)) * tickness2\n\n        h2 = None\n        if intersectPoint is not None:\n            h2 = interSect((self.innerCurrentPoint, self.innerCurrentPoint + self.pointClass(cos(a2bis), sin(a2bis)) * tickness2), (intersectPoint, p2))\n        if h2 is None:\n            h2 = p2 - self.pointClass(cos(a1), sin(a1)) * tickness1\n\n        self.innerPen.curveTo(h1, h2, self.innerCurrentPoint)\n        self.innerPrevPoint = self.innerCurrentPoint\n\n        ########\n        h1 = None\n        if intersectPoint is not None:\n            h1 = interSect((self.outerCurrentPoint, self.outerCurrentPoint + self.pointClass(cos(a1bis), sin(a1bis)) * tickness1), (intersectPoint, p1))\n        if h1 is None:\n            h1 = p1 + self.pointClass(cos(a1), sin(a1)) * tickness1\n\n        self.outerCurrentPoint = p3 + self.pointClass(cos(a2), sin(a2)) * tickness2\n\n        h2 = None\n        if intersectPoint is not None:\n            h2 = interSect((self.outerCurrentPoint, self.outerCurrentPoint + self.pointClass(cos(a2bis), sin(a2bis)) * tickness2), (intersectPoint, p2))\n        if h2 is None:\n            h2 = p2 + self.pointClass(cos(a1), sin(a1)) * tickness1\n        self.outerPen.curveTo(h1, h2, self.outerCurrentPoint)\n        self.outerPrevPoint = self.outerCurrentPoint\n\n        self.prevPoint = p3\n        self.currentAngle = a2\n        self.prevAngle = a2\n\n    def _closePath(self):\n        if self.shouldHandleMove:\n            return\n        if self.offset == 0:\n            self.outerPen.closePath()\n            self.innerPen.closePath()\n            return\n\n        if not self.prevPoint == self.firstPoint:\n            self._lineTo(self.firstPoint)\n\n        self.originalPen.closePath()\n\n        self.innerPrevPoint = self.innerCurrentPoint\n        self.innerCurrentPoint = self.innerFirstPoint\n\n        self.outerPrevPoint = self.outerCurrentPoint\n        self.outerCurrentPoint = self.outerFirstPoint\n\n        self.prevAngle = self.currentAngle\n        self.currentAngle = self.firstAngle\n\n        self.buildConnection(close=True)\n\n        self.innerPen.closePath()\n        self.outerPen.closePath()\n\n    def _endPath(self):\n        if self.shouldHandleMove:\n            return\n\n        self.originalPen.endPath()\n        self.innerPen.endPath()\n        self.outerPen.endPath()\n\n        if self.closeOpenPaths:\n\n            innerContour = self.innerGlyph[-1]\n            outerContour = self.outerGlyph[-1]\n\n            innerContour.reverse()\n\n            innerContour[0].segmentType = \"line\"\n            outerContour[0].segmentType = \"line\"\n\n            self.buildCap(outerContour, innerContour)\n\n            for point in innerContour:\n                outerContour.addPoint((point.x, point.y), segmentType=point.segmentType, smooth=point.smooth)\n\n            self.innerGlyph.removeContour(innerContour)\n\n    def addComponent(self, glyphName, transform):\n        if self.preserveComponents:\n            self.components.append((glyphName, transform))\n        else:\n            BasePen.addComponent(self, glyphName, transform)\n\n    # thickness\n\n    def getThickness(self, angle):\n        a2 = angle + pi * .5\n        f = abs(sin(a2 + radians(self.contrastAngle)))\n        f = f ** 5\n        return self.offset + self.contrast * f\n\n    # connections\n\n    def buildConnection(self, close=False):\n        if not checkSmooth(self.prevAngle, self.currentAngle):\n            if checkInnerOuter(self.prevAngle, self.currentAngle):\n                self.connectionCallback(self.outerPrevPoint, self.outerCurrentPoint, self.outerPen, close)\n                self.connectionInnerCorner(self.innerPrevPoint, self.innerCurrentPoint, self.innerPen, close)\n            else:\n                self.connectionCallback(self.innerPrevPoint, self.innerCurrentPoint, self.innerPen, close)\n                self.connectionInnerCorner(self.outerPrevPoint, self.outerCurrentPoint, self.outerPen, close)\n        elif not self.filterDoubles:\n            self.innerPen.lineTo(self.innerCurrentPoint)\n            self.outerPen.lineTo(self.outerCurrentPoint)\n\n    def connectionSquare(self, first, last, pen, close):\n        angle_1 = radians(degrees(self.prevAngle)+90)\n        angle_2 = radians(degrees(self.currentAngle)+90)\n\n        tempFirst = first - self.pointClass(cos(angle_1), sin(angle_1)) * self.miterLimit\n        tempLast = last + self.pointClass(cos(angle_2), sin(angle_2)) * self.miterLimit\n\n        newPoint = interSect((first, tempFirst), (last, tempLast))\n\n        if newPoint is not None:\n\n            if self._inputmiterLimit is not None and roundFloat(newPoint.distance(first)) > self._inputmiterLimit:\n                pen.lineTo(tempFirst)\n                pen.lineTo(tempLast)\n            else:\n                pen.lineTo(newPoint)\n\n        if not close:\n            pen.lineTo(last)\n\n    def connectionRound(self, first, last, pen, close):\n        angle_1 = radians(degrees(self.prevAngle)+90)\n        angle_2 = radians(degrees(self.currentAngle)+90)\n\n        tempFirst = first - self.pointClass(sin(angle_1), -cos(angle_1))\n        tempLast = last + self.pointClass(sin(angle_2), -cos(angle_2))\n\n        centerPoint = interSect((first, tempFirst), (last, tempLast))\n        if centerPoint is None:\n            # the lines are parallel, let's just take the middle\n            centerPoint = (first + last) / 2\n\n        angle_diff = (angle_1 - angle_2) % (2 * pi)\n        if angle_diff > pi:\n            angle_diff = 2 * pi - angle_diff\n        angle_half = angle_diff / 2\n\n        radius = centerPoint.distance(first)\n        D = radius * (1 - cos(angle_half))\n        if sin(angle_half) == 0:\n            handleLength = 0\n        else:\n            handleLength = (4 * D / 3) / sin(angle_half)  # length of the bcp line\n\n        bcp1 = first - self.pointClass(cos(angle_1), sin(angle_1)) * handleLength\n        bcp2 = last + self.pointClass(cos(angle_2), sin(angle_2)) * handleLength\n        pen.curveTo(bcp1, bcp2, last)\n\n    def connectionButt(self, first, last, pen, close):\n        if not close:\n            pen.lineTo(last)\n\n    def connectionInnerCorner(self, first, last, pen, close):\n        if not close:\n            pen.lineTo(last)\n\n    # caps\n\n    def buildCap(self, firstContour, lastContour):\n        first = firstContour[-1]\n        last = lastContour[0]\n        first = self.pointClass(first.x, first.y)\n        last = self.pointClass(last.x, last.y)\n\n        self.capCallback(firstContour, lastContour, first, last, self.prevAngle)\n\n        first = lastContour[-1]\n        last = firstContour[0]\n        first = self.pointClass(first.x, first.y)\n        last = self.pointClass(last.x, last.y)\n\n        angle = radians(degrees(self.firstAngle) + 180)\n        self.capCallback(lastContour, firstContour, first, last, angle)\n\n    def capButt(self, firstContour, lastContour, first, last, angle):\n        # not nothing\n        pass\n\n    def capRound(self, firstContour, lastContour, first, last, angle):\n        hookedAngle = radians(degrees(angle) + 90)\n\n        p1 = first - self.pointClass(cos(hookedAngle), sin(hookedAngle)) * self.offset\n\n        p2 = last - self.pointClass(cos(hookedAngle), sin(hookedAngle)) * self.offset\n\n        oncurve = p1 + (p2 - p1) * .5\n\n        roundness = .54  # should be self.magicCurve\n\n        h1 = first - self.pointClass(cos(hookedAngle), sin(hookedAngle)) * self.offset * roundness\n        h2 = oncurve + self.pointClass(cos(angle), sin(angle)) * self.offset * roundness\n\n        firstContour[-1].smooth = True\n\n        firstContour.addPoint((h1.x, h1.y))\n        firstContour.addPoint((h2.x, h2.y))\n        firstContour.addPoint((oncurve.x, oncurve.y), smooth=True, segmentType=\"curve\")\n\n        h1 = oncurve - self.pointClass(cos(angle), sin(angle)) * self.offset * roundness\n        h2 = last - self.pointClass(cos(hookedAngle), sin(hookedAngle)) * self.offset * roundness\n\n        firstContour.addPoint((h1.x, h1.y))\n        firstContour.addPoint((h2.x, h2.y))\n\n        lastContour[0].segmentType = \"curve\"\n        lastContour[0].smooth = True\n\n    def capSquare(self, firstContour, lastContour, first, last, angle):\n        angle = radians(degrees(angle) + 90)\n\n        firstContour[-1].smooth = True\n        lastContour[0].smooth = True\n\n        p1 = first - self.pointClass(cos(angle), sin(angle)) * self.offset\n        firstContour.addPoint((p1.x, p1.y), smooth=False, segmentType=\"line\")\n\n        p2 = last - self.pointClass(cos(angle), sin(angle)) * self.offset\n        firstContour.addPoint((p2.x, p2.y), smooth=False, segmentType=\"line\")\n\n    def drawSettings(self, drawOriginal=False, drawInner=False, drawOuter=True):\n        self.drawOriginal = drawOriginal\n        self.drawInner = drawInner\n        self.drawOuter = drawOuter\n\n    def drawPoints(self, pointPen):\n        if self.drawInner:\n            reversePen = ReverseContourPointPen(pointPen)\n            self.innerGlyph.drawPoints(CleanPointPen(reversePen))\n        if self.drawOuter:\n            self.outerGlyph.drawPoints(CleanPointPen(pointPen))\n\n        if self.drawOriginal:\n            if self.drawOuter:\n                pointPen = ReverseContourPointPen(pointPen)\n            self.originalGlyph.drawPoints(CleanPointPen(pointPen))\n\n        for glyphName, transform in self.components:\n            pointPen.addComponent(glyphName, transform)\n\n    def draw(self, pen):\n        pointPen = PointToSegmentPen(pen)\n        self.drawPoints(pointPen)\n\n    def getGlyph(self):\n        glyph = Glyph()\n        pointPen = glyph.getPointPen()\n        self.drawPoints(pointPen)\n        return glyph\n    \n    def Record(recording, offset=1):\n        op = OutlinePen(None, offset=offset, optimizeCurve=True)\n        replayRecording(recording.value, op)\n        op.drawSettings(drawInner=True, drawOuter=True)\n        g = op.getGlyph()\n        rp2 = RecordingPen()\n        g.draw(rp2)\n        return rp2"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/rendererdrawbotpen.py",
    "content": "try:\n    import drawBot as db\nexcept:\n    pass\n\nfrom coldtype.pens.drawbotpen import DrawBotPen\n\nclass RendererDrawBotPen(DrawBotPen):\n\n    #def draw(self, scale=2, style=None):\n    #    return super().draw(scale=scale, style=style)\n\n    def Composite1(pens, rect, save_to, paginate=False, scale=2):\n        db.newDrawing()\n        rect = rect.scale(scale)\n        if not paginate:\n            db.newPage(rect.w, rect.h)\n        for pen in RendererDrawBotPen.FindPens(pens):\n            if paginate:\n                db.newPage(rect.w, rect.h)\n            RendererDrawBotPen(pen, rect).draw(scale=scale)\n        db.saveImage(str(save_to))\n        db.endDrawing()\n    \n    def Composite(pens, rect, save_to, scale=2):\n        db.newDrawing()\n        rect = rect.scale(scale)\n        db.newPage(rect.w, rect.h)\n\n        def draw(pen, state, data):\n            if state == 0:\n                RendererDrawBotPen(pen, rect).draw(scale=scale)\n            elif state == -1:\n                imgf = pen.data(\"imgf\")\n                if imgf:\n                    im = db.ImageObject()\n                    im.lockFocus()\n                    db.size(rect.w+300, rect.h+300)\n                    db.translate(150, 150)\n                    db.scale(scale)\n                    pen.data(im=im)\n            elif state == 1:\n                imgf = pen.data(\"imgf\")\n                im = pen.data(\"im\")\n                if imgf and im:\n                    im.unlockFocus()\n                    imgf(im)\n                    x, y = im.offset()\n                    db.translate(-150, -150)\n                    db.image(im, (x, y))\n        \n        if not hasattr(pens, \"_pens\"):\n            pens = [pens]\n        \n        for dps in pens:\n            dps.walk(draw)\n        \n        db.saveImage(str(save_to))\n        db.endDrawing()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/reportlabpen.py",
    "content": "from fontTools.pens.basePen import BasePen\n\nfrom reportlab.pdfgen.canvas import Canvas\nfrom reportlab.lib.pagesizes import letter\nfrom reportlab.lib.colors import transparent\n\nfrom coldtype.geometry import Point\nfrom coldtype.pens.drawablepen import DrawablePenMixin\n\n\nclass ReportLabPathPen(BasePen):\n\tdef __init__(self, canvas):\n\t\tsuper().__init__()\n\t\tself.path = canvas.beginPath()\n\n\tdef _moveTo(self, p):\n\t\t(x,y) = p\n\t\tself.path.moveTo(x,y)\n\n\tdef _lineTo(self, p):\n\t\t(x,y) = p\n\t\tself.path.lineTo(x,y)\n\n\tdef _curveToOne(self, p1, p2, p3):\n\t\t(x1,y1) = p1\n\t\t(x2,y2) = p2\n\t\t(x3,y3) = p3\n\t\tself.path.curveTo(x1, y1, x2, y2, x3, y3)\n\n\tdef _closePath(self):\n\t\tself.path.close()\n\n\nclass ReportLabPen(DrawablePenMixin):\n    def __init__(self, dat, rect, canvas, scale, style=None, alpha=1):\n        super().__init__()\n        self.dat = dat\n        self.scale = scale\n        self.canvas = canvas\n        self.rect = rect\n        self.style = style\n        self.alpha = alpha\n        \n        rpp = ReportLabPathPen(canvas)\n        dat.replay(rpp)\n        self.path = rpp.path\n\n        all_attrs = list(self.findStyledAttrs(style))\n\n        canvas.saveState()\n        for attrs, attr in all_attrs:\n            method, *args = attr\n            do_stroke = 0\n            do_fill = 0\n            if method == \"stroke\" and args[0].get(\"weight\") != 0:\n                do_stroke = 1\n            elif method == \"fill\" and args[0].a > 0:\n                do_fill = 1\n            self.applyDATAttribute(attrs, attr)\n            canvas.drawPath(self.path, fill=do_fill, stroke=do_stroke)\n        canvas.restoreState()\n    \n    def fill(self, color):\n        self.canvas.setFillColorRGB(color.r, color.g, color.b)\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        #return\n        if weight == 0:\n            self.canvas.setStrokeColor(transparent)\n            self.canvas.setLineWidth(0)\n            return\n        self.canvas.setStrokeColorRGB(color.r, color.g, color.b)\n        self.canvas.setLineWidth(weight)\n    \n    def PDF(pens, rect, save_to, scale=1, style=None, title=None):\n        c = Canvas(save_to, pagesize=letter)\n        ReportLabPen.CompositeToCanvas(pens, rect, c, scale=scale, style=style)\n        if title:\n            c.setTitle(title)\n        c.showPage()\n        c.save() # necessary?\n    \n    def CompositeToCanvas(pens, rect, canvas, scale=1, style=None):\n        if scale != 1:\n            pens.scale(scale, scale, Point((0, 0)))\n        \n        if not pens.visible:\n            return\n        \n        def draw(pen, state, data):\n            if state != 0 or not pen.visible:\n                return\n            \n            if \"text\" in pen._data:\n                # TODO, look at SkiaPen for reference implementation\n                return\n            \n            if state == 0:\n                ReportLabPen(pen, rect, canvas, scale, style=style, alpha=data[\"alpha\"])\n        \n        pens.walk(draw, visible_only=True)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/skiapathpen.py",
    "content": "from fontTools.pens.basePen import BasePen\nfrom fontTools.pens.transformPen import TransformPen\n\nfrom coldtype.runon.path import P\n\ntry:\n    import skia\nexcept ImportError:\n    skia = None\n\n\nclass SkiaPathPen(BasePen):\n    def __init__(self, dat, h=None):\n        super().__init__()\n        self.dat = dat\n        self.path = skia.Path()\n        \n        if h is not None:\n            tp = TransformPen(self, (1, 0, 0, -1, 0, h))\n            if hasattr(dat, \"_val\"):\n                try:\n                    dat._val.replay(tp)\n                except TypeError:\n                    #print(\"FAIL\")\n                    #print(dat._val.value)\n                    pass\n            else:\n                dat.replay(tp)\n        else:\n            for mv, pts in self.dat.value:\n                #if mv == \"qCurveTo\":\n                #    self._qCurveToOne()\n                getattr(self, mv)(*pts)\n    \n    def _moveTo(self, p):\n        self.path.moveTo(p[0], p[1])\n\n    def _lineTo(self, p):\n        self.path.lineTo(p[0], p[1])\n\n    def _curveToOne(self, p1, p2, p3):\n        self.path.cubicTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1])\n\n    def _qCurveToOne(self, p1, p2):\n        self.path.quadTo(p1[0], p1[1], p2[0], p2[1])\n\n    def _closePath(self):\n        self.path.close()\n\n    def to_drawing(self):\n        def unwrap(p):\n            return [p.x(), p.y()]\n        \n        dp = P()\n        for mv, pts in self.path:\n            if mv == skia.Path.Verb.kMove_Verb:\n                dp.moveTo(unwrap(pts[0]))\n            elif mv == skia.Path.Verb.kLine_Verb:\n                dp.lineTo(*[unwrap(p) for p in pts[1:]])\n            elif mv == skia.Path.Verb.kQuad_Verb:\n                dp.qCurveTo(*[unwrap(p) for p in pts[1:]])\n            elif mv == skia.Path.Verb.kClose_Verb:\n                dp.closePath()\n            else:\n                print(mv)\n        return dp"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/skiapen.py",
    "content": "import skia, struct\nfrom pathlib import Path\n\nfrom coldtype.pens.drawablepen import DrawablePenMixin, Gradient\nfrom coldtype.pens.skiapathpen import SkiaPathPen\nfrom coldtype.runon.path import P\nfrom coldtype.img.abstract import AbstractImage\nfrom coldtype.geometry import Rect, Point\nfrom coldtype.text.reader import Style\nfrom coldtype.color import Color\n\nimport coldtype.skiashim as skiashim\nfrom coldtype.img.skiasvg import SkiaSVG\n\ntry:\n    from coldtype.text.colr.skia import SkiaShaders\nexcept ImportError:\n    pass\n\n\nclass SkiaPen(DrawablePenMixin, SkiaPathPen):\n    def __init__(self, dat, rect, canvas, scale, style=None, alpha=1):\n        super().__init__(dat, rect.h)\n        self.scale = scale\n        self.canvas = canvas\n        self.rect = rect\n        self.blendmode = None\n        self.style = style\n        self.alpha = alpha\n\n        all_attrs = list(self.findStyledAttrs(style))\n\n        skia_paint_kwargs = dict(AntiAlias=True)\n        for attrs, attr in all_attrs:\n            method, *args = attr\n            if method == \"skp\":\n                skia_paint_kwargs = args[0]\n                if \"AntiAlias\" not in skia_paint_kwargs:\n                    skia_paint_kwargs[\"AntiAlias\"] = True\n            elif method == \"blendmode\":\n                self.blendmode = args[0].to_skia()\n\n        for attrs, attr in all_attrs:\n            filtered_paint_kwargs = {}\n            for k, v in skia_paint_kwargs.items():\n                if not k.startswith(\"_\"):\n                    filtered_paint_kwargs[k] = v\n            #filtered_paint_kwargs[\"AntiAlias\"] = False\n            self.paint = skia.Paint(**filtered_paint_kwargs)\n            if self.blendmode:\n                self.paint.setBlendMode(self.blendmode)\n            method, *args = attr\n            if method == \"skp\":\n                pass\n            elif method == \"skb\":\n                pass\n            elif method == \"blendmode\":\n                pass\n            elif method == \"stroke\" and args[0].get(\"weight\") == 0:\n                pass\n            elif method == \"dash\":\n                pass\n            else:\n                canvas.save()\n                \n                if method == \"COLR\":\n                    did_draw = False\n                    self.colr(args[0], dat)\n                else:\n                    did_draw = self.applyDATAttribute(attrs, attr)\n\n                self.paint.setAlphaf(self.paint.getAlphaf()*self.alpha)\n                if not did_draw:\n                    canvas.drawPath(self.path, self.paint)\n                canvas.restore()\n\n    def colr(self, data, pen:P):\n        method, args = data\n        shader_fn = getattr(SkiaShaders, method)\n        if shader_fn:\n            ss = pen.data(\"substructure\").copy()\n            ss.invertYAxis(self.rect.h)\n            sval = ss._val.value\n            \n            if method == \"drawPathLinearGradient\":\n                args[\"pt1\"] = sval[0][1][0]\n                args[\"pt2\"] = sval[1][1][0]\n            elif method == \"drawPathSweepGradient\":\n                args[\"center\"] = sval[0][1][0]\n            elif method == \"drawPathRadialGradient\":\n                args[\"startCenter\"] = sval[0][1][0]\n                args[\"endCenter\"] = sval[1][1][0]\n\n            shader = shader_fn(*args.values())\n            self.paint.setStyle(skia.Paint.kFill_Style)\n            self.paint.setShader(shader)\n        else:\n            raise Exception(\"No matching SkiaShaders function for \" + method)\n\n    def fill(self, color):\n        self.paint.setStyle(skia.Paint.kFill_Style)\n        if color:\n            if isinstance(color, Gradient):\n                self.gradient(color)\n            elif isinstance(color, Color):\n                self.paint.setColor(color.skia())\n        \n        if \"blur\" in self.dat._data:\n            args = self.dat._data[\"blur\"]\n            try:\n                sigma = args[0] / 3\n                if len(args) > 1:\n                    style = args[1]\n                else:\n                    style = skia.kNormal_BlurStyle\n            except:\n                style = skia.kNormal_BlurStyle\n                sigma = args / 3\n            \n            if sigma > 0:\n                self.paint.setMaskFilter(skia.MaskFilter.MakeBlur(style, sigma))\n        \n        if \"shake\" in self.dat._data:\n            args = self.dat._data[\"shake\"]\n            self.paint.setPathEffect(skia.DiscretePathEffect.Make(*args))\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        self.paint.setStyle(skia.Paint.kStroke_Style)\n        if dash:\n            self.paint.setPathEffect(skia.DashPathEffect.Make(*dash))\n        if color and weight > 0:\n            self.paint.setStrokeWidth(weight*self.scale)\n            if miter:\n                self.paint.setStrokeMiter(miter)\n            \n            if isinstance(color, Gradient):\n                self.gradient(color)\n            else:\n                self.paint.setColor(color.skia())\n    \n    def gradient(self, gradient):\n        self.paint.setShader(skia.GradientShader.MakeLinear([s[1].flip(self.rect).xy() for s in gradient.stops], [s[0].skia() for s in gradient.stops]))\n    \n    def image(self, src=None, opacity=1, rect=None, pattern=True):\n        if isinstance(src, skia.Image):\n            image = src\n        else:\n            image = skia.Image.MakeFromEncoded(skia.Data.MakeFromFileName(str(src)))\n\n        if not image:\n            print(\"image <\", src, \"> not found, cannot be used\")\n            return\n        \n        _, _, iw, ih = image.bounds()\n        \n        if pattern:\n            matrix = skia.Matrix()\n            matrix.setScale(rect.w / iw, rect.h / ih)\n            self.paint.setShader(skiashim.image_makeShader(image, matrix))\n        \n        if opacity != 1:\n            tf = skia.ColorFilters.Matrix([\n                1, 0, 0, 0, 0,\n                0, 1, 0, 0, 0,\n                0, 0, 1, 0, 0,\n                0, 0, 0, opacity, 0\n            ])\n            cf = self.paint.getColorFilter()\n            if cf:\n                self.paint.setColorFilter(skia.ColorFilters.Compose(\n                    tf, cf))\n            else:\n                self.paint.setColorFilter(tf)\n        \n        if not pattern:\n            bx, by, bw, bh = self.path.getBounds()\n            if rect:\n                bx, by = rect.flip(self.rect.h).xy()\n                #bx += rx\n                #by += ry\n            sx = rect.w / iw\n            sy = rect.h / ih\n            self.canvas.save()\n            #self.canvas.setMatrix(matrix)\n            self.canvas.clipPath(self.path, doAntiAlias=True)\n            if False:\n                self.canvas.scale(sx, sy)\n            else:\n                # TODO scale the image, or maybe that shouldn't be here? this scaling method is horrible for image quality\n                self.canvas.scale(sx, sy)\n            was_alpha = self.paint.getAlphaf()\n            paint = skiashim.paint_withFilterQualityHigh()\n            paint.setAlphaf(was_alpha*self.alpha)\n            skiashim.canvas_drawImage(self.canvas, image, bx/sx, by/sy, self.paint)\n            self.canvas.restore()\n            return True\n    \n    def shadow(self, clip=None, radius=10, color=Color.from_rgb(0,0,0,1)):\n        #print(\"SHADOW>\", self.style, clip, radius, color)\n        if clip:\n            if isinstance(clip, Rect):\n                skia.Rect()\n                sr = skia.Rect(*clip.scale(self.scale, \"mnx\", \"mny\").flip(self.rect.h).mnmnmxmx())\n                self.canvas.clipRect(sr)\n            elif isinstance(clip, P):\n                sp = SkiaPathPen(clip, self.rect.h)\n                self.canvas.clipPath(sp.path, doAntiAlias=True)\n        self.paint.setColor(skia.ColorBLACK)\n        self.paint.setImageFilter(skia.ImageFilters.DropShadow(0, 0, radius, radius, color.skia()))\n        return\n    \n    def Composite(pens, rect, save_to, scale=1, context=None, style=None):\n        rect = rect.scale(scale).round()\n\n        if context:\n            info = skia.ImageInfo.MakeN32Premul(rect.w, rect.h)\n            surface = skia.Surface.MakeRenderTarget(context, skia.Budgeted.kNo, info)\n            if not surface:\n                print(\"SURFACE CREATION FAILED, USING CPU...\")\n                surface = skia.Surface(rect.w, rect.h)\n        else:\n            #print(\"CPU RENDER\")\n            surface = skia.Surface(rect.w, rect.h)\n        \n        with surface as canvas:\n            if callable(pens):\n                pens(canvas) # direct-draw\n            else:\n                SkiaPen.CompositeToCanvas(pens, rect, canvas, scale=scale, style=style)\n\n        image = surface.makeImageSnapshot()\n        image.save(save_to, skia.kPNG)\n    \n    def PDFOnePage(pens, rect, save_to, scale=1):\n        stream = skia.FILEWStream(str(save_to))\n        with skia.PDF.MakeDocument(stream) as document:\n            with document.page(rect.w, rect.h) as canvas:\n                SkiaPen.CompositeToCanvas(pens, rect, canvas, scale=scale)\n    \n    def PDFMultiPage(pages, rect, save_to, scale=1):\n        stream = skia.FILEWStream(str(save_to))\n        with skia.PDF.MakeDocument(stream) as document:\n            for page in pages:\n                with document.page(rect.w, rect.h) as canvas:\n                    SkiaPen.CompositeToCanvas(page, rect, canvas, scale=scale)\n    \n    def SVG(pens, rect, save_to, scale=1):\n        stream = skia.FILEWStream(str(save_to))\n        canvas = skia.SVGCanvas.Make((rect.w, rect.h), stream)\n        SkiaPen.CompositeToCanvas(pens, rect, canvas, scale=scale)\n        del canvas\n        stream.flush()\n    \n    def CompositeToCanvas(pens, rect, canvas, scale=1, style=None):\n        #import inspect\n        #curframe = inspect.currentframe()\n        #calframe = inspect.getouterframes(curframe, 2)\n        #print(calframe[1][3],\"-> CompositeToCanvas:\", pens)\n\n        style_ = style\n\n        if scale != 1:\n            pens.scale(scale, scale, Point((0, 0)))\n        \n        if not pens.visible:\n            return\n        \n        def draw(pen, state, data):\n            if state != 0:\n                return\n\n            if not pen.visible:\n                return\n            \n            if \"text\" in pen._data:\n                text = pen.data(\"text\")\n                style = pen.data(\"style\")\n                frame = pen.ambit()\n\n                if not isinstance(style, Style):\n                    style = Style(*style[:-1], **style[-1], load_font=0)\n                \n                if isinstance(style.font, str):\n                    font = skia.Typeface(style.font)\n                else:\n                    font = skia.Typeface.MakeFromFile(str(style.font.path))\n                    if len(style.variations) > 0:\n                        fa = skia.FontArguments()\n                        # h/t https://github.com/justvanrossum/drawbot-skia/blob/master/src/drawbot_skia/gstate.py\n                        to_int = lambda s: struct.unpack(\">i\", bytes(s, \"ascii\"))[0]\n                        makeCoord = skia.FontArguments.VariationPosition.Coordinate\n                        rawCoords = [makeCoord(to_int(tag), value) for tag, value in style.variations.items()]\n                        coords = skia.FontArguments.VariationPosition.Coordinates(rawCoords)\n                        fa.setVariationDesignPosition(skia.FontArguments.VariationPosition(coords))\n                        font = font.makeClone(fa)\n                pt = frame.point(\"SW\")\n                canvas.drawString(\n                    text,\n                    pt.x,\n                    rect.h - pt.y,\n                    skia.Font(font, style.fontSize),\n                    skia.Paint(AntiAlias=True, Color=style.fill.skia()))\n                return\n            elif isinstance(pen, SkiaSVG):\n                #print(\"HELLO?\", pen._img, pen.width(), pen.height())\n                pen._img.render(canvas)\n            elif isinstance(pen, AbstractImage):\n                paint = skiashim.paint_withFilterQualityHigh()\n                f = pen.data(\"frame\")\n                canvas.save()\n                for action, *args in pen.transforms:\n                    if action == \"rotate\":\n                        deg, pt = args\n                        canvas.rotate(-deg, pt.x, rect.h - pt.y)\n                    elif action == \"matrix\":\n                        xs = args\n                        a, b, c, d, e, f = xs[0]\n                        m = skia.Matrix([\n                            a, b, e,\n                            c, d, f,\n                            0, 0, 1\n                        ])\n                        canvas.setMatrix(m)\n                    \n                paint.setAlphaf(paint.getAlphaf()*data[\"alpha\"]*pen.alpha)\n                bm = pen.blendmode()\n                if bm:\n                    paint.setBlendMode(bm.to_skia())\n                \n                skiashim.canvas_drawImage(canvas,\n                    pen._img,\n                    f.x,\n                    rect.h - f.y - f.h,\n                    paint)\n                canvas.restore()\n                return\n            \n            if state == 0:\n                SkiaPen(pen, rect, canvas, scale, style=style_, alpha=data[\"alpha\"])\n        \n        pens.walk(draw, visible_only=True)\n    \n    def Precompose(pens, rect, fmt=None, context=None, scale=1, disk=False, style=None):\n        rect = rect.round()\n\n        if scale < 0:\n            rescale = abs(scale)\n            scale = 1\n        else:\n            rescale = None\n\n        sr = rect\n        if scale != 1:\n            sr = rect.scale(scale).round()\n        rect = rect.round()\n        if context:\n            info = skia.ImageInfo.MakeN32Premul(sr.w, sr.h)\n            surface = skia.Surface.MakeRenderTarget(context, skia.Budgeted.kNo, info)\n            assert surface is not None\n        else:\n            surface = skia.Surface(sr.w, sr.h)\n        \n        with surface as canvas:\n            canvas.save()\n            canvas.scale(scale, scale)\n            if callable(pens):\n                pens(canvas)\n            else:\n                SkiaPen.CompositeToCanvas(pens.translate(-rect.x, -rect.y), rect, canvas, style=style)\n            canvas.restore()\n        img = surface.makeImageSnapshot()\n        if rescale is not None:\n            x, y, w, h = rect.scale(rescale)\n            img = img.resize(int(w), int(h))\n        \n        if disk:\n            Path(disk).parent.mkdir(exist_ok=True, parents=True)\n            img.save(disk, skia.kPNG)\n            #return disk\n        return img\n    \n    def ReadImage(src):\n        return skia.Image.MakeFromEncoded(skia.Data.MakeFromFileName(str(src)))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/svgpen.py",
    "content": "from fontTools.pens.transformPen import TransformPen\nfrom fontTools.pens.basePen import BasePen\n\nfrom coldtype.color import Gradient, Color\nfrom coldtype.pens.drawablepen import DrawablePenMixin\n\n#from lxml import etree\nimport xml.etree.ElementTree as etree\nimport base64\n\nfrom random import randint\n\n\ndef pointToString(pt):\n    return \" \".join([\"{:0.1f}\".format(i) for i in pt])\n\n\nclass SVGPathPen(BasePen):\n\n    def __init__(self, glyphSet):\n        BasePen.__init__(self, glyphSet)\n        self._commands = []\n        self._lastCommand = None\n        self._lastX = None\n        self._lastY = None\n\n    def _handleAnchor(self):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((0, 0))\n        >>> pen.moveTo((10, 10))\n        >>> pen._commands\n        ['M10 10']\n        \"\"\"\n        if self._lastCommand == \"M\":\n            self._commands.pop(-1)\n\n    def _moveTo(self, pt):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((0, 0))\n        >>> pen._commands\n        ['M0 0']\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((10, 0))\n        >>> pen._commands\n        ['M10 0']\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((0, 10))\n        >>> pen._commands\n        ['M0 10']\n        \"\"\"\n        self._handleAnchor()\n        t = \"M%s\" % (pointToString(pt))\n        self._commands.append(t)\n        self._lastCommand = \"M\"\n        self._lastX, self._lastY = pt\n\n    def _lineTo(self, pt):\n        \"\"\"\n        # duplicate point\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((10, 10))\n        >>> pen.lineTo((10, 10))\n        >>> pen._commands\n        ['M10 10']\n        # vertical line\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((10, 10))\n        >>> pen.lineTo((10, 0))\n        >>> pen._commands\n        ['M10 10', 'V0']\n        # horizontal line\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((10, 10))\n        >>> pen.lineTo((0, 10))\n        >>> pen._commands\n        ['M10 10', 'H0']\n        # basic\n        >>> pen = SVGPathPen(None)\n        >>> pen.lineTo((70, 80))\n        >>> pen._commands\n        ['L70 80']\n        # basic following a moveto\n        >>> pen = SVGPathPen(None)\n        >>> pen.moveTo((0, 0))\n        >>> pen.lineTo((10, 10))\n        >>> pen._commands\n        ['M0 0', ' 10 10']\n        \"\"\"\n        x, y = pt\n        # duplicate point\n        if x == self._lastX and y == self._lastY:\n            return\n        # vertical line\n        elif x == self._lastX:\n            cmd = \"V\"\n            pts = str(y)\n        # horizontal line\n        elif y == self._lastY:\n            cmd = \"H\"\n            pts = str(x)\n        # previous was a moveto\n        elif self._lastCommand == \"M\":\n            cmd = None\n            pts = \" \" + pointToString(pt)\n        # basic\n        else:\n            cmd = \"L\"\n            pts = pointToString(pt)\n        # write the string\n        t = \"\"\n        if cmd:\n            t += cmd\n            self._lastCommand = cmd\n        t += pts\n        self._commands.append(t)\n        # store for future reference\n        self._lastX, self._lastY = pt\n\n    def _curveToOne(self, pt1, pt2, pt3):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.curveTo((10, 20), (30, 40), (50, 60))\n        >>> pen._commands\n        ['C10 20 30 40 50 60']\n        \"\"\"\n        t = \"C\"\n        t += pointToString(pt1) + \" \"\n        t += pointToString(pt2) + \" \"\n        t += pointToString(pt3)\n        self._commands.append(t)\n        self._lastCommand = \"C\"\n        self._lastX, self._lastY = pt3\n\n    def _qCurveToOne(self, pt1, pt2):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.qCurveTo((10, 20), (30, 40))\n        >>> pen._commands\n        ['Q10 20 30 40']\n        \"\"\"\n        assert pt2 is not None\n        t = \"Q\"\n        t += pointToString(pt1) + \" \"\n        t += pointToString(pt2)\n        self._commands.append(t)\n        self._lastCommand = \"Q\"\n        self._lastX, self._lastY = pt2\n\n    def _closePath(self):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.closePath()\n        >>> pen._commands\n        ['Z']\n        \"\"\"\n        self._commands.append(\"Z\")\n        self._lastCommand = \"Z\"\n        self._lastX = self._lastY = None\n\n    def _endPath(self):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.endPath()\n        >>> pen._commands\n        ['Z']\n        \"\"\"\n        self._closePath()\n        self._lastCommand = None\n        self._lastX = self._lastY = None\n\n    def getCommands(self):\n        return \"\".join(self._commands)\n\n\nclass SVGPen(DrawablePenMixin, SVGPathPen):\n    def __init__(self, dat, h):\n        super().__init__(None)\n        self.defs = []\n        self.uses = []\n        self.dat = dat\n        self.h = h\n        tp = TransformPen(self, (1, 0, 0, -1, 0, h))\n        dat.round_to(0.1).replay(tp)\n    \n    def _endPath(self):\n        \"\"\"\n        >>> pen = SVGPathPen(None)\n        >>> pen.endPath()\n        >>> pen._commands\n        ['Z']\n        \"\"\"\n        #self._closePath()\n        self._lastCommand = None\n        self._lastX = self._lastY = None\n    \n    def fill(self, color):\n        if color:\n            if isinstance(color, Gradient):\n                self.path.set(\"fill\", f\"url('#{self.gradient(color)}')\")\n            elif isinstance(color, Color):\n                self.path.set(\"fill\", self.rgba(color))\n        else:\n            self.path.set(\"fill\", \"transparent\")\n    \n    def stroke(self, weight=1, color=None, dash=None, miter=None):\n        self.path.set(\"stroke-width\", str(weight))\n        if dash:\n            self.path.set(\"stroke-dasharray\", \" \".join([str(x) for x in dash]))\n        if color:\n            if isinstance(color, Gradient):\n                self.path.set(\"stroke\", f\"url('#{self.gradient(color)}')\")\n            elif isinstance(color, Color):\n                self.path.set(\"stroke\", self.rgba(color))\n        else:\n            self.path.set(\"stroke-width\", 0)\n            self.path.set(\"stroke\", \"transparent\")\n    \n    def rgba(self, color):\n        r, g, b, a = color.ints()\n        return f\"rgba({r}, {g}, {b}, {a})\"\n    \n    def rect(self, rect):\n        r = etree.Element(\"rect\")\n        fr = rect.flip(self.h)\n        r.set(\"x\", str(fr.x))\n        r.set(\"y\", str(fr.y))\n        r.set(\"width\", str(fr.w))\n        r.set(\"height\", str(fr.h))\n        return r\n    \n    def shadow(self, clip=None, radius=10, alpha=0.3, color=Color.from_rgb(0,0,0,1)):\n        hsh = str(hash(self.getCommands())) + str(randint(0, 1000000))\n        f = etree.Element(\"filter\")\n        f.set(\"x\", \"0\")\n        f.set(\"y\", \"0\")\n        f.set(\"width\", \"1000%\")\n        f.set(\"height\", \"1000%\")\n        f.set(\"x\", \"-500%\")\n        f.set(\"y\", \"-500%\")\n        f.set(\"id\", f\"shadow-{hsh}\")\n        fe = etree.Element(\"feDropShadow\")\n        fe.set(\"dx\", \"0\")\n        fe.set(\"dy\", \"0\")\n        fe.set(\"stdDeviation\", str(radius))\n        #fe.set(\"slope\", str(alpha))\n        fe.set(\"flood-color\", self.rgba(color))\n        fe.set(\"flood-opacity\", str(alpha))\n        f.append(fe)\n        self.defs.append(f)\n        if clip:\n            cp = etree.Element(\"clipPath\")\n            cp.set(\"id\", f\"clip-path_{hsh}\")\n            cp.append(self.rect(clip))\n            self.defs.append(cp)\n        #self.path.set(\"fill\", \"rgba(0, 0, 0, 0.3)\")\n        self.path.set(\"filter\", f\"url(#{f.get('id')})\")\n        if clip:\n            self.path.set(\"clip-path\", f\"url(#clip-path_{hsh})\")\n\n    def gradient(self, gradient):\n        lg = etree.Element(\"linearGradient\")\n        lg.set(\"id\", f\"gradient-{hash(self.getCommands())}-{randint(0, 100000)}\")\n        if gradient.stops[1][1].x == gradient.stops[0][1].x:\n            lg.set(\"gradientTransform\", \"rotate(90)\")\n        s1 = etree.Element(\"stop\", offset=\"0%\")\n        s1.set(\"stop-color\", self.rgba(gradient.stops[0][0]))\n        s2 = etree.Element(\"stop\", offset=\"100%\")\n        s2.set(\"stop-color\", self.rgba(gradient.stops[1][0]))\n        lg.append(s1)\n        lg.append(s2)\n        self.defs.append(lg)\n        return lg.get(\"id\")\n    \n    def image(self, src=None, opacity=None, rect=None):\n        if True:\n            src = base64.b64encode(open(src, \"rb\").read()).decode('utf-8')\n        hsh = str(hash(self.getCommands())) + str(randint(0, 100000))\n        img = etree.Element(\"image\")\n        img.set(\"x\", str(rect.x or 0))\n        img.set(\"y\", str(rect.y or 0))\n        img.set(\"width\", str(rect.w or 100))\n        img.set(\"height\", str(rect.h or 100))\n        img.set(\"opacity\", str(opacity))\n        img.set(\"image-href\", f\"data:image/png;base64,{src}\")\n        pattern = etree.Element(\"pattern\")\n        pattern.set(\"x\", img.get(\"x\"))\n        pattern.set(\"y\", img.get(\"y\"))\n        pattern.set(\"width\", img.get(\"width\"))\n        pattern.set(\"height\", img.get(\"height\"))\n        pattern.set(\"patternUnits\", \"userSpaceOnUse\")\n        pattern.set(\"id\", f\"pattern-{hsh}\")\n        pattern.append(img)\n        self.defs.append(pattern)\n        self.path.set(\"fill\", f\"url(#pattern-{hsh})\")\n    \n    def asSVG(self, style=None):\n        self.path = etree.Element(\"path\")\n        for attrs, attr in self.findStyledAttrs(style):\n            self.applyDATAttribute(attrs, attr)\n        self.path.set(\"d\", self.getCommands())\n        tag = self.dat.tag()\n        if tag:\n            self.path.set(\"data-tag\", tag)\n        g = etree.Element(\"g\")\n        defs = etree.Element(\"defs\")\n        for d in self.defs:\n            defs.append(d)\n        g.append(defs)\n        g.append(self.path)\n        for u in self.uses:\n            g.append(u)\n        return g\n    \n    def Composite(pens, rect,\n        offset=False,\n        style=None,\n        viewBox=False,\n        wrap=\"svg\",\n        to_string=True,\n        ):\n        docroot = etree.Element(wrap)\n        if wrap == \"svg\":\n            docroot.set(\"xmlns\", \"http://www.w3.org/2000/svg\")\n        \n        if not viewBox:\n            docroot.set(\"width\", str(rect.w))\n            docroot.set(\"height\", str(rect.h))\n        else:\n            docroot.set(\"viewBox\", f\"0 0 {rect.w} {rect.h}\")\n            docroot.set(\"width\", \"100%\")\n        \n        if offset:\n            docroot.set(\"style\", f\"left:{rect.x}px;bottom:{rect.y}px;\")\n        \n        for pen in SVGPen.FindPens(pens):\n            sp = SVGPen(pen, rect.h)\n            docroot.append(sp.asSVG(style=style))\n        \n        if to_string:\n            return etree.tostring(docroot).decode(\"utf-8\").replace(\"image-href\", \"xlink:href\")\n        else:\n            return docroot\n    \n    def Animation(frames, rect, fps):\n        docroot = etree.Element(\"svg\")\n        docroot.set(\"xmlns\", \"http://www.w3.org/2000/svg\")\n        docroot.set(\"width\", str(rect.w))\n        docroot.set(\"height\", str(rect.h))\n        docroot.set(\"data-fps\", str(fps))\n        docroot.set(\"data-duration\", str(len(frames)))\n\n        for idx, frame in enumerate(frames):\n            g = SVGPen.Composite(frame, rect, wrap=\"g\", to_string=False)\n            g.set(\"id\", f\"frame_{idx}\")\n            g.set(\"class\", \"frame\")\n            docroot.append(g)\n\n        return etree.tostring(docroot).decode(\"utf-8\").replace(\"image-href\", \"xlink:href\")\n    \nif __name__ == \"__main__\":\n    from pathlib import Path\n    from coldtype.renderable.animation import animation, Action\n    from coldtype.text import StSt, Font, Rect\n\n    def show_animation(a:animation):\n        idxs = range(0, a.duration+1)\n        passes = a.passes(Action.PreviewIndices, None, idxs)\n        results = [a.run_normal(rp) for rp in passes]\n        Path(\"test.svg\").write_text(\n            SVGPen.Animation(results, a.rect, a.timeline.fps))\n\n    @animation(Rect(540, 540/2), timeline=30)\n    def a1(f):\n        return (StSt(\"CDELOPTY\", Font.MutatorSans(), 50,\n            wdth=f.e(\"eeio\", 1), wght=f.e(\"seio\", 1))\n            .align(f.a.r))\n\n    show_animation(a1)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/pens/translationpen.py",
    "content": "#coding=utf-8\nfrom __future__ import division\nfrom math import pi, radians, degrees, tan, hypot, atan2, cos, sin\n\n\"\"\"\nCustom Robofab pens — Loïc Sander, june 2015.\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Loïc Sander\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\"\"\"\n\nfrom fontTools.pens.pointPen import PointToSegmentPen, SegmentToPointPen, ReverseContourPointPen\nfrom fontTools.misc.bezierTools import splitCubicAtT\nfrom fontTools.pens.basePen import BasePen\n\n_ANGLE_EPSILON = pi/36\n\n\ndef calcVector(point1, point2):\n    x1, y1 = point1\n    x2, y2 = point2\n    dx = x2 - x1\n    dy = y2 - y1\n    return dx, dy\n\n\ndef calcAngle(point1, point2):\n    dx, dy = calcVector(point1, point2)\n    return atan2(dy, dx)\n\n\ndef polarCoord(xy, angle, distance):\n    x, y = xy\n    nx = x + (distance * cos(angle))\n    ny = y + (distance * sin(angle))\n    return nx, ny\n\n\ndef calcArea(points):\n    l = len(points)\n    area = 0\n    for i in range(l):\n        x1, y1 = points[i]\n        x2, y2 = points[(i+1)%l]\n        area += (x1*y2)-(x2*y1)\n    return area / 2\n\n\ndef firstDerivative(xy1, cxy1, cxy2, xy2, value):\n    x1, y1 = xy1\n    cx1, cy1 = cxy1\n    cx2, cy2 = cxy2\n    x2, y2 = xy2\n    mx = bezierTangent(x1, cx1, cx2, x2, value)\n    my = bezierTangent(y1, cy1, cy2, y2, value)\n    return mx, my\n\n\ndef bezierTangent(a, b, c, d, t):\n    # Implementation of http://stackoverflow.com/questions/4089443/find-the-tangent-of-a-point-on-a-cubic-bezier-curve-on-an-iphone\n    return (-3*(1-t)**2 * a) + (3*(1-t)**2 * b) - (6*t*(1-t) * b) - (3*t**2 * c) + (6*t*(1-t) * c) + (3*t**2 * d)\n\n\n\nclass TranslationPen(BasePen):\n    \"\"\"\n    Draw an outline resulting from the reunion of an initial contour and a translated version thereof.\n    Translation is defined by an angle and a width/length.\n    This kind of drawing basically produces a calligraphic effect (in a translated manner as Gerrit Noordzij puts it),\n    it can also serve as a way of extruding a shape for 3D shadow effects.\n    \"\"\"\n\n    def __init__(self, otherPen, frontAngle=0, frontWidth=20):\n        self.otherPen = otherPen\n        self.frontAngle = radians(frontAngle)\n        self.offset = polarCoord((0, 0), radians(frontAngle), frontWidth)\n        self.points = []\n\n\n    def _moveTo(self, pt):\n        self.points.append((pt, 'move'))\n\n\n    def _lineTo(self, pt1):\n        pt0, previousType = self.points[-1]\n        angle = calcAngle(pt0, pt1)\n\n        self.translatedLineSegment(pt0, pt1)\n\n        self.points.append((pt1, 'line'))\n\n\n    def _curveToOne(self, c1, c2, pt1):\n        pt0, previousType = self.points[-1]\n\n        newSegments = self.splitAtAngledExtremas(pt0, c1, c2, pt1)\n\n        if len(newSegments):\n            for segment in newSegments:\n                pt0, c1, c2, pt1 = segment\n                self.translatedCurveSegment(pt0, c1, c2, pt1)\n        else:\n            self.translatedCurveSegment(pt0, c1, c2, pt1)\n\n        self.points.append((c1, None))\n        self.points.append((c2, None))\n        self.points.append((pt1, 'curve'))\n\n\n    def endPath(self):\n        self.points = []\n\n\n    def closePath(self):\n        previousPoint, previousType = self.points[-1]\n\n        if previousType in ['line','curve']:\n            pt0, pt1 = self.points[-1][0], self.points[0][0]\n            self.translatedLineSegment(pt0, pt1)\n\n        self.points = []\n\n\n    def splitAtAngledExtremas(self, pt0, pt1, pt2, pt3):\n        frontAngle = self.frontAngle\n        segments = []\n        for i in range(101):\n            t = i / 100\n            nx, ny = firstDerivative(pt0, pt1, pt2, pt3, t)\n            tanAngle = atan2(ny, nx)\n            if tan(frontAngle - _ANGLE_EPSILON) < tan(tanAngle) < tan(frontAngle + _ANGLE_EPSILON):\n                newSegments = splitCubicAtT(pt0, pt1, pt2, pt3, t)\n                if len(newSegments) > 1:\n                    segments = newSegments\n                    break\n        return segments\n\n\n    def translatedCurveSegment(self, pt0, c1, c2, pt1):\n        ox, oy = self.offset\n        x0, y0 = pt0\n        xc1, yc1 = c1\n        xc2, yc2 = c2\n        x1, y1 = pt1\n        pen = self.getPen([(x0, y0), (x1, y1), (x1+ox, y1+oy), (x0+ox, y0+oy)])\n        pen.moveTo((x0, y0))\n        pen.curveTo((xc1, yc1), (xc2, yc2), (x1, y1))\n        pen.lineTo((x1+ox, y1+oy))\n        pen.curveTo((xc2+ox, yc2+oy), (xc1+ox, yc1+oy), (x0+ox, y0+oy))\n        pen.closePath()\n\n\n    def translatedLineSegment(self, pt0, pt1):\n        ox, oy = self.offset\n        x0, y0 = pt0\n        x1, y1 = pt1\n        pen = self.getPen([(x0, y0), (x1, y1), (x1+ox, y1+oy), (x0+ox, y0+oy)])\n        pen.moveTo((x0, y0))\n        pen.lineTo((x1, y1))\n        pen.lineTo((x1+ox, y1+oy))\n        pen.lineTo((x0+ox, y0+oy))\n        pen.closePath()\n\n\n    def getPen(self, points):\n        area = calcArea(points)\n        if area < 0:\n            pen = self.getReversePen()\n        else:\n            pen = self.otherPen\n        return pen\n\n\n    def getReversePen(self):\n        adapterPen = PointToSegmentPen(self.otherPen)\n        reversePen = ReverseContourPointPen(adapterPen)\n        return SegmentToPointPen(reversePen)\n\n\n    def addComponent(self, baseGlyphName, transformation):\n        self.otherPen.addComponent(baseGlyphName, transformation)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/physics/pymunk.py",
    "content": "import pymunk\nfrom coldtype.runon.path import P\n\n\ndef polygon(samples=5):\n    def _polygon(p:P):\n        pts = list(map(lambda x: x.pt.xy(), p.pen().samples(samples)))\n        pmass = 3.0\n        pmoment = pymunk.moment_for_poly(pmass, pts)\n        pbody = pymunk.Body(pmass, pmoment)\n        pshape = pymunk.Poly(pbody, pts)\n        pshape.friction = 0.01\n        pshape.elasticity = 0.9\n        pshape.collision_type = 0\n        return pbody, pshape\n    return _polygon\n\n\ndef segments(body, flatten=30):\n    def _segments(p:P):\n        p = p.copy().pen().removeOverlap()\n        if flatten:\n            p = p.flatten(flatten)\n        \n        segs = []\n        for line in p.segments():\n            p1, p2 = line.v.value[0][ 1][0], line.v.value[1][1][0]\n            segs.append(pymunk.Segment(body, p1, p2, 0.0))\n        return segs\n    return _segments"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/random.py",
    "content": "from random import Random\n\ndef random_series(start=0, end=1, seed=0, count=5000, ease=None, mod=None, spread=None):\n    from coldtype.timing.easing import ez\n\n    rnd = Random()\n    rnd.seed(seed)\n    rnds = []\n    for _ in range(count):\n        tries = 0\n        while tries < 100:\n            e = rnd.random()\n            if ease:\n                o = ez(e, ease, rng=(start, end))\n            else:\n                o = start+rnd.random()*(end-start)\n            if mod is not None:\n                o = mod(o)\n            if len(rnds) == 0:\n                break\n            if spread is None:\n                break\n            if abs(o-rnds[-1]) > spread:\n                break\n            tries += 1\n        rnds.append(o)\n    return rnds"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/raster.py",
    "content": "from coldtype.fx.skia import *\nfrom coldtype.img.skiaimage import SkiaImage\n\ntry:\n    from coldtype.fx.motion import filmjitter\nexcept:\n    print(\"`pip install noise` for filmjitter\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderable/__init__.py",
    "content": "from coldtype.renderable.renderable import Overlay, Action, RenderPass, renderable, skia_direct, iconset, SkiaPen, ColdtypeCeaseConfigException, runnable\nfrom coldtype.renderable.animation import animation, aframe, FFMPEGExport, fontpreview\nfrom coldtype.renderable.ui import ui, UIState"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderable/animation.py",
    "content": "import math, os, re, json\nfrom typing import Tuple\n\nfrom subprocess import run\nfrom pathlib import Path\nfrom datetime import datetime\n\nfrom coldtype.timing.timeable import Timeable\nfrom coldtype.timing import Frame\nfrom coldtype.timing.timeline import Timeline\n\nfrom coldtype.text.reader import Style, Font\nfrom coldtype.runon.path import P\nfrom coldtype.geometry import Rect, Point\nfrom coldtype.color import bw, hsl\n\nfrom coldtype.renderable.renderable import renderable, Action, RenderPass, Overlay\nfrom coldtype.osutil import show_in_finder\n\n\ndef raw_gifski(width, fps, frames, output_path, open=False):\n    \"\"\"simpler wrapper for already-installed gifski\"\"\"\n    run([\n        \"gifski\",\n        \"--fps\", str(fps),\n        \"--width\", str(width),\n        \"-o\", output_path,\n        *frames])\n    print(\"\\n\")\n    \n    if open:\n       show_in_finder(output_path.parent)\n    return True\n\n\ndef gifski(a:\"animation\", passes, open=False):\n    \"\"\"simple wrapper for already-installed gifski\"\"\"\n    root = a.pass_path(f\"%4d.{a.fmt}\").parent.parent\n    gif = root / (a.name + \".gif\")\n    run([\n        \"gifski\",\n        \"--fps\", str(a.timeline.fps),\n        \"--width\", str(a.rect.w),\n        \"-o\", gif,\n        *[p.output_path for p in passes if p.render == a]])\n    print(\"\\n\")\n    \n    if open:\n        show_in_finder(gif.parent)\n    return gif\n\n\nclass animation(renderable, Timeable):\n    \"\"\"\n    Base class for any frame-wise animation animatable by Coldtype\n    \"\"\"\n    def __init__(self,\n        rect=(1080, 1080),\n        timeline:Timeline=10,\n        show_frame=True,\n        offset=0,\n        overlay=True,\n        audio=None,\n        suffixer=None,\n        clip_cursor=True,\n        reset_to_zero=False,\n        release=None,\n        **kwargs\n        ):\n        if \"tl\" in kwargs:\n            timeline = kwargs[\"tl\"]\n            del kwargs[\"tl\"]\n\n        super().__init__(**kwargs)\n        \n        self.rect = Rect(rect).round()\n        self.r = self.rect\n        self.overlay = overlay\n        self.start = 0\n        self.offset = offset\n        self.show_frame = show_frame\n        self.reset_timeline(timeline)\n        self.single_frame = self.duration == 1\n        self.audio = audio\n        self.suffixer = suffixer\n        self.clip_cursor = clip_cursor\n        self.reset_to_zero = reset_to_zero\n        self.release = release\n    \n    def __call__(self, func):\n        res = super().__call__(func)\n        self.prefix = self.name + \"_\"\n        return res\n\n    def reset_timeline(self, timeline):\n        if timeline is None:\n            raise Exception(\"timeline= cannot be None\")\n\n        if not isinstance(timeline, Timeline):\n            try:\n                timeline = Timeline(timeline[0], fps=timeline[1])\n            except:\n                timeline = Timeline(timeline)\n        \n        self.timeline = timeline\n        self.t = timeline\n        self.start = timeline.start\n        self.end = timeline.end\n    \n    def folder(self, filepath):\n        return filepath.stem + \"/\" + self.name # TODO necessary?\n    \n    def all_frames(self):\n        return list(range(0, self.duration))\n    \n    def _active_frames(self, renderer_state):\n        frames = []\n        if renderer_state:\n            frames.append((renderer_state.frame_offset + self.offset) % self.duration)\n        return frames\n    \n    def active_frames(self, action, renderer_state, indices):\n        if not action:\n            return indices\n        \n        frames = self._active_frames(renderer_state)\n\n        if action == Action.RenderAll:\n            frames = self.all_frames()\n        elif action in [Action.PreviewIndices, Action.RenderIndices]:\n            frames = indices\n        elif action in [Action.RenderWorkarea]:\n            if self.timeline:\n                try:\n                    frames = self.workarea()\n                except:\n                    frames = self.all_frames()\n                #if hasattr(self.timeline, \"find_workarea\"):\n                #    frames = self.timeline.find_workarea()\n        #else:\n        #    frames = indices\n        return frames\n    \n    def workarea(self):\n        if hasattr(self.timeline, \"workarea\"):\n            return list(self.timeline.workarea)\n        elif hasattr(self.timeline, \"workareas\"):\n            return list(self.timeline.workareas[0])\n        else:\n            return list(range(0, self.duration))\n    \n    def jump(self, current, direction):\n        c = current % self.duration\n        js = self.timeline.jumps()\n        if direction < 0:\n            for j in reversed(js):\n                if c > j:\n                    return j\n        else:\n            for j in js:\n                if c < j:\n                    return j\n        return current\n    \n    def pass_suffix(self, index=0):\n        idx = index % self.duration\n\n        if self.suffixer:\n            return self.suffixer(idx)\n        elif self.suffix:\n            pf = self.suffix + \"_\"\n        else:\n            pf = \"\"\n        \n        if isinstance(idx, int):\n            return pf + \"{:04d}\".format(idx)\n        else:\n            return pf + index\n    \n    def render_and_rasterize(self, scale=1, style=None) -> str:\n        first = self.render_and_rasterize_frame(0, scale=scale, style=style)\n        for idx in range(1, self.timeline.duration):\n            print(\">>>\", idx)\n            self.render_and_rasterize_frame(idx, scale=scale, style=style)\n        return first\n    \n    def passes(self, action, renderer_state, indices=[]):\n        c, m = None, None\n\n        rp = self.recording_path\n        recording = None\n        has_recording = False\n\n        if rp and rp.exists():\n            has_recording = True\n            recording = json.loads(rp.read_text())\n\n        if renderer_state:\n            c = renderer_state.cursor\n            if self.clip_cursor:\n                c = c.clip(self.rect)\n            m = renderer_state.midi\n\n            if Overlay.Recording in renderer_state.overlays and self.overlay and rp:\n                if not has_recording:\n                    recording = {\"cursor\":{}}\n\n        frames = self.active_frames(action, renderer_state, indices)\n        \n        if renderer_state:\n            if Overlay.Recording in renderer_state.overlays and self.overlay and rp:\n                fi = frames[0]\n                recording[\"cursor\"][str(fi)] = [c.x, c.y]\n                rp.write_text(json.dumps(recording))\n\n        return [RenderPass(self, action, i, [Frame(i, self, c, m, recording)]) for i in frames]\n\n    def running_in_viewer(self):\n        return True\n    \n    def run(self, render_pass, renderer_state, render_bg=True):\n        fi = render_pass.args[0].i\n        if renderer_state and self.running_in_viewer():\n            if renderer_state.previewing:\n                if Overlay.Rendered in renderer_state.overlays:\n                    return self.frame_img(fi)\n\n        self.t.hold(fi)\n        return super().run(render_pass, renderer_state, render_bg=render_bg)\n    \n    @property\n    def recording_path(self):\n        try:\n            return self.filepath.parent / (self.filepath.stem + \"_recording.json\")\n        except:\n            return None\n    \n    def runpost(self, result, render_pass, renderer_state, config):\n        res = super().runpost(result, render_pass, renderer_state, config)\n\n        if Overlay.Recording in renderer_state.overlays and self.overlay and self.recording_path:\n            t = self.rect.take(50, \"mny\")\n            frame:Frame = render_pass.args[0]\n            res.append(P().rect(Point(0, 0).rect(150, 60)).t(10, 10).f(hsl(0.95, 1, 0.7)))\n            res.append(P().text(f\"{frame.i}\", Style(\"Courier\", 42, load_font=0, fill=bw(1)), t.inset(10)))\n\n        if Overlay.Info in renderer_state.overlays and self.overlay:\n            t = self.rect.take(50, \"mny\")\n            frame:Frame = render_pass.args[0]\n            return P([\n                res,\n                P().rect(t).f(bw(0, 0.75)) if self.show_frame else None,\n                P().text(f\"{frame.i} / {self.duration}\", Style(\"Times\", 42, load_font=0, fill=bw(1)), t.inset(10)) if self.show_frame else None])\n        return res\n    \n    def package(self):\n        pass\n\n    def fn_to_frame(self, fn_name):\n        return 0\n    \n    def frame_to_fn(self, fi) -> Tuple[str, dict]:\n        return None, {}\n    \n    def viewOffset(self, offset):\n        @animation(self.rect, timeline=self.timeline, offset=offset, preview_only=1)\n        def offset_view(f):\n            return self.func(Frame(f.i, self))\n        return offset_view\n    \n    def contactsheet_renderable(self, scale=1, sl=slice(None, None, 1)):\n        sheet = self.contactsheet(None, scale, sl)\n        \n        @renderable(sheet.data(\"frame\"), bg=self.bg)\n        def contactsheet(r):\n            return sheet\n        \n        return contactsheet\n    \n    def contactsheet(self, r:Rect=None, scale=1, sl=slice(None, None, 1), border=True, grid=True, bgs=False):\n        from coldtype.runon.scaffold import Scaffold\n\n        xs = list(range(0, self.timeline.duration)[sl])\n        sq = math.ceil(math.sqrt(len(xs)))\n\n        if r is None:\n            r = Rect(0, 0, sq*self.rect.w*scale, sq*self.rect.h*scale)\n\n        s = Scaffold(r).grid(sq, sq)\n\n        def frame(x):\n            try:\n                fi = xs[x.i]\n                return (self\n                    .frame_result(fi, frame=1, render_bg=bgs)\n                    .align(x.el.rect, tx=0)\n                    .scale(scale, tx=0))\n            except IndexError:\n                return None\n        \n        return P(\n            P(s.r).tag(\"border\").fssw(-1, 0, 1) if border else None,\n            s.borders().tag(\"grid\").fssw(-1, 0, 1) if grid else None,\n            P().enumerate(s, frame).tag(\"frames\")\n        ).data(frame=r)\n    \n    def frame_img(self, fi):\n        from coldtype.img.skiaimage import SkiaImage\n        return SkiaImage(self.pass_path(fi))\n    \n    frameImg = frame_img\n    \n    def export(self, fmt, date=False, loops=1, open=1, audio=None, audio_loops=None, vf=None, set_709=True):\n        def _export(passes):\n            fe = FFMPEGExport(self, date=date, loops=loops, audio=audio or self.audio, audio_loops=audio_loops, vf=vf, set_709=set_709)\n            if fmt == \"gif\":\n                fe.gif()\n            elif fmt == \"h264\":\n                fe.h264()\n            elif fmt == \"prores\":\n                fe.prores()\n            print(fe.args)\n            fe.write()\n            if open:\n                fe.open()\n            return fe\n        return _export\n    \n    def gifski(self, open=False):\n        def _gifski(passes):\n            return gifski(self, passes, open=open)\n        return _gifski\n\n\nclass aframe(animation):\n    def __init__(self,\n        rect=(1080, 1080),\n        **kwargs\n        ):\n        super().__init__(rect,\n            timeline=Timeline(1),\n            **kwargs)\n\n\nclass FFMPEGExport():\n    def __init__(self, a:animation,\n        date=False,\n        loops=1,\n        audio=None,\n        audio_loops=None,\n        output_folder=None,\n        vf=None,\n        set_709=True,\n        ):\n        self.a = a\n        self.date = date\n        self.loops = loops\n        self.fmt = None\n        self.failed = False\n        self.set_709 = set_709\n        \n        if audio:\n            self.audio = Path(audio).expanduser()\n            self.audio_loops = audio_loops if audio_loops is not None else loops\n            if not self.audio.exists():\n                raise Exception(\"Audio file does not exist\")\n        else:\n            self.audio = None\n            self.audio_loops = loops\n        \n        template = a.pass_path(f\"%4d.{a.fmt}\")\n\n        if output_folder is not None:\n            self.output_folder = output_folder\n        else:\n            self.output_folder = template.parent.parent\n\n        # https://github.com/typemytype/drawbot/blob/master/drawBot/context/tools/mp4Tools.py\n\n        from coldtype.renderable.tools import FFMPEG_COMMAND\n        print(\"> ffmpeg command ==\", FFMPEG_COMMAND)\n\n        self.args = [\n            FFMPEG_COMMAND,\n            \"-y\", # overwrite existing files\n            \"-loglevel\", \"16\", # 'error, 16' Show all errors\n            \"-r\", str(self.a.timeline.fps)\n        ]\n\n        if self.set_709:\n            set_709 = \"zscale=matrixin=709:transferin=709:primariesin=709:matrix=709:transfer=709:primaries=709,\"\n        else:\n            set_709 = \"\"\n\n        if self.audio:\n            self.args.extend([\n                \"-stream_loop\", str(self.loops-1),\n                \"-i\", template, # input sequence\n                \"-stream_loop\", str(self.audio_loops-1),\n                \"-i\", str(self.audio),\n                #\"-stream_loop\", \"-1\",\n                \"-filter_complex\", f\"[0:v]loop=loop=0:size={self.a.timeline.duration}:start=0,{set_709}format=yuv420p[v]\",\n                \"-map\", '[v]',\n                \"-map\", \"1:a\",\n            ])\n        else:\n            self.args.extend([\n                #\"-stream_loop\", str(self.loops-1),\n                \"-i\", template, # input sequence\n                \"-filter_complex\", f\"[0:v]loop=loop={self.loops-1}:size={self.a.timeline.duration}:start=0,{set_709}format=yuv420p[v]\",\n                \"-map\", '[v]',\n            ])\n        \n        if vf:\n           self.args.extend([\n               \"-vf\", vf\n           ])\n    \n    def h264(self):\n        self.fmt = \"mp4\"\n        self.args.extend([\n            \"-c:v\", \"libx264\",\n            \"-crf\", \"20\", # Constant Rate Factor\n            \"-pix_fmt\", \"yuv420p\", # pixel format\n            #\"\", \"\",\n        ])\n        return self\n    \n    def prores(self):\n        # https://video.stackexchange.com/questions/14712/how-to-encode-apple-prores-on-windows-or-linux\n        self.fmt = \"mov\"\n        self.args.extend([\n            \"-c:v\", \"prores_ks\",\n            \"-c:a\", \"pcm_s16le\",\n            \"-profile:v\", \"2\"\n        ])\n        return self\n    \n    def gif(self):\n        self.fmt = \"gif\"\n        #self.args.extend([])\n        return self\n    \n    def write(self, verbose=False, name=None):\n        first_frame = self.a.pass_path(0)\n        if not Path(first_frame).exists():\n            self.failed = True\n            print(\"! Need to render before release\")\n            return self\n\n        print(f\"writing {self.fmt}...\")\n\n        if not self.fmt:\n            raise Exception(\"No fmt specified\")\n        \n        now = datetime.now().strftime(\"%Y-%m-%d_%H-%M-%S\")\n        d = (\"_\" + now) if self.date else \"\"\n\n        if name is None:\n            name = self.a.name\n        \n        self.output_path = self.output_folder / f\"{name}{d}.{self.fmt}\"\n\n        self.args.append(self.output_path)\n        if verbose:\n            print(\" \".join([str(s) for s in self.args]))\n        \n        run(self.args)\n\n        if verbose:\n            print(\">\", self.output_path)\n\n        print(\"...done\")\n        return self\n    \n    def open(self):\n        \"\"\"i.e. Reveal-in-Finder\"\"\"\n        if self.failed:\n            return self\n        show_in_finder(self.output_path.parent)\n        return self\n\n\nclass fontpreview(animation):\n    def __init__(self, font_re, font_dir=None, rect=(1200, 150), limit=25, **kwargs):\n        self.dir = font_dir\n        self.re = font_re\n        self.matches = []\n\n        for font in Font.List(self.re, self.dir):\n            if re.search(self.re, str(font)):\n                if len(self.matches) < limit:\n                    self.matches.append(font)\n        \n        self.matches.sort()\n\n        super().__init__(rect=rect, timeline=Timeline(len(self.matches)), **kwargs)\n    \n    def passes(self, action, renderer_state, indices=[]):\n        frames = self.active_frames(action, renderer_state, indices)\n        return [RenderPass(self, action, i, [Frame(i, self), self.matches[i]]) for i in frames]\n\n\nimport shutil\ntry:\n    from coldtype.img.skiaimage import SkiaImage\nexcept ImportError:\n    SkiaImage = None\n\n\nclass image_sequence(animation):\n    \"\"\"\n    Preview pre-rendered image-based animations;\n    move images into renders folder with shutil.copy\n    (good for something like making a prores file from\n    an image sequence (if you use the FFMPEGExport))\n    \"\"\"\n    def __init__(self, images, fps, looping=False, loops=1, **kwargs):\n        self.images = images\n        self.looping = looping\n\n        if self.looping:\n            timeline = Timeline(len(self.images)*2-2, fps)\n        else:\n            timeline = Timeline(len(self.images), fps)\n        \n        img = SkiaImage(self.images[0])\n        super().__init__(img.rect(), timeline, fmt=self.images[0].suffix[1:], **kwargs)\n        self.self_rasterizing = True\n    \n    def normalize_result(self, pens):\n        return pens\n    \n    def run(self, render_pass, renderer_state):\n        from coldtype.timing.easing import ez\n\n        idx = render_pass.idx\n        if self.looping:\n            t = idx/self.timeline.duration\n            idx = round(ez(t, \"l\", 1, rng=(0, len(self.images)-1)))\n        \n        result = None\n        if renderer_state and renderer_state.previewing:\n            return self.images[idx]\n        else:\n            render_pass.output_path.parent.mkdir(exist_ok=True, parents=True)\n            shutil.copy(self.images[idx], render_pass.output_path)\n            result = render_pass.output_path\n        return result\n\n\ntry:\n    import skia\nexcept ImportError:\n    skia = None\n\nclass skia_direct_animation(animation):\n    def __init__(self, rect=(1080, 1080), **kwargs):\n        super().__init__(rect=rect, direct_draw=True, **kwargs)\n    \n    def run(self, render_pass, renderer_state, canvas=None):\n        if canvas is None:\n            surface = skia.Surface(*self.rect.wh())\n            with surface as canvas:\n                render_pass.fn(*render_pass.args, canvas)\n            return\n\n        if self.rstate:\n            return render_pass.fn(*render_pass.args, renderer_state, canvas)\n        else:\n            return render_pass.fn(*render_pass.args, canvas)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderable/renderable.py",
    "content": "import inspect, platform, re, tempfile, math, datetime\n\ntry:\n    import skia\n    from coldtype.pens.skiapen import SkiaPen\n    from coldtype.pens.svgpen import SVGPen\nexcept ImportError:\n    skia = None\n    SkiaPen = None\n\nfrom enum import Enum\nfrom subprocess import run\nfrom pathlib import Path\n\nfrom coldtype.geometry import Rect, Point\nfrom coldtype.color import normalize_color\nfrom coldtype.text.reader import normalize_font_prefix, Font\nfrom coldtype.runon.path import P, Runon\nfrom coldtype.img.abstract import AbstractImage\n\n\nclass Memory(object):\n    def __init__(self, i, data) -> None:\n        self.i = i\n        self._keys = []\n        \n        if data:\n            for k, v in data.items():\n                self._keys.append(k)\n                setattr(self, k, v)\n    \n    def add(self, k, v):\n        if k not in self._keys:\n            self._keys.append(k)\n        setattr(self, k, v)\n        return self\n\n    def __eq__(self, other):\n        equal = True\n        for k in self.keys:\n            if not equal:\n                return False\n            try:\n                equal = getattr(self, k) == getattr(other, k)\n            except:\n                equal = False\n        return equal\n\n\nclass ColdtypeCeaseConfigException(Exception):\n    pass\n\nclass Overlay(Enum):\n    Info = \"info\"\n    Timeline = \"timeline\"\n    Rendered = \"rendered\"\n    Recording = \"recording\"\n\nclass Action(Enum):\n    Initial = \"initial\"\n    Resave = \"resave\"\n    RenderAll = \"render_all\"\n    RenderWorkarea = \"render_workarea\"\n    RenderIndices = \"render_indices\"\n    Build = \"build\"\n    Release = \"release\"\n    PreviewStoryboard = \"preview_storyboard\"\n    PreviewStoryboardReload = \"preview_storyboard_reload\"\n    PreviewPlay = \"preview_play\"\n    PreviewOnce = \"preview_play\"\n    PreviewIndices = \"preview_indices\"\n    PreviewStoryboardNext = \"preview_storyboard_next\"\n    PreviewStoryboardPrev = \"preview_storyboard_prev\"\n    PreviewStoryboardNextMany = \"preview_storyboard_next_many\"\n    PreviewStoryboardPrevMany = \"preview_storyboard_prev_many\"\n    ClearLastRender = \"clear_last_render\"\n    ClearRenderedFrames = \"clear_rendered_frames\"\n    RestartRenderer = \"restart_renderer\"\n    Kill = \"kill\"\n\n\nclass RenderPass():\n    def __init__(self, render:\"renderable\", action, idx, args):\n        self.render = render\n        self.action = action\n        self.fn = self.render.func\n        self.args = args\n        self.path = None\n        \n        self.idx = idx\n        self.prefix = render.pass_prefix()\n        self.output_path = render.pass_path(index=idx)\n        #self.output_path = render.output_folder / f\"{self.prefix}{self.suffix}.{render.fmt}\"\n\n        self.i = None\n        if hasattr(args[0], \"i\"):\n            self.i = args[0].i\n    \n    def __repr__(self):\n        return f\"<RenderPass:f{self.output_path}/>\"\n\n\nclass runnable():\n    \"\"\"Minimal interface for runnable code in an abstract context (like a renderable but with nothing to render)\"\"\"\n    def __init__(self, solo=False, cond=None):\n        self.filepath = None\n        self.codepath = None\n        self.hidden = solo == -1\n        self.solo = solo\n        self.preview_only = True\n        self.render_only = False\n        self.dst = None\n        self.custom_folder = None\n        self.name = None\n        self.sort = 0\n        self.cv2caps = None\n        self.watch = []\n        self.cond = cond\n    \n    def __call__(self, func):\n        self.func = func\n        if not self.name:\n            self.name = self.func.__name__\n        return self\n    \n    def post_read(self):\n        pass\n    \n    def run(self):\n        return self.func()\n    \n    def folder(self, filepath):\n        return filepath.stem + \"/\" + self.name\n\n\nclass renderable():\n    \"\"\"\n    Base class for any content renderable by Coldtype.\n    \"\"\"\n    def __init__(self,\n        rect=(1080, 1080),\n        bg=None,\n        fmt=\"png\",\n        name=None,\n        rasterizer=None,\n        prefix=None,\n        suffix=None,\n        dst=None,\n        custom_folder=None,\n        post_preview=None,\n        watch=[],\n        watch_soft=[],\n        watch_restart=[],\n        solo=False,\n        mute=False,\n        rstate=False,\n        preview_only=False,\n        preview_scale=1,\n        render_only=False,\n        direct_draw=False,\n        clip=False,\n        composites=False,\n        single_frame=True,\n        interactable=False,\n        cv2caps=None,\n        render_bg=True,\n        style=\"_default\",\n        viewBox=True,\n        layer=False,\n        cond=None,\n        sort=0,\n        hide=[],\n        grid=None,\n        xray=True,\n        memory=None,\n        reset_memory=None):\n        \"\"\"Base configuration for a renderable function\"\"\"\n\n        self.rect = Rect(rect).round()\n        self._stacked_rect = None\n        \n        if bg is not None and bg != -1:\n            if callable(bg):\n                self.bg_fn = bg\n                self.bg = None\n            else:\n                self.bg_fn = None\n                self.bg = normalize_color(bg)\n        else:\n            self.bg_fn = None\n            self.bg = None\n        \n        self.fmt = fmt\n        self.prefix = prefix\n        self.suffix = suffix\n        self.dst = Path(dst).expanduser().resolve() if dst else None\n        self.custom_folder = custom_folder\n        self.post_preview = post_preview\n        self.last_passes = []\n        self.last_result = None\n        self.last_return = None\n        self.style = style\n        self.composites = composites\n        self.single_frame = single_frame\n        self.interactable = interactable\n        self.cv2caps = cv2caps\n        self.grid = grid\n        self.xray = xray\n        self.memory = memory\n        self.reset_memory = reset_memory\n        self._hide = hide\n\n        self.watch = []\n        for w in watch:\n            self.add_watchee(w)\n        \n        self.watch_soft = []\n        for w in watch_soft:\n            self.watch_soft.append(self.add_watchee(w, \"soft\"))\n        \n        self.watch_restart = []\n        for w in watch_restart:\n            self.watch_restart.append(self.add_watchee(w, \"restart\"))\n\n        self.cond = cond\n        self.name = name\n        self.codepath = None\n        self.rasterizer = rasterizer\n        self.self_rasterizing = False\n        self.hidden = solo == -1\n        self.solo = solo\n        self.mute = mute\n        self.preview_only = preview_only\n        self.preview_scale = preview_scale\n        self.render_only = render_only\n        self.rstate = rstate\n        self.clip = clip\n        self.viewBox = viewBox\n        self.direct_draw = direct_draw\n        self.render_bg = render_bg\n        self.sort = sort\n        self.layer = layer\n        if self.layer:\n            self.bg = normalize_color(None)\n        \n        self.filepath = None\n\n        if not rasterizer:\n            if self.fmt == \"svg\":\n                self.rasterizer = \"svg\"\n            elif self.fmt == \"pickle\":\n                self.rasterizer = \"pickle\"\n            else:\n                self.rasterizer = \"skia\"\n    \n    def choose(self, fields):\n        rec = {}\n        for f in fields:\n            if hasattr(self, f):\n                rec[f] = getattr(self, f)\n        return rec\n    \n    def post_read(self):\n        pass\n    \n    def __repr__(self):\n        return f\"<{self.__class__.__name__}:{self.name}/>\"\n    \n    def add_watchee(self, w, flag=None):\n        try:\n            pw = Path(w).expanduser().resolve()\n            if not pw.exists():\n                print(w, \"<<< does not exist (cannot be watched)\")\n            else:\n                self.watch.append([pw, flag])\n                return pw\n        except TypeError:\n            if isinstance(w, Font):\n                self.watch.append([w, flag])\n            else:\n                raise Exception(\"Can only watch path strings, Paths, and Fonts\")\n    \n    def __call__(self, func):\n        self.func = func\n        if not self.name:\n            self.name = self.func.__name__\n        self.output_folder = Path(f\"renders/{self.name}\")\n        return self\n    \n    def folder(self, filepath):\n        return \"\"\n    \n    def pass_suffix(self, index=0):\n        return self.name\n    \n    def pass_prefix(self):\n        if self.prefix is None:\n            if self.filepath is not None:\n                prefix = f\"{self.filepath.stem}_\"\n            else:\n                prefix = None\n        else:\n            prefix = self.prefix\n        return prefix\n    \n    def pass_path(self, index=0):\n        if index is None:\n            return self.output_folder / f\"{self.pass_prefix()}\"\n        elif isinstance(index, int):\n            return self.output_folder / f\"{self.pass_prefix()}{self.pass_suffix(index)}.{self.fmt}\"\n        else:\n            return self.output_folder / f\"{self.pass_prefix()}{self.pass_suffix(index)}\"\n    \n    def pass_img(self, index=0):\n        from coldtype.img.skiaimage import SkiaImage\n        return SkiaImage(self.pass_path(index=index))\n    \n    def passes(self, action, renderer_state, indices=[]):\n        return [RenderPass(self, action, 0, [self.rect])]\n\n    def package(self):\n        pass\n\n    def write_reset_memory(self, renderer_state, new_memory, overwrite, initial):\n        if initial and renderer_state and not renderer_state.memory_initial:\n            renderer_state.memory_initial = Memory(0, self.memory)\n\n        if not renderer_state or not self.memory:\n            return\n        \n        if renderer_state.memory and not overwrite:\n            if initial:\n                mi = renderer_state.memory_initial\n                for k, v in self.memory.items():\n                    if not hasattr(mi, k) or getattr(mi, k) != v:\n                        renderer_state.memory_initial.add(k, v)\n                        renderer_state.memory.add(k, v)\n            return\n\n        if not new_memory:\n            new_memory = self.memory\n\n        i = 0\n        if renderer_state.memory and overwrite:\n            i = renderer_state.memory.i\n        \n        if callable(new_memory):\n            m = new_memory(i+1)\n        else:\n            m = new_memory\n\n        renderer_state.memory = Memory(i+1, m)\n\n    def run(self, render_pass, renderer_state, render_bg=True):\n        self.write_reset_memory(renderer_state, self.memory, False, True)\n\n        if self.rstate:\n            res = render_pass.fn(*render_pass.args, renderer_state)\n        elif self.memory:\n            res = render_pass.fn(*render_pass.args, renderer_state.memory)\n        else:\n            res = render_pass.fn(*render_pass.args)\n        \n        if renderer_state:\n            previewing = renderer_state.previewing\n        else:\n            previewing = False\n        \n        show_bg = (previewing or self.render_bg) and render_bg\n\n        if show_bg:\n            if self.bg_fn:\n                if isinstance(self.bg_fn, type(self)):\n                    from coldtype.img.skiaimage import SkiaImage\n                    path = self.bg_fn.render_to_disk()[0]\n                    return P(SkiaImage(path), res)\n                else:\n                    arg_count = len(inspect.signature(self.bg_fn).parameters)\n                    args = [self.rect, render_pass]\n                    return P([\n                        self.bg_fn(*args[:arg_count]),\n                        res\n                    ])\n            elif self.bg:\n                return P([\n                    P(self.rect).f(self.bg),\n                    res\n                ])\n            else:\n                return P(res)\n        else:\n            return P(res)\n        \n    def show_xray(self, result):\n        if not self.xray:\n            return result\n        \n        from coldtype.fx.xray import skeleton, hsl\n\n        out = P()\n        def xray(p, pos, _):\n            if pos == 0:\n                out.append(p.copy().ch(skeleton(0.5)))\n        \n        result.copy().walk(xray)\n        return P(\n            result.copy().fssw(-1, hsl(0.95, 1, 0.8), 4),\n            out.fssw(-1, hsl(0.65, 1, 0.6), 2))\n    \n    def show_grid(self, result, settings):\n        from coldtype.color import hsl, bw, Color\n\n        invert_bg = self.bg.invert().with_alpha(0.5)\n        grid = P().gridlines(self.rect).fssw(-1, invert_bg, 2)\n\n        if self.grid is not None:\n            if isinstance(self.grid, Color):\n                g = {0:self.grid}\n            else:\n                g = {k:v for (k,v) in enumerate(self.grid)}\n            grid = (P().gridlines(self.rect, g.get(2, 20), g.get(3, g.get(2, 20)))\n                .fssw(-1, g.get(0, invert_bg), g.get(1, 2)))\n        elif settings:\n            g = {k:v for (k,v) in enumerate(settings)}\n            grid = (P().gridlines(self.rect, g.get(2, 20), g.get(3, g.get(2, 20)))\n                .fssw(-1, hsl(*g.get(0, invert_bg)), g.get(1, 2)))\n\n        return P(result, grid)\n    \n    def runpost(self, result, render_pass:RenderPass, renderer_state, config):\n        post_res = result\n        if self.post_preview:\n            post_res = self.post_preview(self, result)\n        \n        if config:\n            if config.show_xray:\n                post_res = self.show_xray(post_res)            \n            if config.show_grid:\n                post_res = self.show_grid(post_res, config.grid_settings)\n\n        return post_res\n    \n    def precompose(self, result, scale):\n        from coldtype.fx.skia import precompose\n        return result.ch(precompose(self.rect, scale=scale, style=self.style))\n    \n    def postprocessor(self, result):\n        if isinstance(result, Runon):\n            has_post = result.find_(lambda el: el.data(\"postprocess\") is not None, none_ok=True)\n            if has_post:\n                return has_post.data(\"postprocess\")\n        return None\n    \n    # def draw_preview(self, scale, canvas, rect, result, render_pass): # canvas:skia.Canvas\n    #     sr = self.rect.scale(scale, \"mnx\", \"mxx\")\n    #     SkiaPen.CompositeToCanvas(result, sr, canvas, scale, style=self.style)\n    \n    def noop(self, *args, **kwargs):\n        return self\n    \n    def hide(self):\n        self.hidden = True\n        return self\n    \n    def _hide(self):\n        self.hidden = False\n        return self\n    \n    def show(self):\n        self.hidden = False\n        return self\n    \n    def _normalize_result(self, pens):\n        if not pens:\n            return P()\n        elif not isinstance(pens, P):\n            return P(pens)\n        else:\n            return pens\n    \n    def normalize_result(self, pens):\n        #import inspect\n        normalized = self._normalize_result(pens)\n        #print(\">norm\", self, pens, normalized)\n        #curframe = inspect.currentframe()\n        #calframe = inspect.getouterframes(curframe, 2)\n        #print('caller name:', calframe[1])\n        if self._hide:\n            normalized.hide(*self._hide)\n        return normalized\n    \n    def run_normal(self, render_pass, renderer_state=None, render_bg=True):\n        return self.normalize_result(\n            self.run(render_pass, renderer_state, render_bg=render_bg))\n    \n    def frame_result(self, fi, post=False, frame=False, render_bg=True):\n        p = self.passes(None, None, [fi])[0]\n        res = self.run_normal(p, None, render_bg=render_bg)\n        if post:\n            res = self.runpost(res, p, None, None)\n        \n        if frame:\n            res.data(frame=self.rect)\n        return res\n    \n    def rasterize(self, config, content, render_pass):\n        return False\n    \n    def render_and_rasterize_frame(self, frame, scale=1, style=None) -> str:\n        SkiaPen.Composite(self.normalize_result(self.frame_result(frame)),\n            self.rect,\n            str(self.pass_path(frame)),\n            scale=scale,\n            context=None,\n            style=style)\n        return self.pass_path(frame)\n    \n    def render_and_rasterize(self, scale=1, style=None) -> str:\n        return self.render_and_rasterize_frame(0, scale=scale, style=style)\n    \n    def render_to_disk(self, print_paths=False, return_base64=False, return_text=False, render_bg=False, return_img=False):\n        passes = self.passes(Action.RenderAll, None)\n        paths = []\n        for rp in passes:\n            output_path = rp.output_path\n            output_path.parent.mkdir(exist_ok=True, parents=True)\n\n            if print_paths:\n                print(output_path)\n            \n            result = self.run_normal(rp, None, render_bg)\n            if self.fmt == \"png\":\n                SkiaPen.Composite(result,\n                    self.rect,\n                    str(output_path),\n                    scale=1,\n                    context=None)\n            elif self.fmt == \"svg\":\n                output_path.write_text(SVGPen.Composite(result, self.rect, viewBox=self.viewBox))\n            elif self.fmt == \"pdf\":\n                SkiaPen.PDFOnePage(result, self.rect, output_path, 1)\n            else:\n                print(\"render_to_disk\", self.fmt, \"not supported\")\n            paths.append(output_path)\n\n        if return_img:\n            from coldtype.img.skiaimage import SkiaImage\n            return [SkiaImage(p) for p in paths]\n        elif return_base64:\n            from base64 import b64encode\n            return [str(b64encode(p.read_bytes()), encoding=\"utf-8\") for p in paths]\n        elif return_text:\n            return [p.read_text() for p in paths]\n        else:\n            return paths\n    \n    def _profile_render_all(self):\n        ps = self.passes(Action.RenderAll, None)\n        for p in ps:\n            self.run_normal(p)\n        return self\n    \n    def profile(self, file=\"profile.profile\"):\n        import cProfile\n        cProfile.runctx(f\"self._profile_render_all()\", {}, {\"self\": self}, filename=file)\n\n\nclass example(renderable):\n    def __init__(self, rect=(800, 200), bg=1, **kwargs):\n        super().__init__(rect=rect, bg=bg, **kwargs)\n\n\nclass skia_direct(renderable):\n    def __init__(self, rect=(1080, 1080), **kwargs):\n        super().__init__(rect=rect, direct_draw=True, **kwargs)\n    \n    def run(self, render_pass, renderer_state, canvas=None):\n        if canvas is None:\n            surface = skia.Surface(*self.rect.wh())\n            with surface as canvas:\n                render_pass.fn(*render_pass.args, canvas)\n            return\n\n        if self.rstate:\n            return render_pass.fn(*render_pass.args, renderer_state, canvas)\n        else:\n            return render_pass.fn(*render_pass.args, canvas)\n\n\n# class glyph(renderable):\n#     def __init__(self, glyphName, width=500, **kwargs):\n#         r = Rect(kwargs.get(\"rect\", Rect(1000, 1000)))\n#         kwargs.pop(\"rect\", None)\n#         self.width = width\n#         self.body = r.take(750, \"mdy\").take(self.width, \"mdx\")\n#         self.glyphName = glyphName\n#         super().__init__(rect=r, **kwargs)\n    \n#     def passes(self, action, renderer_state, indices=[]):\n#         return [RenderPass(self, action, self.glyphName, [])]\n\n\nclass iconset(renderable):\n    valid_sizes = [16, 32, 64, 128, 256, 512, 1024]\n\n    def __init__(self, sizes=[128, 1024], **kwargs):\n        super().__init__(**kwargs)\n        self.sizes = sizes\n    \n    def folder(self, filepath):\n        return f\"{filepath.stem}_source\"\n    \n    def passes(self, action, renderer_state, indices=[]): # TODO could use the indices here\n        sizes = self.sizes\n        if action == Action.RenderAll:\n            sizes = self.valid_sizes\n        return [RenderPass(self, action, str(size), [self.rect, size]) for size in sizes]\n    \n    def package(self):\n        # inspired by https://retifrav.github.io/blog/2018/10/09/macos-convert-png-to-icns/\n        iconset = self.output_folder.parent / f\"{self.filepath.stem}.iconset\"\n        iconset.mkdir(parents=True, exist_ok=True)\n\n        system = platform.system()\n        \n        if system == \"Darwin\":\n            for png in self.output_folder.glob(\"*.png\"):\n                d = int(png.stem.split(\"_\")[1])\n                for x in [1, 2]:\n                    if x == 2 and d == 16:\n                        continue\n                    elif x == 1:\n                        fn = f\"icon_{d}x{d}.png\"\n                    elif x == 2:\n                        fn = f\"icon_{int(d/2)}x{int(d/2)}@2x.png\"\n                    print(fn)\n                run([\"sips\", \"-z\", str(d), str(d), str(png), \"--out\", str(iconset / fn)])\n            run([\"iconutil\", \"-c\", \"icns\", str(iconset)])\n        \n        if True: # can be done windows or mac\n            from PIL import Image\n            output = self.output_folder.parent / f\"{self.filepath.stem}.ico\"\n            largest = list(self.output_folder.glob(\"*_1024.png\"))[0]\n            img = Image.open(str(largest))\n            icon_sizes = [(x, x) for x in self.valid_sizes]\n            img.save(str(output), sizes=icon_sizes)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderable/tools.py",
    "content": "from pathlib import Path\n\nFFMPEG_COMMAND = \"ffmpeg\"\n\ndef set_ffmpeg_command(cmd):\n    if isinstance(cmd, str) and \"/\" in cmd:\n        cmd = str(Path(cmd).expanduser().absolute())\n\n    global FFMPEG_COMMAND\n    FFMPEG_COMMAND = cmd"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderable/ui.py",
    "content": "from coldtype.geometry.rect import Rect\nfrom coldtype.renderable.renderable import RenderPass, Overlay\nfrom coldtype.renderable.animation import animation, Frame\n\nclass UIState():\n    def __init__(self,\n        cursor,\n        cursor_history,\n        cursor_recording,\n        midi,\n        renderer_state,\n        frame,\n        ):\n        self.c = cursor\n        self.ch = cursor_history\n        self.cr = cursor_recording\n        self.f = frame\n        self.i = frame.i\n        self.r = frame.a.r\n        self.midi = midi\n        self.rs = renderer_state\n\n\nclass ui(animation):\n    def __init__(self,\n        rect=Rect(1080, 1080),\n        clip_cursor=True,\n        cursor_recording={},\n        **kwargs\n        ):\n\n        if \"preview_only\" not in kwargs:\n            kwargs[\"preview_only\"] = True\n        \n        self.cursor_recording = cursor_recording\n\n        super().__init__(\n            rect=rect,\n            #preview_only=True,\n            interactable=True,\n            clip_cursor=clip_cursor,\n            **kwargs)\n    \n    def passes(self, action, renderer_state, indices=[]):\n        c = renderer_state.cursor\n        \n        if self.clip_cursor:\n            c = c.clip(self.rect)\n        \n        frames = self.active_frames(\n            action,\n            renderer_state,\n            indices)\n        \n        if Overlay.Recording in renderer_state.overlays:\n            if len(frames) > 0:\n                self.cursor_recording[frames[0]] = c\n        \n        return [RenderPass(self, action, i,\n            [UIState(c,\n                renderer_state.cursor_history,\n                self.cursor_recording,\n                renderer_state.midi,\n                renderer_state,\n                Frame(i, self))]) for i in frames]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/__init__.py",
    "content": "import traceback, argparse, json, math, inspect\nimport sys, os, signal, tracemalloc, shutil, re\nimport pickle\n\nimport time as ptime\nfrom pathlib import Path\nfrom subprocess import Popen\nfrom typing import Tuple, List\nfrom random import shuffle, Random\nfrom functools import partial\n\nimport coldtype\nfrom coldtype.helpers import *\n\nfrom coldtype.runon.path import P\nfrom coldtype.geometry import Rect, Point\nfrom coldtype.text.reader import Font\nfrom coldtype.pens.svgpen import SVGPen\n\nfrom coldtype.renderable.tools import set_ffmpeg_command\n\nfrom coldtype.renderer.config import ConfigOption\nfrom coldtype.renderer.reader import SourceReader, run_source\nfrom coldtype.renderer.state import RendererState\nfrom coldtype.renderer.winman import Winmans, WinmanGLFWSkiaBackground\nfrom coldtype.renderable import renderable, animation, Action, Overlay, runnable\n\nfrom coldtype.renderer.keyboard import KeyboardShortcut, LAYOUT_REMAPS\nfrom coldtype.osutil import show_in_finder\n\nfrom coldtype.img.abstract import AbstractImage\n\ntry:\n    import skia\n    from coldtype.pens.skiapen import SkiaPen\n    import coldtype.fx.skia as skfx\nexcept ImportError:\n    skia = None\n    SkiaPen = None\n\ntry:\n    import drawBot as db\nexcept ImportError:\n    db = None\n\nfrom coldtype.renderer.utils import *\n\n_random = Random()\n\ntry:\n    import psutil\n    process = psutil.Process(os.getpid())\nexcept ImportError:\n    process = None\n\n\nclass Renderer():\n    def Argparser(name=\"coldtype\", file=True, defaults={}, nargs=[]):\n        parser = argparse.ArgumentParser(prog=name, formatter_class=argparse.ArgumentDefaultsHelpFormatter)\n        \n        if file:\n            parser.add_argument(\"file\", type=str, nargs=\"?\", help=\"The source file for a coldtype render\")\n            parser.add_argument(\"inputs\", nargs=\"*\", help=\"Additional input files passed to renderable\")\n        for narg in nargs:\n            parser.add_argument(narg[0], nargs=\"?\", default=narg[1])\n        \n        pargs = dict(\n            version=parser.add_argument(\"-v\", \"--version\", action=\"store_true\", default=False, help=\"Display version\"),\n            \n            save_renders=parser.add_argument(\"-sv\", \"--save-renders\", action=\"store_true\", default=False, help=\"Should the renderer create image artifacts?\"),\n            \n            rasterizer=parser.add_argument(\"-r\", \"--rasterizer\", type=str, default=None, choices=[\"drawbot\", \"cairo\", \"svg\", \"skia\", \"pickle\"], help=\"Which rasterization engine should coldtype use to create artifacts?\"),\n\n            cpu_render=parser.add_argument(\"-cpu\", \"--cpu-render\", action=\"store_true\", default=False, help=\"Should final rasters be performed without a GPU context?\"),\n            \n            scale=parser.add_argument(\"-s\", \"--scale\", type=float, default=1.0, help=\"When save-renders is engaged, what scale should images be rasterized at? (Useful for up-rezing)\"),\n            \n            all=parser.add_argument(\"-a\", \"--all\", action=\"store_true\", default=False, help=\"If rendering an animation, pass the -a flag to render all frames sequentially\"),\n\n            render_directory=parser.add_argument(\"-rd\", \"--render-directory\", action=\"store_true\", default=False, help=\"kick off KeyboardShortcut.RenderDirectory straightaway and quit\"),\n\n            render_and_release=parser.add_argument(\"-rar\", \"--render-and-release\", action=\"store_true\", default=False, help=\"kick off KeyboardShortcut.RenderAndRelease straightaway and quit\"),\n\n            test_directory=parser.add_argument(\"-td\", \"--test-directory\", action=\"store_true\", default=False),\n\n            build=parser.add_argument(\"-b\", \"--build\", action=\"store_true\", default=False, help=\"Should the build function be run and the renderer quit immediately?\"),\n\n            release=parser.add_argument(\"-rls\", \"--release\", action=\"store_true\", default=False, help=\"Should the release function be run and the renderer quit immediately?\"),\n\n            memory=parser.add_argument(\"-mm\", \"--memory\", action=\"store_true\", default=False, help=\"Show statistics about memory usage?\"),\n\n            is_subprocess=parser.add_argument(\"-isp\", \"--is-subprocess\", action=\"store_true\", default=False, help=argparse.SUPPRESS),\n\n            config=parser.add_argument(\"-c\", \"--config\", type=str, default=None, help=\"By default, Coldtype looks for a .coldtype.py file in ~ and the cwd; use this to override that and look at a specific file instead\"),\n\n            profile=parser.add_argument(\"-p\", \"--profile\", type=str, default=None, help=\"What config profile do you want to use? Default is no profile\"),\n\n            cprofile=parser.add_argument(\"-cp\", \"--c-profile\", action=\"store_true\", default=False),\n            \n            format=parser.add_argument(\"-fmt\", \"--format\", type=str, default=None, help=\"What image format should be saved to disk?\"),\n\n            indices=parser.add_argument(\"-i\", \"--indices\", type=str, default=None),\n\n            output_folder=parser.add_argument(\"-of\", \"--output-folder\", type=str, default=None, help=\"If you don’t want to render to the default output location, specify that here.\"),\n\n            show_exit_code=parser.add_argument(\"-sec\", \"--show-exit-code\", action=\"store_true\", default=False, help=argparse.SUPPRESS),\n\n            frame_offset=parser.add_argument(\"-fo\", \"--frame-offset\", type=int, default=0, help=argparse.SUPPRESS),\n\n            #viewer_solos=parser.add_argument(\"-vs\", \"--viewer-solos\", type=str, default=None, help=argparse.SUPPRESS),\n\n            last_cursor=parser.add_argument(\"-lc\", \"--last-cursor\", type=str, default=\"0,0\", help=argparse.SUPPRESS),\n\n            k=parser.add_argument(\"-k\", \"--k\", type=str, default=None, help=argparse.SUPPRESS),\n\n            never_reuse_skia_context=parser.add_argument(\"-nrsc\", \"--never-reuse-skia-context\", action=\"store_true\", default=False, help=argparse.SUPPRESS),\n\n            print_skia_version=parser.add_argument(\"-psv\", \"--print-skia-version\", action=\"store_true\", default=False, help=argparse.SUPPRESS),\n        )\n\n        ConfigOption.AddCommandLineArgs(pargs, parser)\n        return pargs, parser\n\n    def __init__(self, parser, winmans_class=Winmans, profile=None):\n        sys.path.insert(0, os.getcwd())\n\n        self.subprocesses = {}\n\n        if isinstance(parser, argparse.Namespace):\n            self.args = parser\n        else:\n            self.args = parser.parse_args()\n\n        if profile is not None:\n            self.args.profile = profile\n\n        if self.args.file == None:\n            self.args.file = \".\"\n        \n        if self.args.file == \"tools\":\n            import ast, textwrap\n\n            for tool, file in SourceReader.Tools().items():\n                print(f\"🔧 “{tool}”\")\n                if tool == \"chars\" or True:\n                    tree = ast.parse(file.read_text())\n                    try:\n                        print(textwrap.indent(ast.get_docstring(tree), \"        \"))\n                    except:\n                        pass\n                    if False:\n                        print(\"  > Arguments:\")\n                        for node in ast.walk(tree):\n                            if (isinstance(node, ast.Call) and\n                                isinstance(node.func, ast.Name) and\n                                node.func.id == \"parse_inputs\"):\n                                for keyword in node.args[1].keywords:\n                                    print(\"     \", keyword.arg, \"->\", ast.unparse(keyword.value))\n                print(\"\")\n            self.dead = True\n            return\n\n        if self.args.version:\n            print(coldtype.__version__)\n            self.dead = True\n            return\n        \n        self._unnormalized_file = self.args.file\n        \n        normalized = self.prenormalize_filepath(self.args.file)\n        if normalized == -1:\n            self.dead = True\n            return\n\n        self.args.file = str(normalized)\n\n        if self.on_args_parsed():\n            self.dead = True\n            return\n\n        self._original_inputs = [*self.args.inputs]\n\n        self.source_reader = SourceReader(\n            renderer=self,\n            inputs=self.args.inputs,\n            cli_args=self.args)\n        \n        self.on_load_reader(self.source_reader)\n        \n        self.winmans = None\n        self.winmans = winmans_class(self, self.source_reader.config)\n        \n        self.state = RendererState(self)\n\n        self.watchees = []\n        self.rasterizer_warning = None\n        self.needs_new_context = False\n        self.print_result_once = False\n\n        self.extent = None\n        \n        if not self.reset_filepath(self.args.file if hasattr(self.args, \"file\") else None):\n            self.dead = True\n            return\n        else:\n            self.dead = False\n        \n        self.state.preview_scale = self.source_reader.config.preview_scale\n        self.state.inputs = self.args.inputs\n        self.exit_code = 0\n        self.last_renders = []\n        self.last_render_cleared = False\n\n        set_ffmpeg_command(self.source_reader.config.ffmpeg_command)\n\n        # for multiplex mode\n        self.running_renderers = []\n        self.completed_renderers = []\n\n        self.action_waiting = None\n        self.action_waiting_reason = None\n\n        self.actions_queued = []\n        self.debounced_actions = {}\n        self.previews_waiting = []\n        self.last_animation = None\n        self.last_animations = []\n        self.hotkeys = None\n        self.hotkey_waiting = None\n        self.stop_at_end = False\n\n        self.viewer_solos = self.source_reader.config.viewer_solos\n        \n        self.viewer_sample_frames = 1\n        self.viewer_playback_rate = 1\n\n    def on_args_parsed(self):\n        pass\n\n    def on_load_reader(self, source_reader):\n        pass\n    \n    def prenormalize_filepath(self, filepath):\n        script = SourceReader.Script(filepath)\n        if script:\n            print(\">>>\", script)\n            sr = SourceReader(renderer=self,\n                inputs=self.args.inputs,\n                cli_args=self.args)\n            run_source(script, script, {}, {}, None, reader=sr)\n            return -1\n        else:\n            return SourceReader.Demo(filepath)\n    \n    def reset_filepath(self, filepath, reload=False):\n        dirdirection = 0\n        if isinstance(filepath, int):\n            dirdirection = filepath\n            filepath = self.source_reader.filepath\n\n        for _, cv2cap in self.state.cv2caps.items():\n            cv2cap.release()\n        \n        self.state.frame_offset = 0\n        self.state.cv2caps = {}\n\n        root = Path(__file__).parent.parent\n        \n        filepath = self.source_reader.normalize_filepath(filepath)\n\n        if not filepath.exists():\n            if filepath.suffix == \".py\":\n                print(\">>> That python file does not exist...\")\n                create = input(\">>> Do you want to create it and add some coldtype boilerplate? (y/n | a/r): \")\n                if create.lower() in [\"y\", \"a\"]:\n                    filepath.parent.mkdir(exist_ok=True, parents=True)\n                    filepath.write_text((root / \"demo/boiler.py\").read_text())\n                    self.open_in_editor(filepath)\n                elif create.lower() in [\"r\"]:\n                    filepath.parent.mkdir(exist_ok=True, parents=True)\n                    filepath.write_text((root / \"demo/boiler_renderable.py\").read_text())\n                    self.open_in_editor(filepath)\n            else:\n                raise Exception(\"That file does not exist\")\n        \n        self._codepath_offset = 0\n        filepath = self.source_reader.reset_filepath(filepath, reload=False, dirdirection=dirdirection)\n\n        try:\n            printed = self.source_reader.print_docstring()\n        except:\n            printed = False\n        \n        # TODO check exists here on filepath\n        self.watchees = []\n        self.add_watchee([Watchable.Source, self.source_reader.filepath, None])\n\n        ph = path_hash(self.source_reader.filepath)\n        self.add_watchee([Watchable.Generic, Path(f\"~/.coldtype/{ph}_input.json\").expanduser(), None])\n        \n        if reload:\n            self.reload_and_render(Action.Initial)\n            self.actions_queued.append(Action.PreviewStoryboardReload)\n            self.winmans.set_title(filepath.name)\n            # TODO close an open blend file?\n\n        return True\n\n    def watchee_paths(self):\n        return [w[1] for w in self.watchees]\n    \n    def print_error(self):\n        stack = traceback.format_exc()\n        print(stack)\n        return stack.split(\"\\n\")[-2]\n    \n    def renderable_error(self, rect):\n        short_error = self.print_error()\n        \n        r = rect\n        render = renderable(r)\n        res = P([\n            P().rect(r).f(coldtype.Gradient.V(r,\n                coldtype.hsl(_random.random(), l=0.3),\n                coldtype.hsl(_random.random(), l=0.3)))])\n        render.show_error = short_error\n        return render, res\n\n    def show_error(self):\n        if self.state.playing > 0:\n            self.state.playing = -1\n        \n        if (self.source_reader.config.no_viewer_errors\n            or self.source_reader.config.no_viewer\n            ): \n            short_error = self.print_error()\n            bc_print(bcolors.FAIL, \"SYNTAX ERROR\")\n            bc_print(bcolors.WARNING, short_error)\n        else:\n            render, res = self.renderable_error(self.extent)\n            render._stacked_rect = self.extent\n            self.previews_waiting.append([render, res, None])\n    \n    def show_message(self, message, scale=1):\n        print(message)\n    \n    def play_sound(self, sound_name):\n        if not self.source_reader.config.no_sound:\n            play_sound(sound_name)\n\n    def reload(self, trigger):\n        if self.winmans.glsk:\n            if self.args.never_reuse_skia_context:\n                print(\"... not reusing SKIA_CONTEXT ...\")\n            else:\n                skfx.SKIA_CONTEXT = self.winmans.glsk.context\n        \n        self.last_animations = []\n\n        if trigger == Action.Initial:\n            self.state.frame_offset = self.args.frame_offset\n\n        ui = dict(\n            monitor=self.winmans.glsk.primary_monitor_rect if self.winmans.glsk and self.winmans.glsk.primary_monitor else None)\n\n        if True:\n            self.state.reset()\n            self.source_reader.reload(\n                output_folder_override=self.args.output_folder\n                , initial=trigger==Action.Initial\n                , restart_count=self.source_reader.config.restart_count\n                , ui=ui)\n            \n            if trigger == Action.Initial and self.source_reader.config.restart_count == 0:\n                if \"__initials__\" in self.source_reader.program:\n                    initials = self.source_reader.program[\"__initials__\"]()\n                    for attr, setting in initials.items():\n                        if attr == \"config\":\n                            for k, v in setting.items():\n                                setattr(self.source_reader.config, k, v)\n                        else:\n                            setattr(self.state, attr, setting)\n            \n            self.winmans.did_reload(self.source_reader.filepath, self.source_reader)\n            \n            try:\n                for r in self.renderables(Action.PreviewStoryboardReload):\n                    if isinstance(r, animation):\n                        if not r.preview_only and not r.render_only:\n                            self.last_animation = r\n                        self.last_animations.append(r)\n                \n                    if trigger == Action.Initial:\n                        if hasattr(r, \"initial\"):\n                            r.initial()\n                    \n                if self.last_animation:\n                    self.winmans.did_reload_animation(self.last_animation)\n            \n                if trigger == Action.Initial:\n                    if self.winmans.b3d:\n                        self.winmans.b3d.launch(self.source_reader.blender_io())\n            except SystemExit:\n                self.on_exit(restart=False)\n                return True\n            except Exception as e:\n                self.show_error()\n\n            if self.last_animation:\n                if self.last_animation.reset_to_zero:\n                    self.state.frame_offset = 0\n        \n        ci = self.source_reader.config.cron_interval\n        if ci > 0:\n            self.winmans.cron_start = ptime.time()\n            self.winmans.cron_interval = ci\n    \n    def animation(self):\n        renderables = self.renderables(Action.PreviewStoryboard)\n        for r in renderables:\n            if isinstance(r, animation):\n                return r\n    \n    def buildrelease_fn(self, fnname=\"release\"):\n        if not self.source_reader.program:\n            return []\n        \n        candidate = None\n        for k, v in self.source_reader.program.items():\n            if k == fnname:\n                candidate = v\n        return candidate\n    \n    def normalize_fmt(self, render):\n        if isinstance(render, runnable):\n            return\n\n        if self.args.format:\n            render.fmt = self.args.format\n        if self.args.rasterizer:\n            render.rasterizer = self.args.rasterizer\n\n        if render.rasterizer == \"skia\" and render.fmt in [\"png\", \"pdf\"] and skia is None:\n            if not self.rasterizer_warning:\n                self.rasterizer_warning = True\n                print(f\"RENDERER> SVG (skia-python not installed)\")\n            render.rasterizer = \"svg\"\n            render.fmt = \"svg\"\n        elif render.rasterizer == \"drawbot\" and render.fmt in [\"png\", \"pdf\"] and db is None:\n            if not self.rasterizer_warning:\n                self.rasterizer_warning = True\n                print(f\"RENDERER> SVG (no drawbot)\")\n            render.rasterizer = \"svg\"\n            render.fmt = \"svg\"\n    \n    def renderables(self, trigger, previewing=False):\n        _rs = self.source_reader.renderables(\n            viewer_solos=self.viewer_solos,\n            class_filters=[],\n            previewing=previewing)\n\n        if not _rs:\n            return []\n        \n        for r in _rs:\n            self.normalize_fmt(r)\n\n            caps = r.cv2caps\n            if caps is not None:\n                import cv2\n                for cap in caps:\n                    if cap not in self.state.cv2caps:\n                        self.state.cv2caps[cap] = cv2.VideoCapture(cap)\n\n        return _rs\n    \n    def calculate_window_size(self, rs:List[renderable]):\n        overall_preview_scale = self.state.preview_scale\n        w = 0\n        llh = -1\n        lh = -1\n        h = 0\n        for r in rs:\n            if not hasattr(r, \"rect\"): continue\n            local_preview_scale = r.preview_scale * overall_preview_scale\n            sr = r.rect.scale(local_preview_scale, \"mnx\", \"mny\").round()\n            w = max(sr.w, w)\n            adjr = None\n            if r.layer:\n                adjr = Rect(0, llh, sr.w, sr.h)\n            else:\n                adjr = Rect(0, lh+1, sr.w, sr.h)\n                llh = lh+1\n                lh += sr.h + 1\n                h += sr.h + 1\n            r._stacked_rect = adjr.round()\n        h -= 1\n\n        extent = Rect(0, 0, w, h)\n\n        if not self.extent:\n            needs_new_context = True\n        else:\n            needs_new_context = self.extent != extent\n        \n        self.extent = extent\n        \n        #if needs_new_context:\n        #    self.winmans.did_reset_extent(self.extent)\n\n        return needs_new_context\n    \n    def _single_thread_render(self, trigger, indices=[], output_transform=None, no_sound=False, ditto_last=False) -> Tuple[int, int]:\n        if not self.args.is_subprocess:\n            start = ptime.time()\n\n        previewing = (trigger in [\n            Action.Initial,\n            Action.Resave,\n            Action.PreviewStoryboard,\n            Action.PreviewIndices,\n            Action.PreviewStoryboardReload,\n        ])\n        \n        rendering = (self.args.save_renders or trigger in [\n            Action.RenderAll,\n            Action.RenderWorkarea,\n            Action.RenderIndices,\n        ])\n\n        if len(self.previews_waiting) > 0 and not rendering:\n            return 0, 0, [], []\n\n        def check_watches(render):\n            for watch, flag in render.watch:\n                if isinstance(watch, Font) and not watch.cacheable:\n                    if watch.path not in self.watchee_paths():\n                        self.add_watchee([Watchable.Font, watch.path, flag])\n                    for ext in watch.font.getExternalFiles():\n                        if ext not in self.watchee_paths():\n                            self.add_watchee([Watchable.Font, ext, flag])\n                elif watch not in self.watchee_paths():\n                    self.add_watchee([Watchable.Generic, watch, flag])\n\n        if previewing and self.source_reader.config.load_only:\n            renders = self.renderables(trigger)\n            for r in renders:\n                check_watches(r)\n            return 0, 0, 0, []\n\n        if previewing and not self.source_reader.config.load_only:\n            if Overlay.Rendered in self.state.overlays:\n                overlays = []\n                overlay_count = 0\n                for render in self.last_renders:\n                    if render.preview_only:\n                        continue\n                    overlays.append(render)\n                    passes = render.passes(trigger, self.state, indices)\n                    render.last_passes = passes\n                    result = render.pass_path(passes[0].i)\n                    self.previews_waiting.append([\n                        render,\n                        result,\n                        passes[0]\n                    ])\n                    overlay_count += 1\n                return overlay_count, 0, overlays, []\n\n        self.state.previewing = previewing\n        prev_renders = self.last_renders\n        \n        renders = self.renderables(trigger, previewing)\n\n        self.last_renders = renders\n        preview_count = 0\n        render_count = 0\n        collected_passes = []\n\n        try:\n            for render in renders:\n                if isinstance(render, runnable):\n                    render.run()\n                    continue\n\n                check_watches(render)\n                \n                passes = render.passes(trigger, self.state, indices)\n                render.last_passes = passes\n                \n                for rp in passes:\n                    collected_passes.append(rp)\n\n                    output_path = rp.output_path\n                    if output_transform:\n                        output_path = output_transform(output_path)\n\n                    if rendering and render.preview_only:\n                        continue\n\n                    try:\n                        if render.direct_draw:\n                            result = None\n                        else:\n                            # repopulate last_result across a save\n                            if not render.last_result:\n                                if len(prev_renders) > 0:\n                                    for pr in prev_renders:\n                                        if pr.name == render.name and pr.last_result and pr.composites:\n                                            render.last_result = pr.last_result\n                            if render.single_frame and not render.interactable and render.last_result:\n                                result = render.last_result\n                            else:\n                                result = render.run(rp, self.state)\n                        \n                        if not isinstance(result, AbstractImage):\n                            render.last_return = result\n\n                        if not result and not render.direct_draw:\n                            #print(\">>> No result\")\n                            result = P().rect(render.rect).f(None)\n\n                        if previewing:\n                            if render.direct_draw:\n                                self.previews_waiting.append([render, None, rp])\n                            else:\n                                if render.single_frame and not render.interactable and render.last_result:\n                                    preview_count += 1\n                                    self.previews_waiting.append([render, result, rp])\n                                else:\n                                    if self.print_result_once or self.source_reader.config.print_result:\n                                        self.print_result_once = False\n                                        print(\"-\"*90)\n                                        print(\"@\", ptime.time())\n                                        result.print()\n                                        print(\"\\n\" + \"-\"*90)\n                                    \n                                    preview_result = render.normalize_result(render.runpost(result, rp, self.state, self.source_reader.config))\n                                    \n                                    preview_count += 1\n                                    if preview_result:\n                                        self.previews_waiting.append([render, preview_result, rp])\n                        \n                        if rendering:\n                            if False:\n                                pass\n                            else:\n                                if render.preview_only:\n                                    continue\n                                render_count += 1\n                                output_path.parent.mkdir(exist_ok=True, parents=True)\n                                if render.self_rasterizing:\n                                    try:\n                                        print(\">>> self-rasterized...\", output_path.relative_to(Path.cwd()))\n                                    except ValueError:\n                                        print(\">>> self-rasterized...\", output_path)\n                                else:\n                                    if render.direct_draw:\n                                        show_render = self.rasterize(partial(render.run, rp, self.state), render, output_path, rp)\n                                    else:\n                                        show_render = self.rasterize(result or P(), render, output_path, rp)\n                                    # TODO a progress bar?\n                                    if show_render:\n                                        try:\n                                            print(\"<coldtype: saved: \" + str(output_path.relative_to(Path.cwd())) + \" >\")\n                                        except ValueError:\n                                            print(\">>> saved...\", str(output_path))\n                                \n                                if ditto_last:\n                                    copy_to = output_path.parent.parent / re.sub(r\"\\_[0-9]{4}\\.png\", \"_last_render.png\", output_path.name)\n                                    print(\">>>\", output_path.name, re.sub(r\"\\_[0-9]{4}\\.png\", \"_last_render.png\", output_path.name))\n                                    shutil.copy2(output_path, copy_to)\n                                \n                    except Exception as e:\n                        #print(type(e))\n                        self.show_error()\n        except:\n            self.show_error()\n        \n        if not self.args.is_subprocess and not previewing:\n            print(f\"<coldtype: render: {render_count}(\" + str(round(ptime.time() - start, 3)) + \"s)>\")\n        \n        if len(self.actions_queued) > 0:\n            no_sound = True\n        \n        if not previewing and not no_sound:\n            if self.args.is_subprocess:\n                self.play_sound(\"Morse\")\n            else:\n                self.play_sound(\"Pop\")\n        \n        return preview_count, render_count, renders, collected_passes\n\n    def render(self, trigger, indices=[], ditto_last=False) -> Tuple[int, int]:\n        #print(\">RENDER!\", trigger, self.action_waiting_reason)#, traceback.print_stack())\n\n        if self.args.is_subprocess:\n            if trigger != Action.RenderIndices:\n                raise Exception(\"Invalid child process render action\", trigger)\n            else:\n                p, r, _, _ = self._single_thread_render(trigger, indices=indices)\n                self.exit_code = 5 # mark as child-process\n                return p, r\n        \n        elif self.source_reader.config.multiplex and self.animation():\n            if trigger in [Action.RenderAll, Action.RenderWorkarea]:\n                all_frames = self.animation().all_frames()\n                if trigger == Action.RenderAll:\n                    frames = all_frames\n                elif trigger == Action.RenderWorkarea:\n                    anim = self.animation()\n                    frames = anim.workarea()\n                    if len(frames) == 0:\n                        frames = all_frames\n                self.render_multiplexed(frames)\n                trigger = Action.RenderIndices\n                indices = [0, all_frames[-1]] # always render first & last from main, to trigger a filesystem-change detection in premiere\n\n        #elif self.animation() and trigger == Action.RenderWorkarea:\n            #all_frames = self.animation().all_frames()\n            #self._single_thread_render(Action.RenderIndices, [0, all_frames[-1]])\n        \n        preview_count, render_count, renders, passes = self._single_thread_render(trigger, indices, ditto_last=ditto_last)\n        \n        if not self.args.is_subprocess and render_count > 0:\n            for render in renders:\n                if hasattr(render, \"package\"):\n                    result = render.package()\n                else:\n                    result = None\n                \n                if result:\n                    self.previews_waiting.append([render, result, None])\n                else:\n                    self.action_waiting = Action.PreviewStoryboard\n                    self.action_waiting_reason = \"unclear\"\n\n            self.winmans.did_render(render_count, ditto_last, renders)\n\n        did_render_fn = self.buildrelease_fn(\"didRender\")\n        if did_render_fn:\n            did_render_fn(trigger, passes)\n        \n        if trigger == Action.RenderAll:\n            did_render_all_fn = self.buildrelease_fn(\"didRenderAll\")\n            if did_render_all_fn:\n                did_render_all_fn(passes)\n\n        return preview_count, render_count\n    \n    def render_multiplexed(self, frames):\n        start = ptime.time()\n\n        tc = self.source_reader.config.thread_count\n        print(f\"<coldtype: thread-count:{tc}>\")\n        \n        #group = math.floor(len(frames) / tc)\n        ordered_frames = list(frames) #list(range(frames[0], frames[0]+len(frames)))\n        shuffle(ordered_frames)\n\n        import numpy as np\n        subslices = np.array_split(ordered_frames, tc)\n        #subslices = [list(s) for s in distribute(tc, ordered_frames)]\n        \n        self.reset_renderers()\n        self.running_renderers = []\n        self.completed_renderers = []\n\n        for subslice in subslices:\n            print(f\"<coldtype: multiplex-slice:{len(subslice)}>\")\n            if len(subslice) == 0:\n                continue\n            sargs = [\n                \"coldtype\",\n                sys.argv[1],\n                \"-i\", \",\".join([str(s) for s in subslice]),\n                \"-isp\",\n                \"-s\", str(self.args.scale),\n            ]\n            \n            if len(self.args.inputs) > 0:\n                sargs = [*sargs[:2], *self.args.inputs, *sargs[2:]]\n            \n            if len(self.viewer_solos) > 0:\n                sargs.append(\"-vs\")\n                sargs.append(\",\".join([str(x) for x in self.viewer_solos]))\n            \n            print(sargs)\n\n            r = self.args.rasterizer\n            if r:\n                sargs.append(\"-r\", r)\n            if self.source_reader.config.no_sound:\n                sargs.append(\"-ns\", \"1\")\n            if self.args.cpu_render or skia is None:\n                sargs.append(\"-cpu\")\n            #print(sys.argv)\n            #print(sargs)\n            #return\n            renderer = Popen(sargs) #stdout=log)\n            self.running_renderers.append(renderer)\n        \n        while self.running_renderers.count(None) != len(self.running_renderers):\n            for idx, renderer in enumerate(self.running_renderers):\n                if renderer:\n                    retcode = renderer.poll()\n                    if retcode == 5:\n                        self.running_renderers[idx] = None\n            ptime.sleep(.1)\n\n        print(f\"<coldtype: multiplex-render ({str(round(ptime.time() - start, 3))})>\")\n        self.play_sound(\"Frog\")\n    \n    def rasterize(self, content, render, path, rp):\n        if render.self_rasterizing:\n            print(\"Self rasterizing\")\n            return True\n        \n        did_rasterize = render.rasterize(self.source_reader.config, content, rp)\n        if did_rasterize:\n            return False\n        \n        scale = int(self.args.scale)\n        rasterizer = self.args.rasterizer or render.rasterizer\n\n        if rasterizer == \"drawbot\":\n            from coldtype.pens.rendererdrawbotpen import RendererDrawBotPen\n            RendererDrawBotPen.Composite(content, render.rect, str(path), scale=scale)\n        elif rasterizer == \"skia\":\n            if not skia:\n                raise Exception(\"pip install skia-python\")\n            if render.fmt == \"png\":\n                postprocess = render.postprocessor(content)\n\n                if render.composites or postprocess:\n                    from coldtype.img.skiaimage import SkiaImage\n                    content = content.ch(skfx.precompose(render.rect, scale=scale))\n                    render.last_result = SkiaImage(content.img().get(\"src\"))\n                \n                ctx = None\n                if self.winmans.glsk and self.winmans.glsk.context and not self.args.cpu_render:\n                    ctx = self.winmans.glsk.context\n                \n                if postprocess:\n                    content = render.precompose(postprocess(content), scale)\n\n                SkiaPen.Composite(content,\n                    render.rect,\n                    str(path),\n                    scale=scale,\n                    context=ctx,\n                    style=render.style)\n            elif render.fmt == \"pdf\":\n                SkiaPen.PDFOnePage(content, render.rect, str(path), scale=scale)\n            elif render.fmt == \"svg\":\n                SkiaPen.SVG(content, render.rect, str(path), scale=scale)\n            else:\n                print(\"> Skia render not supported for \", render.fmt)\n        elif rasterizer == \"svg\":\n            path.write_text(SVGPen.Composite(content, render.rect, viewBox=render.viewBox))\n        elif rasterizer == \"pickle\":\n            pickle.dump(content, open(path, \"wb\"))\n        else:\n            raise Exception(f\"rasterizer ({rasterizer}) not supported\")\n        \n        return True\n    \n    def reload_and_render(self, trigger, watchable=None, indices=None):\n        if (self.winmans.bg\n            and not self.args.cpu_render\n            and not self.winmans.glsk\n            and not self.source_reader.config.no_viewer\n            ):\n            self.winmans.glsk = WinmanGLFWSkiaBackground(self.source_reader.config, self)\n\n        wl = len(self.watchees)\n        self.winmans.reset()\n\n        try:\n            should_halt = self.reload(trigger)\n            if should_halt:\n                return True\n            if self.source_reader.program:\n                renders = self.renderables(Action.Resave, previewing=True)\n                self.needs_new_context = self.calculate_window_size(renders)\n                if self.needs_new_context and trigger != Action.Initial:\n                    self.debounced_actions[\"reset_extent\"] = ptime.time()\n                #if self.needs_new_context: #and trigger != Action.Initial:\n                #    return True\n\n                self.render(trigger, indices=indices)\n                if self.state.playing < 0:\n                    self.state.playing = 1\n            else:\n                print(\">>>>>>>>>>>> No program loaded! <<<<<<<<<<<<<<\")\n        except:\n            if not self.extent:\n                self.extent = Rect(1200, 200)\n                self.needs_new_context = True\n            self.show_error()\n\n    def main(self):\n        self.profiler = None\n        if self.args.c_profile:\n            print(\">>> profiling with cProfile...\")\n            import cProfile\n            pr = cProfile.Profile()\n            pr.enable()\n            self.profiler = pr\n\n        if self.dead:\n            return\n\n        if self.args.memory:\n            tracemalloc.start(10)\n            self._last_memory = -1\n        try:\n            self.start()\n        except KeyboardInterrupt:\n            self.on_exit()\n        if self.args.show_exit_code:\n            print(\"exit>\", self.exit_code)\n        sys.exit(self.exit_code)\n\n    def start(self):\n        should_halt = self.before_start()\n        \n        if not self.winmans.bg:\n            self.initialize_gui_and_server()\n        \n        if should_halt:\n            self.on_exit()\n        else:\n            if self.args.all:\n                self.reload_and_render(Action.RenderAll)\n                if self.args.build:\n                    self.on_release(build=1)\n                if self.args.release:\n                    self.on_release()\n            elif self.args.build:\n                self.reload_and_render(Action.RenderIndices, indices=[0])\n                self.on_release(build=1)\n                if self.args.release:\n                    self.on_release()\n            elif self.args.release:\n                self.reload_and_render(Action.RenderIndices, indices=[0])\n                self.on_release()\n            elif self.args.indices:\n                indices = [int(x.strip()) for x in self.args.indices.split(\",\")]\n                self.reload_and_render(Action.RenderIndices, indices=indices)\n            else:\n                should_halt = self.reload_and_render(Action.Initial)\n                if should_halt:\n                    self.on_exit()\n                    return\n            self.on_start()\n            if not self.winmans.bg:\n                if self.args.render_directory:\n                    self.actions_queued.append(KeyboardShortcut.RenderDirectory)\n                if self.args.render_and_release:\n                    self.actions_queued.append(KeyboardShortcut.RenderAllAndRelease)\n                    self.actions_queued.append(KeyboardShortcut.Kill)\n                if self.args.test_directory:\n                    self.actions_queued.append(KeyboardShortcut.TestDirectory)\n                self.winmans.run_loop()\n            else:\n                self.on_exit()\n    \n    def before_start(self):\n        pass\n\n    def initialize_gui_and_server(self):\n        self.winmans.add_viewers()\n\n        if len(self.watchees) > 0:\n            self.winmans.set_title(self.watchees[0][1].name)\n        else:\n            self.winmans.set_title(\"coldtype\")\n        \n        kl = self.source_reader.config.keyboard_layout\n\n        if kl is not None and kl not in LAYOUT_REMAPS:\n            print(f\"! -kl {kl} not recognized; will be ignored\")\n            print(\"valid kl options:\", list(LAYOUT_REMAPS.keys()))\n\n        self.hotkeys = None\n        if self.source_reader.config.hotkeys:\n            try:\n                from pynput import keyboard\n                mapping = {}\n                for k, v in self.source_reader.config.hotkeys.items():\n                    print(\"hotkey ::\", k, v)\n                    mapping[k] = partial(self.on_hotkey, k, v)\n                self.hotkeys = keyboard.GlobalHotKeys(mapping)\n                self.hotkeys.start()\n            except Exception as e:\n                print(e)\n\n    def on_start(self):\n        pass\n\n    def on_request_from_render(self, render, request, action=None):\n        print(\"request (noop)>\", render, request, action)\n\n    def on_hotkey(self, key_combo, action):\n        self.hotkey_waiting = (action, key_combo, None)\n    \n    def on_message(self, message, action):\n        if action:\n            enum_action = self.lookup_action(action)\n            if enum_action:\n                print(\">\", enum_action)\n                self.action_waiting = enum_action\n                self.action_waiting_reason = \"on_message\"\n                #self.on_action(enum_action, message)\n            else:\n                print(\">>> (\", action, \") is not a recognized action\")\n    \n    def jump_to_fn(self, fn_name):\n        if self.last_animation:\n            fi = self.last_animation.fn_to_frame(fn_name)\n            if fi is None:\n                print(\"fn_to_frame: no match\")\n                return False\n            self.state.frame_offset = fi\n            self.action_waiting = Action.PreviewStoryboard\n            self.action_waiting_reason = \"jump_to_fn\"\n            return True\n\n    def lookup_action(self, action):\n        return Action(action)\n    \n    def additional_actions(self):\n        return []\n    \n    def collect_passes(self):\n        trigger = Action.RenderAll\n        renders = self.renderables(trigger)\n        all_passes = []\n\n        for render in renders:\n            if not render.preview_only:\n                all_passes.extend(render.passes(trigger, self.state, [0]))\n        \n        return all_passes\n    \n    def on_release(self, build=False, number=None):\n        fnname = \"build\" if build else \"release\"\n        if number is not None:\n            fnname = \"numpad\"\n        \n        trigger = Action.RenderAll\n        renders = self.renderables(trigger)\n\n        attr_functions = []\n\n        for render in renders:\n            if hasattr(render, fnname) and getattr(render, fnname):\n                attr_functions.append([render, getattr(render, fnname)])\n                print(fnname, attr_functions[-1])\n        \n        fn = self.buildrelease_fn(fnname)\n        \n        if not fn and not attr_functions:\n            if fnname == \"release\" and self.last_animation:\n                print(\"DEFAULT RELEASE == ffmpeg mp4\")\n                fn = self.last_animation.export(\"h264\", audio=self.last_animation.audio)\n            else:\n                print(f\"No `{fnname}` fn defined in source\")\n                return\n        \n        if attr_functions:\n            #print(\">>>>>>>>>>>\", attr_functions)\n            def _fn(passes):\n                for render, af in attr_functions:\n                    res = af(render) # filter passes?\n                    if callable(res):\n                        res(passes)\n            fn = _fn\n\n        all_passes = self.collect_passes()\n        try:\n            if number is not None:\n                fn = fn[number]\n\n            arg_count = len(inspect.signature(fn).parameters)\n            if arg_count == 0:\n                res = fn()\n            elif arg_count == 1:\n                res = fn(all_passes)\n            elif arg_count == 2:\n                res = fn(all_passes, self)\n\n            if isinstance(res, Action):\n                return res\n            \n        except Exception as e:\n            self.print_error()\n            print(\"! Release failed !\")\n        \n        print(\"/\", fnname)\n    \n    def shortcut_to_action(self, shortcut):\n        if shortcut == KeyboardShortcut.PreviewPrevMany:\n            return Action.PreviewStoryboardPrevMany\n        elif shortcut == KeyboardShortcut.PreviewPrev:\n            return Action.PreviewStoryboardPrev\n        elif shortcut == KeyboardShortcut.PreviewNextMany:\n            return Action.PreviewStoryboardNextMany\n        elif shortcut == KeyboardShortcut.PreviewNext:\n            return Action.PreviewStoryboardNext\n        \n        elif shortcut == KeyboardShortcut.JumpHome:\n            self.state.frame_offset = 0\n        elif shortcut == KeyboardShortcut.JumpEnd:\n            self.state.frame_offset = -1\n        \n        elif shortcut == KeyboardShortcut.JumpPrev:\n            self.state.frame_offset = self.last_animation.jump(self.state.frame_offset, -1)\n        elif shortcut == KeyboardShortcut.JumpNext:\n            self.state.frame_offset = self.last_animation.jump(self.state.frame_offset, +1)\n\n        elif shortcut == KeyboardShortcut.ClearLastRender:\n            return Action.ClearLastRender\n        elif shortcut == KeyboardShortcut.ClearRenderedFrames:\n            return Action.ClearRenderedFrames\n        elif shortcut == KeyboardShortcut.ResetInitialMemory:\n            self.state.memory = None\n            self.state.cursor_history = []\n            self.state.cursor = Point(0, 0)\n            #self.last_animation.write_reset_memory(self.state, self.last_animation.memory, True)\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.ResetMemory:\n            self.last_animation.write_reset_memory(self.state, self.last_animation.reset_memory, True)\n            return Action.PreviewStoryboard\n        \n        elif shortcut == KeyboardShortcut.PlayRendered:\n            self.winmans.toggle_rendered()\n            self.actions_queued = [Action.PreviewStoryboard]\n            return Action.PreviewPlay\n        elif shortcut == KeyboardShortcut.PlayPreview:\n            return Action.PreviewPlay\n        elif shortcut == KeyboardShortcut.PlayToEnd:\n            self.stop_at_end = True\n            return Action.PreviewPlay\n        elif shortcut == KeyboardShortcut.Echo:\n            self.play_sound(\"Pop\")\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.EnableAudio:\n            if self.winmans.audio:\n                self.source_reader.config.enable_audio = not self.source_reader.config.enable_audio\n                self.winmans.mod_title(\"audio\",\n                    self.source_reader.config.enable_audio)\n            else:\n                print('\\n\\n`pip install \"coldtype[audio]\"`\\n\\n')\n        \n        elif shortcut == KeyboardShortcut.ReloadSource:\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.RestartApp:\n            self.on_action(Action.RestartRenderer)\n            return -1\n        elif shortcut == KeyboardShortcut.Kill:\n            os.kill(os.getpid(), signal.SIGINT)\n            os.system(f\"kill {os.getpid()}\")\n            return -1\n        elif shortcut == KeyboardShortcut.Quit:\n            self.dead = True\n            return -1\n        \n        elif shortcut == KeyboardShortcut.Release:\n            self.on_action(Action.Release)\n            return -1\n        elif shortcut == KeyboardShortcut.Build:\n            self.on_action(Action.Build)\n            return -1\n        elif shortcut == KeyboardShortcut.RenderAll:\n            self.on_action(Action.RenderAll)\n            return -1\n        elif shortcut == KeyboardShortcut.RenderAllAndPlay:\n            self.on_action(Action.RenderAll)\n            self.actions_queued.append(KeyboardShortcut.PlayRendered)\n            return -1\n        elif shortcut == KeyboardShortcut.RenderAllAndRelease:\n            vs = self.state.versions\n            if vs:\n                for v in vs:\n                    self.actions_queued.insert(0, KeyboardShortcut.CycleVersionsForward)\n                    self.actions_queued.insert(0, Action.Release)\n                    self.actions_queued.insert(0, Action.RenderAll)\n            else:\n                self.on_action(Action.RenderAll)\n                self.actions_queued.insert(0, Action.Release)\n            #self.action_waiting = Action.Release\n            #self.action_waiting_reason = shortcut\n            return -1\n        elif shortcut == KeyboardShortcut.RenderOne:\n            la = self.last_animation\n            self.on_action(Action.RenderIndices,\n                [abs((self.state.frame_offset+la.offset) % la.duration)])\n            return -1\n        elif shortcut == KeyboardShortcut.RenderFrom:\n            la = self.last_animation\n            fo = abs((self.state.frame_offset+la.offset) % la.duration)\n            idxs = list(range(fo, la.duration))\n            self.on_action(Action.RenderIndices, idxs)\n            return -1\n        elif shortcut == KeyboardShortcut.RenderWorkarea:\n            self.on_action(Action.RenderWorkarea)\n            return -1\n        elif shortcut == KeyboardShortcut.ToggleMultiplex:\n            self.source_reader.config.multiplex = not self.source_reader.config.multiplex\n            print(f\"<coldtype: multiplexing={self.source_reader.config.multiplex}>\")\n            return -1\n        \n        elif shortcut == KeyboardShortcut.OverlayInfo:\n            self.state.toggle_overlay(Overlay.Info)\n        elif shortcut == KeyboardShortcut.OverlayTimeline:\n            self.state.toggle_overlay(Overlay.Timeline)\n        elif shortcut == KeyboardShortcut.OverlayRecording:\n            self.state.toggle_overlay(Overlay.Recording)\n        elif shortcut == KeyboardShortcut.OverlayRendered:\n            self.winmans.toggle_rendered()\n        \n        elif shortcut == KeyboardShortcut.ToggleTimeViewer:\n            self.source_reader.config.add_time_viewers = not self.source_reader.config.add_time_viewers\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ToggleUI:\n            self.source_reader.config.add_ui = not self.source_reader.config.add_ui\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ToggleXray:\n            self.clear_last_render()\n            self.source_reader.config.show_xray = not self.source_reader.config.show_xray\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.ToggleGrid:\n            self.clear_last_render()\n            self.source_reader.config.show_grid = not self.source_reader.config.show_grid\n            return Action.PreviewStoryboard\n        \n        elif shortcut == KeyboardShortcut.TogglePrintResult:\n            self.clear_last_render()\n            self.source_reader.config.print_result = not self.source_reader.config.print_result\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.PrintResultOnce:\n            self.clear_last_render()\n            self.print_result_once = True\n            return Action.PreviewStoryboard\n        \n        elif shortcut == KeyboardShortcut.PreviewScaleUp:\n            return self.state.mod_preview_scale(+0.1)\n        elif shortcut == KeyboardShortcut.PreviewScaleDown:\n            return self.state.mod_preview_scale(-0.1)\n        elif shortcut == KeyboardShortcut.PreviewScaleMin:\n            return self.state.mod_preview_scale(0, 0.1)\n        elif shortcut == KeyboardShortcut.PreviewScaleMax:\n            return self.state.mod_preview_scale(0, 5)\n        elif shortcut == KeyboardShortcut.PreviewScaleDefault:\n            return self.state.mod_preview_scale(0, 1)\n\n        elif shortcut == KeyboardShortcut.WindowOpacityDown:\n            self.winmans.glsk.set_window_opacity(relative=-0.1)\n        elif shortcut == KeyboardShortcut.WindowOpacityUp:\n            self.winmans.glsk.set_window_opacity(relative=+0.1)\n        elif shortcut == KeyboardShortcut.WindowOpacityMin:\n            self.winmans.glsk.set_window_opacity(absolute=0.1)\n        elif shortcut == KeyboardShortcut.WindowOpacityMax:\n            self.winmans.glsk.set_window_opacity(absolute=1)\n        \n        elif shortcut == KeyboardShortcut.ViewerPlaybackSpeedIncrease:\n            self.viewer_playback_rate = self.viewer_playback_rate * 2\n        elif shortcut == KeyboardShortcut.ViewerPlaybackSpeedDecrease:\n            self.viewer_playback_rate = self.viewer_playback_rate / 2\n        \n        elif shortcut == KeyboardShortcut.MIDIControllersPersist:\n            self.state.persist()\n        elif shortcut == KeyboardShortcut.MIDIControllersClear:\n            self.state.clear()\n        elif shortcut == KeyboardShortcut.MIDIControllersReset:\n            self.state.reset(ignore_current_state=True)\n        \n        elif shortcut == KeyboardShortcut.JumpToFrameFunctionDef:\n            frame = self.last_animation._active_frames(self.state)[0]\n            fn_prefix, fn_context = self.last_animation.frame_to_fn(frame)\n            original_code = self.source_reader.filepath.read_text().splitlines()\n            found_line = -1\n            for li, line in enumerate(original_code):\n                if line.strip().startswith(fn_prefix):\n                    found_line = li\n            self.open_in_editor(line=found_line)\n        \n        elif shortcut == KeyboardShortcut.OpenInEditor:\n            self.open_in_editor()\n        \n        elif shortcut == KeyboardShortcut.ShowInFinder:\n            folder = self.renderables(Action.PreviewStoryboard)[-1].output_folder\n            folder.mkdir(parents=True, exist_ok=True)\n            show_in_finder(folder)\n        elif shortcut == KeyboardShortcut.ViewerTakeFocus:\n            self.winmans.glsk.focus(force=True)\n        \n        elif shortcut == KeyboardShortcut.ViewerSoloNone:\n            self.viewer_solos = []\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ViewerSoloNext:\n            if len(self.viewer_solos):\n                for i, solo in enumerate(self.viewer_solos):\n                    self.viewer_solos[i] = solo + 1\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ViewerSoloPrev:\n            if len(self.viewer_solos):\n                for i, solo in enumerate(self.viewer_solos):\n                    self.viewer_solos[i] = solo - 1\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ViewerSoloFirst:\n            if len(self.viewer_solos):\n                for i, solo in enumerate(self.viewer_solos):\n                    self.viewer_solos[i] = 0\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.ViewerSoloLast:\n            if len(self.viewer_solos):\n                for i, solo in enumerate(self.viewer_solos):\n                    self.viewer_solos[i] = -1\n            return Action.PreviewStoryboardReload\n        elif shortcut in [\n            KeyboardShortcut.ViewerSolo1,\n            KeyboardShortcut.ViewerSolo2,\n            KeyboardShortcut.ViewerSolo3,\n            KeyboardShortcut.ViewerSolo4,\n            KeyboardShortcut.ViewerSolo5,\n            KeyboardShortcut.ViewerSolo6,\n            KeyboardShortcut.ViewerSolo7,\n            KeyboardShortcut.ViewerSolo8,\n            KeyboardShortcut.ViewerSolo9\n            ]:\n            self.viewer_solos = [int(str(shortcut)[-1])-1]\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.PrintApproxFPS:\n            self.winmans.print_approx_fps = True\n        elif shortcut.value.startswith(\"viewer_sample_frames\"):\n            self.viewer_sample_frames = int(shortcut.value.split(\"_\")[-1])\n        elif shortcut.value.startswith(\"viewer_numbered_action_\"):\n            action_number = int(shortcut.value.split(\"_\")[-1])\n            return self.on_release(number=action_number)\n        elif shortcut == KeyboardShortcut.CopySVGToClipboard:\n            self.winmans.glsk.copy_previews_to_clipboard = True\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.RenderDirectory:\n            adjs = self.buildrelease_fn(\"adjacents\")\n            if not adjs:\n                adjs = self.source_reader.adjacents()\n            else:\n                adjs = adjs()\n\n            for idx in range(0, len(adjs)):\n                self.actions_queued.append(KeyboardShortcut.RenderAllAndRelease)\n                #self.actions_queued.append(KeyboardShortcut.Release)\n\n                if idx < (len(adjs) - 1):\n                    self.actions_queued.append(KeyboardShortcut.LoadNextInDirectory)\n                    self.actions_queued.append(Action.PreviewStoryboardReload)\n\n            #return Action.Kill\n            self.actions_queued.append(Action.Kill)\n\n            return Action.PreviewStoryboardReload\n        elif shortcut in [KeyboardShortcut.CycleVersionsForward, KeyboardShortcut.CycleVersionsBack]:\n            vi = self.source_reader.config.version_index\n            versions = self.state.versions\n            if shortcut == KeyboardShortcut.CycleVersionsForward:\n                vi += 1\n                if vi >= len(versions):\n                    vi = 0\n            else:\n                vi -= 1\n                if vi < 0:\n                    vi = len(versions) - 1\n            self.source_reader.config.version_index = vi\n            return Action.PreviewStoryboardReload\n        elif shortcut == KeyboardShortcut.Sleep:\n            # just delays dequeuing next action by a frame\n            return Action.PreviewStoryboard\n        elif shortcut == KeyboardShortcut.TestDirectory:\n            adjs = self.buildrelease_fn(\"adjacents\")\n            if not adjs:\n                adjs = self.source_reader.adjacents()\n            else:\n                adjs = adjs()\n            \n            for _ in range(0, len(adjs)):\n                self.actions_queued.append(KeyboardShortcut.LoadNextInDirectory)\n                self.actions_queued.append(Action.PreviewStoryboardReload)\n                for _ in range(0, self.source_reader.config.test_directory_delay):\n                    self.actions_queued.append(KeyboardShortcut.Sleep)\n\n            self.actions_queued.append(KeyboardShortcut.Kill)\n\n            return Action.PreviewStoryboardReload\n        elif shortcut in [\n            KeyboardShortcut.LoadNextInDirectory,\n            KeyboardShortcut.LoadPrevInDirectory,\n            ]:\n            self.args.frame_offset = 0\n            d = -1 if shortcut == KeyboardShortcut.LoadPrevInDirectory else +1\n            f = self.buildrelease_fn(\"adjacent\")\n            if f:\n                res = f(d)\n                if isinstance(res, Action):\n                    return res\n                elif isinstance(res, Path) or isinstance(res, str):\n                    self.reset_filepath(res, reload=True)\n            else:\n                self.reset_filepath(d, reload=True)\n        else:\n            print(shortcut, \"not recognized\")\n    \n    def open_in_editor(self, filepath=None, line=None):\n        if filepath is None:\n            filepath = self.source_reader.filepath\n        \n        try:\n            path = filepath.relative_to(Path.cwd())\n        except ValueError:\n            path = filepath\n        \n        editor_cmd = self.source_reader.config.editor_command\n        if editor_cmd:\n            if editor_cmd == \"code\":\n                if line is not None:\n                    os.system(editor_cmd + \" -g \" + str(path) + \":\" + str(line))\n                else:\n                    os.system(editor_cmd + \" -g \" + str(path))\n            else:\n                os.system(editor_cmd + \" \" + str(path))\n    \n    def on_shortcut(self, shortcut):\n        waiting = self.shortcut_to_action(shortcut)\n        if waiting:\n            if waiting != -1:\n                self.action_waiting = waiting\n                self.action_waiting_reason = shortcut\n        else:\n            self.action_waiting = Action.PreviewStoryboard\n            self.action_waiting_reason = \"shortcut_default\"\n\n    def on_stdin(self, stdin):\n        cmd, *args = stdin.split(\" \")\n        self.hotkey_waiting = (cmd, None, args)\n\n    def on_action(self, action, message=None) -> bool:\n        if isinstance(action, KeyboardShortcut):\n            self.on_shortcut(self.action_waiting)\n            return True\n\n        if action in [\n            Action.RenderAll,\n            Action.RenderWorkarea,\n            Action.PreviewStoryboardReload\n            ]:\n            self.reload_and_render(action)\n            return True\n        elif action in [Action.RenderIndices]:\n            self.reload_and_render(action, indices=message)\n        elif action in [Action.PreviewStoryboard]:\n            self.render(Action.PreviewStoryboard)\n        elif action in [\n            Action.PreviewStoryboardNextMany,\n            Action.PreviewStoryboardPrevMany,\n            Action.PreviewStoryboardNext,\n            Action.PreviewStoryboardPrev,\n            Action.PreviewPlay]:\n            if action == Action.PreviewPlay:\n                self.winmans.toggle_playback()\n            if action == Action.PreviewStoryboardPrevMany:\n                self.winmans.frame_offset(-self.source_reader.config.many_increment)\n            elif action == Action.PreviewStoryboardPrev:\n                self.winmans.frame_offset(-self.viewer_sample_frames)\n            elif action == Action.PreviewStoryboardNextMany:\n                self.winmans.frame_offset(+self.source_reader.config.many_increment)\n            elif action == Action.PreviewStoryboardNext:\n                self.winmans.frame_offset(+self.viewer_sample_frames)\n            self.render(Action.PreviewStoryboard)\n        elif action == Action.Build:\n            self.action_waiting = self.on_release(build=True)\n            self.action_waiting_reason = \"build\"\n        elif action == Action.Release:\n            self.action_waiting = self.on_release()\n            self.action_waiting_reason = \"release\"\n            self.actions_queued.append(KeyboardShortcut.ReloadSource)\n        elif action == Action.RestartRenderer:\n            self.on_exit(restart=True)\n        elif action == Action.Kill:\n            os.kill(os.getpid(), signal.SIGINT)\n            #self.on_exit(restart=False)\n        elif action == Action.ClearLastRender:\n            self.clear_last_render()\n            self.action_waiting = Action.PreviewStoryboard\n            self.action_waiting_reason = \"clear_last_render\"\n        elif action == Action.ClearRenderedFrames:\n            for r in self.renderables(Action.PreviewStoryboard):\n                shutil.rmtree(r.output_folder, ignore_errors=True)\n            print(\"Deleted rendered version\")\n        else:\n            return False\n    \n    def clear_last_render(self):\n        self.last_render_cleared = True\n        for r in self.renderables(Action.PreviewStoryboard):\n            r.last_result = None\n    \n    def turn_over(self):\n        if self.dead:\n            self.on_exit()\n            return\n        \n        if self.hotkey_waiting:\n            self.execute_string_as_shortcut_or_action(*self.hotkey_waiting)\n            self.hotkey_waiting = None\n        \n        now = ptime.time()\n        \n        if self.debounced_actions:\n            now = ptime.time()\n            for k, v in self.debounced_actions.items():\n                if v:\n                    if (now - v) > self.source_reader.config.debounce_time:\n                        #self.action_waiting = Action.PreviewStoryboardReload\n                        self.actions_queued.append(Action.PreviewStoryboardReload)\n                        #self.action_waiting_reason = \"debouncing\"\n                        self.debounced_actions[k] = None\n\n        if self.action_waiting:\n            #print(\"YES\", self.action_waiting, self.action_waiting_reason)\n            action_in = self.action_waiting\n            self.on_action(self.action_waiting)\n            if action_in != self.action_waiting:\n                # TODO should be recursive?\n                self.on_action(self.action_waiting)\n            self.action_waiting = None\n            self.action_waiting_reason = None\n        \n        if len(self.actions_queued) > 0:\n            self.action_waiting = self.actions_queued.pop(0)\n            self.action_waiting_reason = \"pop_from_queue\"\n        \n        did_preview = self.winmans.turn_over()\n\n        did_preview_fn = self.buildrelease_fn(\"didPreview\")\n        if did_preview_fn:\n            did_preview_fn()\n        \n        self.previews_waiting = []\n        self.last_render_cleared = False\n\n        if self.state.playing > 0:\n            self.on_action(Action.PreviewStoryboardNext)\n        \n        for idx, (_, wp, flag, last_mod) in enumerate(self.watchees):\n            wp:Path = wp\n            if wp.exists():\n                mtime = wp.stat().st_mtime\n                if mtime > last_mod:\n                    try:\n                        print(f\">>> resave: {wp.relative_to(Path.cwd())}\")\n                    except:\n                        print(f\">>> resave: {wp}\")\n\n                    self.watchees[idx][-1] = ptime.time()\n                    self.on_modified(wp, flag)\n                    return False\n        \n        return did_preview\n    \n    def on_modified(self, path, flag):\n        #path = Path(event.src_path)\n        #print(\"\\n\\n\\n---\\nMOD\", path, ptime.time())\n\n        actual_path = path\n        if path.parent in self.watchee_paths():\n            actual_path = path\n            path = path.parent\n        \n        if True: #or path in self.watchee_paths():\n            if path.suffix == \".json\":\n                if path.stem == \"command\" or \"_input\" in path.stem:\n                    data = json.loads(path.read_text())\n                    if \"action\" in data:\n                        action = data.get(\"action\")\n                        if \"filepath\" in data:\n                            path = data.get(\"filepath\")\n                            if path != str(self.last_animation.filepath):\n                                print(\"IGNORING COMMAND\")\n                                return\n                        self.hotkey_waiting = (action, None, data.get(\"args\"))\n                    return\n\n                try:\n                    json.loads(path.read_text())\n                except json.JSONDecodeError:\n                    print(\"Error decoding watched json\", path)\n                    return\n            \n            #idx = self.watchee_paths().index(path)\n            #wpath, wtype, wflag = self.watchees[idx]\n            \n            if flag == \"soft\":\n                self.action_waiting = Action.PreviewStoryboard\n                self.action_waiting_reason = \"soft_watch\"\n                return\n            \n            if flag == \"restart\":\n                self.restart()\n            \n            if self.args.memory and process:\n                memory = bytesto(process.memory_info().rss)\n                diff = memory - self._last_memory\n                self._last_memory = memory\n                print(\">>> pid:{:d}/new:{:04.2f}MB/total:{:4.2f}\".format(os.getpid(), diff, memory))\n            \n            self.action_waiting = Action.PreviewStoryboardReload\n            self.action_waiting_reason = \"on_modified\"\n    \n    def add_watchee(self, watchee):\n        if self.args.is_subprocess:\n            return\n\n        watchee.append(ptime.time())\n        self.watchees.append(watchee)\n        if \"_input.json\" in str(watchee[1]):\n            return\n        \n        if False:\n            try:\n                print(\"    >>> watching...\", watchee[1].relative_to(Path.cwd()))\n            except Exception as e:\n                #print(e)\n                print(\"    >>> watching...\", watchee[1])\n    \n    def execute_string_as_shortcut_or_action(self, shortcut, key, args=[]):\n        #print(\"\\n>>> shortcut:\", shortcut)\n        #print(f\"  \\\"{shortcut}\\\"({key if key else 'ø'}[{args}])\\n\")\n        \n        co = ConfigOption.ShortToConfigOption(shortcut)\n        if co:\n            if co == ConfigOption.WindowOpacity:\n                self.winmans.glsk.set_window_opacity(absolute=args[0])\n            else:\n                print(\"> Unhandled ConfigOption\", co, key)\n            return\n        \n        if shortcut == \"render_index\":\n            self.render(Action.RenderIndices, indices=[int(args[0])], ditto_last=True)\n            return\n        elif shortcut == \"render_after\":\n            frames = list(range(args[0], self.last_animation.timeline.duration))\n            self.render(Action.RenderIndices, indices=frames)\n            return\n        elif shortcut == \"render_scratch\":\n            fi = int(args[0])\n            print(f\">/scratch:{fi}\")\n            def to_scratch(p):\n                return Path(re.sub(r\"[0-9]{4}\", \"XXXX\", str(p)))\n            self._single_thread_render(Action.RenderIndices, [fi], output_transform=to_scratch, no_sound=True)\n            return\n        elif shortcut == \"custom_hotkey\":\n            custom_hotkey_fn = self.buildrelease_fn(\"custom_hotkey\")\n            if custom_hotkey_fn:\n                custom_hotkey_fn(key, self)\n                return\n\n        try:\n            ksc = KeyboardShortcut(shortcut)\n        except ValueError:\n            ksc = None\n        \n        if ksc:\n            self.on_shortcut(KeyboardShortcut(shortcut))\n        else:\n            print(\"No shortcut/action\", key, shortcut)\n        \n    def reset_renderers(self):\n        for r in self.running_renderers:\n            if r:\n                r.terminate()\n    \n    def restart(self):\n        print(\"> RESTARTING...\")\n        args = sys.argv\n        if len(args) > 1:\n            args[1] = str(self.source_reader.filepath)\n            #args[1] = str(self._unnormalized_file)\n        \n        inputs = self.source_reader.program[\"__inputs__\"]\n\n        if len(inputs) > 0:\n            if len(self._original_inputs) == len(inputs):\n                for idx, input in enumerate(inputs):\n                    args[idx+2] = input\n            else:\n                a_args = args[:2]\n                b_args = args[len(self._original_inputs)+2:]\n                args = a_args + inputs + b_args\n                #print(\">>>\", a_args, \"|||\", b_args)\n        \n        # attempt to preserve state across reload\n\n        fo = str(self.state.frame_offset)\n        try:\n            foi = args.index(\"-fo\")\n            args[foi+1] = fo\n        except ValueError:\n            args.append(\"-fo\")\n            args.append(fo)\n        \n        tv = str(int(self.source_reader.config.add_time_viewers or 0))\n        try:\n            tvi = args.index(\"-tv\")\n            args[tvi+1] = tv\n        except ValueError:\n            args.append(\"-tv\")\n            args.append(tv)\n        \n        ui = str(int(self.source_reader.config.add_ui or 0))\n        try:\n            uii = args.index(\"-ui\")\n            args[uii+1] = ui\n        except ValueError:\n            args.append(\"-ui\")\n            args.append(ui)\n        \n        x = str(int(self.source_reader.config.show_xray or 0))\n        try:\n            xi = args.index(\"-x\")\n            args[xi+1] = x\n        except ValueError:\n            args.append(\"-x\")\n            args.append(x)\n        \n        g = str(int(self.source_reader.config.show_grid or 0))\n        try:\n            gi = args.index(\"-g\")\n            args[gi+1] = g\n        except ValueError:\n            args.append(\"-g\")\n            args.append(g)\n        \n        vi = str(int(self.source_reader.config.version_index))\n        try:\n            vii = args.index(\"-vi\")\n            args[vii+1] = vi\n        except ValueError:\n            args.append(\"-vi\")\n            args.append(vi)\n        \n        lc = []\n        for c in self.state.cursor_history[-3:]:\n            lc.append(\",\".join([str(p) for p in c]))\n        lc = \";\".join(lc)\n        try:\n            lci = args.index(\"-lc\")\n            args[lci+1] = lc\n        except ValueError:\n            args.append(\"-lc\")\n            args.append(lc)\n        \n        rc = self.source_reader.config.restart_count + 1\n        args.append(\"-rc\")\n        args.append(rc)\n        \n        print(\"> RESTART:\", args)\n        os.execl(sys.executable, *([\"-m\"]+[str(a) for a in args]))\n\n    def on_exit(self, restart=False):\n        renderables = self.renderables(Action.PreviewStoryboard)\n        for r in renderables:\n            if hasattr(r, \"exit\"):\n                r.exit()\n        \n        self.source_reader.unlink()\n\n        exit_fn = self.buildrelease_fn(\"exit\")\n        if exit_fn:\n            exit_fn(self)\n\n        for _, p in self.subprocesses.items():\n            p.kill()\n\n        self.winmans.terminate()\n        \n        if self.hotkeys:\n            self.hotkeys.stop()\n        \n        self.reset_renderers()\n        \n        if self.args.memory:\n            snapshot = tracemalloc.take_snapshot()\n            top_stats = snapshot.statistics('traceback')\n\n            # pick the biggest memory block\n            stat = top_stats[0]\n            print(\"%s memory blocks: %.1f KiB\" % (stat.count, stat.size / 1024))\n            for line in stat.traceback.format():\n                print(line)\n        \n        if restart:\n            self.restart()\n\n        if self.profiler:\n            print(\">>>PROFILED!\")\n            print(self.profiler)\n            self.profiler.disable()\n            self.profiler.dump_stats(\"profile_result\")\n\n\ndef main(winmans=Winmans, profile=None):\n    Path(\"~/.coldtype\").expanduser().mkdir(exist_ok=True)\n    _, parser = Renderer.Argparser()\n    Renderer(parser, winmans_class=winmans, profile=profile).main()\n\ndef main_b3d():\n    main(profile=\"b3dlo\")\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/config.py",
    "content": "from enum import Enum\nimport argparse, re, platform\nfrom pathlib import Path\n\nfrom coldtype.renderer.keyboard import LAYOUT_REMAPS\n\n\ndef true_false_or_none(x):\n    if x in [\"0\", \"false\", \"False\", \"n\", \"no\", \"N\"]:\n        return False\n    elif x in [\"1\", \"true\", \"True\", \"y\", \"yes\", \"Y\"]:\n        return True\n    else:\n        return None\n\n\nclass ConfigOption(Enum):\n    WindowPassthrough = (\"window_passthrough\", None, \"wpass\", true_false_or_none)\n    WindowTransparent = (\"window_transparent\", None, \"wt\", true_false_or_none)\n    WindowChromeless = (\"window_chromeless\", None, \"wc\",  true_false_or_none)\n    WindowBackground = (\"window_background\", None, \"wb\", true_false_or_none)\n    WindowFloat = (\"window_float\", None, \"wf\", true_false_or_none)\n    WindowOpacity = (\"window_opacity\", 1, \"wo\", lambda x: float(x))\n    WindowPin = (\"window_pin\", \"SE\", \"wp\")\n    WindowPinInset = (\"window_pin_inset\", (0, 0), \"wpi\", lambda x: [int(n) for n in x.split(\",\")])\n    WindowPinOffsetX = (\"window_pin_offset_x\", 0, \"wpox\", lambda x: int(x))\n    WindowPinOffsetY = (\"window_pin_offset_y\", 0, \"wpoy\", lambda x: int(x))\n    WindowContentScale = (\"window_content_scale\", None, \"wcs\", lambda x: float(x))\n    MonitorName = (\"monitor_name\", None, \"mn\")\n    EditorCommand = (\"editor_command\", \"code\", \"ec\")\n    ManyIncrement = (\"many_increment\", None, \"minc\")\n    PreviewScale = (\"preview_scale\", 1, \"ps\", lambda x: float(x))\n    PreviewSaturation = (\"preview_saturation\", 1, \"psat\", lambda x: float(x))\n    FontDirs = (\"font_dirs\", [], \"fd\")\n    FunctionFilters = (\"function_filters\", \"\", \"ff\",\n        lambda x: [re.compile(f.strip()) for f in x.split(\",\")])\n    Midi = (\"midi\", {}, None)\n    Hotkeys = (\"hotkeys\", {}, None)\n    ThreadCount = (\"thread_count\", 8, \"tc\")\n    Multiplex = (\"multiplex\", None, \"mp\", true_false_or_none)\n    DebounceTime = (\"debounce_time\", 0.25, \"dt\")\n    RefreshDelay = (\"refresh_delay\", 0.025, \"rdly\")\n    InlineFiles = (\"inline_files\", [], \"in\", lambda x: x.split(\",\"))\n    SrcMacros = (\"src_macros\", {}, \"srcm\")\n    FFMPEGCommand = (\"ffmpeg_command\", \"ffmpeg\", \"ffc\")\n    BlenderWatch = (\"blender_watch\", None, \"bw\", true_false_or_none)\n    BlenderFile = (\"blender_file\", None, \"bf\", lambda x: Path(x).expanduser().resolve())\n    BlenderResetFactory = (\"blender_reset_factory\", None, \"brf\", true_false_or_none)\n    BlenderCommandLineArgs = (\"blender_command_line_args\", None, \"bcli\")\n    NoWatch = (\"no_watch\", None, \"nw\", true_false_or_none)\n    NoViewer = (\"no_viewer\", None, \"nv\", true_false_or_none)\n    NoMIDI = (\"no_midi\", None, \"nm\", true_false_or_none)\n    MIDIInfo = (\"midi_info\", None, \"mi\", true_false_or_none)\n    NoSound = (\"no_sound\", None, \"ns\", true_false_or_none)\n    NoViewerErrors = (\"no_viewer_errors\", None, \"nve\", true_false_or_none)\n    EnableAudio = (\"enable_audio\", None, \"ea\", true_false_or_none)\n\n    ViewerSolos = (\"viewer_solos\", [], \"vs\", lambda x: [int(n) for n in x.split(\",\")])\n    \n    AddTimeViewers = (\"add_time_viewers\", None, \"tv\", true_false_or_none)\n    AddUI = (\"add_ui\", True, \"ui\", true_false_or_none)\n\n    ShowXray = (\"show_xray\", None, \"x\", true_false_or_none)\n    ShowGrid = (\"show_grid\", None, \"g\", true_false_or_none)\n    GridSettings = (\"grid_settings\", [], \"gs\", lambda x: x.split(\",\"))\n    PrintResult = (\"print_result\", None, \"pr\", true_false_or_none)\n    LoadOnly = (\"load_only\", None, \"lo\", true_false_or_none)\n    TestDirectoryDelay = (\"test_directory_delay\", 10, \"tdd\", lambda x: int(x))\n    VersionIndex = (\"version_index\", 0, \"vi\", lambda x: int(x))\n    RestartCount = (\"restart_count\", 0, \"rc\", lambda x: int(x))\n    \n    CronInterval = (\"cron_interval\", 0, \"ci\", lambda x: float(x))\n\n    KeyboardLayout = (\"keyboard_layout\", None, \"kl\")\n\n    @staticmethod\n    def Help(e):\n        if e == ConfigOption.WindowPassthrough:\n            return \"Should the window ignore all interaction?\"\n        elif e == ConfigOption.WindowTransparent:\n            return \"Should the window have no background?\"\n        elif e == ConfigOption.WindowChromeless:\n            return \"Should the window have no chrome?\"\n        elif e == ConfigOption.WindowBackground:\n            return \"Should the window open as a background process?\"\n        elif e == ConfigOption.WindowFloat:\n            return \"Should the window float above everything?\"\n        elif e == ConfigOption.WindowOpacity:\n            return \"A value for the transparency of the window\"\n        elif e == ConfigOption.WindowPin:\n            return \"Where should the window show up? Provide a compass direction N/S/E/W/NE/SE/SW/NW/C\"\n        elif e == ConfigOption.WindowPinInset:\n            return \"Experimental; offset window pin from edge\"\n        elif e == ConfigOption.WindowContentScale:\n            return \"Experimental; override auto-calculated window scale\"\n        elif e == ConfigOption.MonitorName:\n            return \"The name of the monitor to open the window in; pass 'list' to list all monitor names\"\n        elif e == ConfigOption.EditorCommand:\n            return \"If your text editor provides a command-line invocation, set it here for automated opening\"\n        elif e == ConfigOption.ManyIncrement:\n            return \"How many frames should the renderer jump forward when you hit cmd+arrow to move prev/next?\"\n        elif e == ConfigOption.PreviewScale:\n            return \"What preview scale should the window open at?\"\n        elif e == ConfigOption.PreviewSaturation:\n            return \"Should the preview have a saturation value applied to compensate for your screen?\"\n        elif e == ConfigOption.FontDirs:\n            return \"What additional directories would you like to search for fonts?\"\n        elif e == ConfigOption.FunctionFilters:\n            return \"Do you want to restrict renderable functions to those that match these comma-delimited patterns?\"\n        elif e == ConfigOption.ThreadCount:\n            return \"How many threads when multiplexing?\"\n        elif e == ConfigOption.Multiplex:\n            return \"Should the renderer run multiple processes (determined by --thread-count)?\"\n        elif e == ConfigOption.DebounceTime:\n            return \"How long should the rendering loop wait before acting on a debounced action?\"\n        elif e == ConfigOption.RefreshDelay:\n            return \"How long should the renderer delay between rendering frames?\"\n        elif e == ConfigOption.BlenderWatch:\n            return \"Enable experimental blender live-coding integration?\"\n        elif e == ConfigOption.BlenderResetFactory:\n            return \"Reset Blender to factory settings before running?\"\n        elif e == ConfigOption.NoViewer:\n            return \"Should there be no viewer at all?\"\n        elif e == ConfigOption.NoMIDI:\n            return \"Should MIDI be disabled?\"\n        elif e == ConfigOption.MIDIInfo:\n            return \"Should information about the current MIDI setup and messages be printed while the program runs?\"\n        elif e == ConfigOption.NoSound:\n            return \"Turn off all sounds made by the renderer\"\n        elif e == ConfigOption.NoViewerErrors:\n            return \"Turn off displaying errors in the viewer\"\n        elif e == ConfigOption.EnableAudio:\n            return \"Enable audio playback if audio is defined on an @animation\"\n        elif e == ConfigOption.AddTimeViewers:\n            return \"Begin with time-viewers visible?\"\n        elif e == ConfigOption.ShowXray:\n            return \"Show the Bezier xray instead of the thing itself?\"\n        elif e == ConfigOption.ShowGrid:\n            return \"Add a grid to the output?\"\n        elif e == ConfigOption.PrintResult:\n            return \"Print the result\"\n        elif e == ConfigOption.KeyboardLayout:\n            return f\"Remap keyboard for layout, options: {list(LAYOUT_REMAPS.keys())}\"\n        \n\n    @staticmethod\n    def AddCommandLineArgs(pargs:dict,\n        parser:argparse.ArgumentParser\n        ):\n        for co in ConfigOption:\n            if co.value[2]:\n                short = co.value[2]\n                arg = co.value[0].replace(\"_\", \"-\")\n                type_spec = dict(default=None)\n                #if co.value[1] is False:\n                #    type_spec = dict(action=\"store_true\", default=False)\n                pargs[co.value[0]] = parser.add_argument(f\"-{short}\", f\"--{arg}\", help=ConfigOption.Help(co), **type_spec)\n    \n    @staticmethod\n    def ShortToConfigOption(short):\n        for co in ConfigOption:\n            if short == co.value[2]:\n                return co\n\n\n_set_paths = {}\n\n\nclass ColdtypeConfig():\n    def __init__(self,\n        config,\n        prev_config:\"ColdtypeConfig\"=None,\n        args=None\n        ):\n        global _set_paths\n\n        self.profile = None\n        if args and hasattr(args, \"profile\") and args.profile:\n            self.profile = args.profile\n        \n        for co in ConfigOption:\n            post_mod = None\n\n            if len(co.value) > 4:\n                prop, default_value, _, cli_mod, post_mod = co.value\n            elif len(co.value) > 3:\n                prop, default_value, _, cli_mod = co.value\n            else:\n                prop, default_value, _ = co.value\n                cli_mod = lambda x: x\n            \n            if prop in _set_paths and prev_config:\n                setattr(self, prop, getattr(prev_config, prop))\n            else:\n                value = config.get(prop.upper(), getattr(prev_config, prop) if prev_config else default_value)\n                setattr(self, prop, value)\n            \n            if self.profile and \"PROFILES\" in config and self.profile in config[\"PROFILES\"]:\n                v = config[\"PROFILES\"][self.profile].get(prop.upper())\n                if v:\n                    _set_paths[prop] = \"PROFILE\"\n                    setattr(self, prop, v)\n            \n            if args and hasattr(args, prop):\n                value = getattr(args, prop)\n                if value is not None:\n                    #print(\"CLI\", prop, value)\n                    setattr(self, prop, cli_mod(value))\n            \n            if post_mod:\n                setattr(self, prop, post_mod(getattr(self, prop)))\n    \n    def values(self):\n        out = \"<ColdtypeConfig:\"\n        if self.profile:\n            out += f\"({self.profile})\"\n        for co in ConfigOption:\n            out += f\"\\n   {co.name}:{getattr(self, co.value[0])}\"\n        out += \"/>\"\n        return out"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/keyboard.py",
    "content": "import platform\nfrom enum import Enum\n\ntry:\n    import glfw\nexcept ImportError:\n    glfw = None\n\n\nLAYOUT_REMAPS = {\n    \"tr\": {73: 73, 39: 73, 47: 46},\n    \"kk\": {54: 44, 55: 46},\n    \"de\": {89: 90, 47: 45},\n    \"ru\": {47: 46},\n    \"uk\": {47: 46},\n    \"it\": {47: 45},\n    \"dvorak\": {81: 39, 69: 46, 82: 80, 84: 89, 89: 70, 85: 71, 73: 67, 79: 82, 80: 76, 93: 47, 91: 61, 83: 79, 70: 85, 71: 73, 72: 68, 74: 72, 75: 84, 76: 78, 39: 45, 88: 81, 67: 74, 86: 75, 66: 88, 44: 87, 46: 86, 47: 90, 45: 93, 61: 91},\n    \"fr\": {81: 65, 87: 90, 65: 81, 77: 44, 44: 59},\n    \"he\": {81: 47, 87: 39, 93: 91, 91: 93, 39: 44, 47: 46},\n    \"gr\": {81: 59},\n    \"cs\": {45: 61, 89: 90, 47: 45},\n    \"by\": {91: 39, 47: 46},\n    \"sv\": {47: 45},\n    \"colemak\": {69: 70, 82: 80, 84: 71, 89: 74, 85: 76, 73: 85, 79: 89, 80: 59, 83: 82, 70: 84, 71: 68, 74: 78, 75: 69, 76: 73},\n    \"es\": {47: 45, 45: 39},\n}\n\n\nclass KeyboardShortcut(Enum):\n    PreviewPrev = \"prev_prev\"\n    PreviewPrevMany = \"prev_prev_many\"\n    PreviewNext = \"prev_next\"\n    PreviewNextMany = \"prev_next_many\"\n    \n    ClearLastRender = \"clear_last_render\"\n    ClearRenderedFrames = \"clear_rendered_frames\"\n    ResetInitialMemory = \"reset_initial_memory\"\n    ResetMemory = \"reset_memory\"\n    \n    PlayRendered = \"play_rendered\"\n    PlayPreview = \"play_preview\"\n    PlayToEnd = \"play_to_end\"\n\n    Echo = \"echo\"\n\n    ReloadSource = \"reload_source\"\n    RestartApp = \"restart_app\"\n    Quit = \"quit\"\n    Kill = \"kill\"\n    Sleep = \"sleep\"\n\n    Build = \"build\"\n    Release = \"release\"\n    RenderAll = \"render_all\"\n    RenderOne = \"render_one\"\n    RenderFrom = \"render_from\"\n    RenderWorkarea = \"render_workarea\"\n    RenderDirectory = \"render_directory\"\n    RenderAllAndPlay = \"render_all_and_play\"\n    RenderAllAndRelease = \"render_all_and_release\"\n    ToggleMultiplex = \"toggle_multiplex\"\n\n    SetWorkareaIn = \"set_workarea_in\"\n    SetWorkareaOut = \"set_workarea_out\"\n    \n    JumpPrev = \"jump_prev\"\n    JumpNext = \"jump_next\"\n    JumpHome = \"jump_home\"\n    JumpEnd = \"jump_end\"\n    JumpStoryboard = \"jump_storyboard\"\n\n    OverlayInfo = \"overlay_info\"\n    OverlayTimeline = \"overlay_timeline\"\n    OverlayRendered = \"overlay_rendered\"\n    OverlayRecording = \"overlay_recording\"\n    EnableAudio = \"toggle_audio\"\n    ToggleTimeViewer = \"toggle_time_viewer\"\n    ToggleUI = \"toggle_ui\"\n    ToggleXray = \"toggle_xray\"\n    ToggleGrid = \"toggle_grid\"\n    CycleVersionsForward = \"cycle_versions_forward\"\n    CycleVersionsBack = \"cycle_versions_back\"\n\n    PreviewScaleDown = \"preview_scale_down\"\n    PreviewScaleUp = \"preview_scale_up\"\n    PreviewScaleMin = \"preview_scale_min\"\n    PreviewScaleMax = \"preview_scale_max\"\n    PreviewScaleDefault = \"preview_scale_default\"\n\n    WindowOpacityDown = \"window_opacity_down\"\n    WindowOpacityUp = \"window_opacity_up\"\n    WindowOpacityMin = \"window_opacity_min\"\n    WindowOpacityMax = \"window_opacity_max\"\n\n    ViewerPlaybackSpeedIncrease = \"viewer_playback_speed_increase\"\n    ViewerPlaybackSpeedDecrease = \"viewer_playback_speed_decrease\"\n    ViewerPlaybackSpeedReset = \"viewer_playback_speed_reset\"\n\n    MIDIControllersPersist = \"midi_controllers_persist\"\n    MIDIControllersClear = \"midi_controllers_clear\"\n    MIDIControllersReset = \"midi_controllers_reset\"\n\n    JumpToFrameFunctionDef = \"jump_to_function_def\"\n    OpenInEditor = \"open_in_editor\"\n    ShowInFinder = \"show_in_finder\"\n\n    ViewerTakeFocus = \"viewer_take_focus\"\n\n    ViewerSoloNone = \"viewer_solo_none\"\n    ViewerSoloNext = \"viewer_solo_next\",\n    ViewerSoloPrev = \"viewer_solo_prev\",\n    ViewerSoloFirst = \"viewer_solo_first\",\n    ViewerSoloLast = \"viewer_solo_last\",\n    ViewerSolo1 = \"viewer_solo_1\"\n    ViewerSolo2 = \"viewer_solo_2\"\n    ViewerSolo3 = \"viewer_solo_3\"\n    ViewerSolo4 = \"viewer_solo_4\"\n    ViewerSolo5 = \"viewer_solo_5\"\n    ViewerSolo6 = \"viewer_solo_6\"\n    ViewerSolo7 = \"viewer_solo_7\"\n    ViewerSolo8 = \"viewer_solo_8\"\n    ViewerSolo9 = \"viewer_solo_9\"\n\n    PrintApproxFPS = \"show_approx_fps\"\n\n    ViewerSampleFrames1 = \"viewer_sample_frames_1\"\n    ViewerSampleFrames2 = \"viewer_sample_frames_2\"\n    ViewerSampleFrames3 = \"viewer_sample_frames_3\"\n    ViewerSampleFrames4 = \"viewer_sample_frames_4\"\n    ViewerSampleFrames5 = \"viewer_sample_frames_5\"\n    ViewerSampleFrames6 = \"viewer_sample_frames_6\"\n    ViewerSampleFrames7 = \"viewer_sample_frames_7\"\n    ViewerSampleFrames8 = \"viewer_sample_frames_8\"\n    ViewerSampleFrames9 = \"viewer_sample_frames_9\"\n\n    ViewerNumberedAction1 = \"viewer_numbered_action_1\"\n    ViewerNumberedAction2 = \"viewer_numbered_action_2\"\n    ViewerNumberedAction3 = \"viewer_numbered_action_3\"\n    ViewerNumberedAction4 = \"viewer_numbered_action_4\"\n    ViewerNumberedAction5 = \"viewer_numbered_action_5\"\n    ViewerNumberedAction6 = \"viewer_numbered_action_6\"\n    ViewerNumberedAction7 = \"viewer_numbered_action_7\"\n    ViewerNumberedAction8 = \"viewer_numbered_action_8\"\n    ViewerNumberedAction9 = \"viewer_numbered_action_9\"\n\n    ToggleCapturing = \"toggle_capturing\"\n    CaptureOnce = \"capture_once\"\n\n    CopySVGToClipboard = \"copy_svg_to_clipboard\"\n    TogglePrintResult = \"toggle_print_result\"\n    PrintResultOnce = \"print_result_once\"\n\n    LoadNextInDirectory = \"load_next_in_directory\"\n    LoadPrevInDirectory = \"load_prev_in_directory\"\n\n    TestDirectory = \"test_directory\"\n\n\nKeyboardShortcutExplainers = {\n    KeyboardShortcut.PreviewPrev:\n        \"Go to the previous frame\",\n    KeyboardShortcut.PreviewPrevMany:\n        \"Go n-frames backward (cycling)\",\n    KeyboardShortcut.PreviewNext:\n        \"Go to the next frame\",\n    KeyboardShortcut.PreviewNextMany:\n        \"Go n-frames forward (cycling)\",\n    KeyboardShortcut.ClearLastRender:\n        \"When compositing, delete the existing framebuffer\",\n    KeyboardShortcut.ClearRenderedFrames:\n        \"Delete all the rendered frames on disk for this animation\",\n    KeyboardShortcut.ResetInitialMemory:\n        \"When using dynamic memory, this resets it to the initial state defined in the decorator\",\n    KeyboardShortcut.ResetMemory:\n        \"When using dynamic memory, this calls the reset_memory function passed to the decorator\",\n    KeyboardShortcut.PlayRendered:\n        \"Play the rendered-to-disk version of this animation\",\n    KeyboardShortcut.PlayPreview:\n        \"Play the current animation as fast as possible, evaluating the code live\",\n    KeyboardShortcut.PlayToEnd:\n        \"Same as PlayPreview, but will not loop\",\n    KeyboardShortcut.Echo:\n        \"Play a sound\",\n    KeyboardShortcut.EnableAudio:\n        \"If audio is defined on a renderable, toggle whether or not to play it\",\n    KeyboardShortcut.RestartApp:\n        \"Restart the app (a shortcut for when you've modified code that isn't reloaded automatically on save)\",\n    KeyboardShortcut.Quit:\n        \"Quit the app and stop the renderer completely (alias of hitting the window X or hitting Ctrl-C in the terminal)\",\n    KeyboardShortcut.Build:\n        \"Trigger the custom `build` function (if there’s one defined in your code)\",\n    KeyboardShortcut.Release:\n        \"Trigger the custom `release` function (if there's one defined in your code)\",\n    KeyboardShortcut.RenderAll:\n        \"Render all the frames in this animation to disk\",\n    KeyboardShortcut.RenderAllAndPlay:\n        \"Render all the frames in this animation to disk, then start a looped playback of the rendered frames\",\n    KeyboardShortcut.RenderAllAndRelease:\n        \"Render all the frames in this animation to disk, then run the custom release function\",\n    KeyboardShortcut.RenderOne:\n        \"Render just the current frame to disk\",\n    KeyboardShortcut.RenderFrom:\n        \"Render all the frames starting with the current one\",\n    KeyboardShortcut.RenderWorkarea:\n        \"Render the workarea to disk (if a workarea is defined)\",\n    KeyboardShortcut.RenderDirectory:\n        \"Cycle adjacents and render all in each\",\n    KeyboardShortcut.ToggleMultiplex:\n        \"Toggle multiplexing (multicore rendering) on and off\",\n    KeyboardShortcut.OverlayInfo:\n        \"Turn on the “info” overlay\",\n    KeyboardShortcut.OverlayRendered:\n        \"Turn on the “rendered” overlay (only used in the blender workflow for previewing a blender-rendered frame)\",\n    KeyboardShortcut.OverlayRecording:\n        \"Turn on the “recording” overlay\",\n    KeyboardShortcut.PreviewScaleDown:\n        \"Shrink the viewer\",\n    KeyboardShortcut.PreviewScaleUp:\n        \"Enlarge the viewer\",\n    KeyboardShortcut.PreviewScaleMin:\n        \"Make the viewer as small as possible\",\n    KeyboardShortcut.PreviewScaleMax:\n        \"Make the viewer as large as possible\",\n    KeyboardShortcut.PreviewScaleDefault:\n        \"Make the viewer the standard size (100%)\",\n    KeyboardShortcut.WindowOpacityDown:\n        \"Make the viewer more transparent\",\n    KeyboardShortcut.WindowOpacityUp:\n        \"Make the viewer less transparent\",\n    KeyboardShortcut.WindowOpacityMin:\n        \"Make the viewer as transparent as possible\",\n    KeyboardShortcut.WindowOpacityMax:\n        \"Make the viewer fully opaque\",\n    KeyboardShortcut.OpenInEditor:\n        \"Open the currently-rendered file in your code editor\",\n    KeyboardShortcut.ShowInFinder:\n        \"Show the renders directory associated with this animation in the finder/explorer/fileviewer\",\n    KeyboardShortcut.ViewerSoloNone:\n        \"View all defined renderables and animations\",\n    KeyboardShortcut.ViewerSoloNext:\n        \"Solo the “next” animation/renderable in the file\",\n    KeyboardShortcut.ViewerSoloPrev:\n        \"Solo the “previous” animation/renderable in the file\",\n    KeyboardShortcut.ViewerSolo1:\n        \"Solo the first animation/renderable in the file\",\n    KeyboardShortcut.ViewerSolo2:\n        \"Solo the second animation/renderable in the file\",\n    KeyboardShortcut.ViewerSolo3:\n        \"Solo the third animation/renderable in the file\",\n    KeyboardShortcut.CopySVGToClipboard:\n        \"Copy the current vector to the clipboard as SVG (can be pasted into Illustrator)\",\n    KeyboardShortcut.TogglePrintResult:\n        \"Print the tree representation of what's being returned to the renderer\",\n    KeyboardShortcut.PrintResultOnce:\n        \"Print the tree representation of what's being returned to the renderer\",\n    KeyboardShortcut.LoadNextInDirectory:\n        \"If you have a directory of coldtype .py files, this will load the next one in the directory (alphabetically), so you can skip stopping and restarting the command-line process with different arguments\",\n    KeyboardShortcut.LoadPrevInDirectory:\n        \"If you have a directory of coldtype .py files, this will load the previous one in the directory (alphabetically), so you can skip stopping and restarting the command-line process with different arguments\",\n    KeyboardShortcut.TestDirectory:\n        \"Test everything in the directory\",\n}\n\n\nREPEATABLE_SHORTCUTS = [\n    KeyboardShortcut.PreviewPrev,\n    KeyboardShortcut.PreviewPrevMany,\n    KeyboardShortcut.PreviewNext,\n    KeyboardShortcut.PreviewNextMany,\n    KeyboardShortcut.PreviewScaleUp,\n    KeyboardShortcut.PreviewScaleDown,\n    KeyboardShortcut.JumpPrev,\n    KeyboardShortcut.JumpNext\n]\n\ndef symbol_to_glfw(s):\n    GLFW_SPECIALS_LOOKUP = {\n        \"cmd\": glfw.MOD_SUPER,\n        \"ctrl\": glfw.MOD_CONTROL,\n        \"shift\": glfw.MOD_SHIFT,\n        \"alt\": glfw.MOD_ALT,\n        \"<up>\": glfw.KEY_UP,\n        \"<down>\": glfw.KEY_DOWN,\n        \"<left>\": glfw.KEY_LEFT,\n        \"<right>\": glfw.KEY_RIGHT,\n        \"<space>\": glfw.KEY_SPACE,\n        \"<home>\": glfw.KEY_HOME,\n        \"<end>\": glfw.KEY_END,\n        \"<enter>\": glfw.KEY_ENTER,\n        \"<page-up>\": glfw.KEY_PAGE_UP,\n        \"<page-down>\": glfw.KEY_PAGE_DOWN,\n        \"<tab>\": glfw.KEY_TAB,\n        \",\": glfw.KEY_COMMA,\n        \".\": glfw.KEY_PERIOD,\n        \"-\": glfw.KEY_MINUS,\n        \"=\": glfw.KEY_EQUAL,\n        \"/\": glfw.KEY_SLASH,\n        \"'\": glfw.KEY_APOSTROPHE,\n        \";\": glfw.KEY_SEMICOLON,\n        \"<backslash>\": glfw.KEY_BACKSLASH,\n        \"<bracket-right>\": glfw.KEY_RIGHT_BRACKET,\n        \"<bracket-left>\": glfw.KEY_LEFT_BRACKET,\n    }\n    if s in GLFW_SPECIALS_LOOKUP:\n        return GLFW_SPECIALS_LOOKUP[s]\n    else:\n        k = f\"KEY_{s.upper()}\"\n        if hasattr(glfw, k):\n            return getattr(glfw, k)\n        elif \"np\" in s:\n            return getattr(glfw, f\"KEY_KP_{s[2:]}\")\n        else:\n            raise Exception(\"Invalid keyboard shortcut symbol\", s)\n\n\nSHORTCUTS = {\n    KeyboardShortcut.PreviewPrevMany: [\n        [[\"shift\"], \"j\"],\n        [[\"shift\"], \"<left>\"]\n    ],\n    KeyboardShortcut.PreviewPrev: [\n        [[], \"j\"],\n        [[], \"<left>\"]\n    ],\n    KeyboardShortcut.PreviewNextMany: [\n        [[\"shift\"], \"l\"],\n        [[\"shift\"], \"<right>\"]\n    ],\n    KeyboardShortcut.PreviewNext: [\n        [[], \"l\"],\n        [[], \"<right>\"]\n    ],\n    \n    KeyboardShortcut.ClearLastRender: [\n        [[], \"<backslash>\"]\n    ],\n    KeyboardShortcut.ClearRenderedFrames: [\n        [[\"shift\"], \"<backslash>\"]\n    ],\n    KeyboardShortcut.ResetInitialMemory: [\n        [[], \"<bracket-right>\"]\n    ],\n    KeyboardShortcut.ResetMemory: [\n        [[], \"<bracket-left>\"]\n    ],\n    \n    KeyboardShortcut.PlayRendered: [\n        [[\"shift\"], \"<space>\"],\n        #[[\"shift\"], glfw.KEY_K]\n    ],\n    KeyboardShortcut.PlayPreview: [\n        [[], \"<space>\"],\n        #[[], glfw.KEY_K]\n    ],\n    KeyboardShortcut.PlayToEnd: [\n        [[], \"e\"]\n    ],\n    KeyboardShortcut.Echo: [\n        [[\"shift\"], \"e\"]\n    ],\n    KeyboardShortcut.EnableAudio: [\n        [[], \".\"]\n    ],\n\n    KeyboardShortcut.ReloadSource: [\n        [[], \"<enter>\"],\n    ],\n    KeyboardShortcut.RestartApp: [\n        [[\"cmd\"], \"r\"]\n    ],\n    KeyboardShortcut.Quit: [\n        [[], \"q\"]\n    ],\n\n    KeyboardShortcut.Release: [\n        [[], \"r\"],\n    ],\n    KeyboardShortcut.Build: [\n        [[], \"b\"],\n    ],\n    KeyboardShortcut.RenderAll: [\n        [[], \"a\"],\n    ],\n    KeyboardShortcut.RenderAllAndPlay: [\n        [[\"shift\"], \"a\"],\n    ],\n    KeyboardShortcut.RenderAllAndRelease: [\n        [[\"shift\", \"cmd\"], \"a\"],\n    ],\n    KeyboardShortcut.RenderDirectory: [\n        [[\"shift\", \"cmd\", \"alt\"], \"a\"],\n    ],\n    KeyboardShortcut.RenderOne: [\n        [[\"cmd\"], \"a\"],\n    ],\n    KeyboardShortcut.RenderFrom: [\n        [[\"alt\"], \"a\"],\n    ],\n    KeyboardShortcut.RenderWorkarea: [\n        [[], \"w\"]\n    ],\n    KeyboardShortcut.ToggleMultiplex: [\n        [[], \"m\"]\n    ],\n\n    KeyboardShortcut.SetWorkareaIn: [\n        [[\"cmd\"], \"i\"]\n    ],\n    KeyboardShortcut.SetWorkareaOut: [\n        [[\"cmd\"], \"o\"]\n    ],\n\n    KeyboardShortcut.JumpPrev: [\n        [[], \"<up>\"],\n        [[], \"i\"]\n    ],\n    KeyboardShortcut.JumpNext: [\n        [[], \"<down>\"],\n        [[], \"k\"]\n    ],\n    KeyboardShortcut.JumpHome: [\n        [[], \"<home>\"],\n        [[\"shift\"], \"h\"]\n    ],\n    KeyboardShortcut.JumpEnd: [\n        [[], \"<end>\"]\n    ],\n    KeyboardShortcut.JumpStoryboard: [\n        [[\"cmd\"], \"<home>\"]\n    ],\n\n    KeyboardShortcut.OverlayInfo: [\n        [[], \"/\"]\n    ],\n    KeyboardShortcut.OverlayTimeline: [\n        [[\"cmd\"], \"t\"]\n    ],\n    KeyboardShortcut.OverlayRendered: [\n        [[], \"'\"],\n        [[], \",\"],\n    ],\n    KeyboardShortcut.OverlayRecording: [\n        [[], \"<tab>\"],\n    ],\n\n    KeyboardShortcut.ToggleTimeViewer: [\n        [[], \"v\"],\n    ],\n    KeyboardShortcut.ToggleUI: [\n        [[\"shift\"], \"u\"],\n    ],\n    KeyboardShortcut.ToggleXray: [\n        [[], \"x\"],\n    ],\n    KeyboardShortcut.ToggleGrid: [\n        [[], \"g\"],\n    ],\n\n    KeyboardShortcut.CycleVersionsForward: [\n        [[\"shift\"], \"v\"],\n        [[\"shift\"], \"<up>\"],\n    ],\n\n    KeyboardShortcut.CycleVersionsBack: [\n        [[\"shift\"], \"<down>\"],\n    ],\n\n    KeyboardShortcut.PreviewScaleUp: [\n        [[], \"=\"]\n    ],\n    KeyboardShortcut.PreviewScaleDown: [\n        [[], \"-\"]\n    ],\n    KeyboardShortcut.PreviewScaleMin: [\n        [[\"cmd\"], \"-\"]\n    ],\n    KeyboardShortcut.PreviewScaleMax: [\n        [[\"cmd\"], \"=\"]\n    ],\n    KeyboardShortcut.PreviewScaleDefault: [\n        [[\"cmd\"], \"0\"]\n    ],\n\n    KeyboardShortcut.ViewerPlaybackSpeedDecrease: [\n        [[\"shift\"], \"-\"]\n    ],\n    KeyboardShortcut.ViewerPlaybackSpeedIncrease: [\n        [[\"shift\"], \"=\"]\n    ],\n    # KeyboardShortcut.ViewerPlaybackSpeedReset: [\n    #     [[\"shift\"], \"0\"]\n    # ],\n\n    KeyboardShortcut.WindowOpacityDown: [\n        [[\"cmd\", \"shift\"], \"<down>\"]\n    ],\n    KeyboardShortcut.WindowOpacityUp: [\n        [[\"cmd\", \"shift\"], \"<up>\"]\n    ],\n    KeyboardShortcut.WindowOpacityMin: [\n        [[\"cmd\", \"shift\", \"alt\"], \"<down>\"],\n    ],\n    KeyboardShortcut.WindowOpacityMax: [\n        [[\"cmd\", \"shift\", \"alt\"], \"<up>\"]\n    ],\n\n\n\n    KeyboardShortcut.JumpToFrameFunctionDef: [\n        [[\"cmd\"], \"f\"],\n    ],\n    KeyboardShortcut.OpenInEditor: [\n        [[], \"o\"]\n    ],\n    KeyboardShortcut.ShowInFinder: [\n        [[], \"s\"]\n    ],\n\n    KeyboardShortcut.ViewerSoloNone: [\n        [[\"shift\"], \"np0\"],\n        [[\"shift\"], \"0\"]\n    ],\n    KeyboardShortcut.ViewerSoloNext: [\n        [[\"cmd\"], \"<right>\"]\n    ],\n    KeyboardShortcut.ViewerSoloPrev: [\n        [[\"cmd\"], \"<left>\"]\n    ],\n    KeyboardShortcut.ViewerSoloFirst: [\n        [[\"cmd\"], \"<up>\"]\n    ],\n    KeyboardShortcut.ViewerSoloLast: [\n        [[\"cmd\"], \"<down>\"]\n    ],\n    KeyboardShortcut.ViewerSolo1: [\n        [[\"shift\"], \"np1\"],\n        [[\"shift\"], \"1\"]\n    ],\n    KeyboardShortcut.ViewerSolo2: [\n        [[\"shift\"], \"np2\"],\n        [[\"shift\"], \"2\"]\n    ],\n    KeyboardShortcut.ViewerSolo3: [\n        [[\"shift\"], \"np3\"],\n        [[\"shift\"], \"3\"]\n    ],\n    KeyboardShortcut.ViewerSolo4: [\n        [[\"shift\"], \"np4\"],\n        [[\"shift\"], \"4\"]\n    ],\n    KeyboardShortcut.ViewerSolo5: [\n        [[\"shift\"], \"np5\"],\n        [[\"shift\"], \"5\"]\n    ],\n    KeyboardShortcut.ViewerSolo6: [\n        [[\"shift\"], \"np6\"],\n        [[\"shift\"], \"6\"]\n    ],\n    KeyboardShortcut.ViewerSolo7: [\n        [[\"shift\"], \"np7\"],\n        [[\"shift\"], \"7\"]\n    ],\n    KeyboardShortcut.ViewerSolo8: [\n        [[\"shift\"], \"np8\"],\n        [[\"shift\"], \"8\"]\n    ],\n    KeyboardShortcut.ViewerSolo9: [\n        [[\"shift\"], \"np9\"],\n        [[\"shift\"], \"9\"]\n    ],\n\n    KeyboardShortcut.PrintApproxFPS: [\n        [[], \"f\"],\n    ],\n\n    KeyboardShortcut.ViewerSampleFrames1: [\n        [[\"cmd\"], \"np1\"],\n        [[\"cmd\"], \"1\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames2: [\n        [[\"cmd\"], \"np2\"],\n        [[\"cmd\"], \"2\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames3: [\n        [[\"cmd\"], \"np3\"],\n        [[\"cmd\"], \"3\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames4: [\n        [[\"cmd\"], \"np4\"],\n        [[\"cmd\"], \"4\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames5: [\n        [[\"cmd\"], \"np5\"],\n        [[\"cmd\"], \"5\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames6: [\n        [[\"cmd\"], \"np6\"],\n        [[\"cmd\"], \"6\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames7: [\n        [[\"cmd\"], \"np7\"],\n        [[\"cmd\"], \"7\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames8: [\n        [[\"cmd\"], \"np8\"],\n        [[\"cmd\"], \"8\"]\n    ],\n    KeyboardShortcut.ViewerSampleFrames9: [\n        [[\"cmd\"], \"np9\"],\n        [[\"cmd\"], \"9\"]\n    ],\n\n\n    KeyboardShortcut.ViewerNumberedAction1: [\n        [[], \"np1\"],\n        [[], \"1\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction2: [\n        [[], \"np2\"],\n        [[], \"2\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction3: [\n        [[], \"np3\"],\n        [[], \"3\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction4: [\n        [[], \"np4\"],\n        [[], \"4\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction5: [\n        [[], \"np5\"],\n        [[], \"5\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction6: [\n        [[], \"np6\"],\n        [[], \"6\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction7: [\n        [[], \"np7\"],\n        [[], \"7\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction8: [\n        [[], \"np8\"],\n        [[], \"8\"]\n    ],\n    KeyboardShortcut.ViewerNumberedAction9: [\n        [[], \"np9\"],\n        [[], \"9\"]\n    ],\n\n    KeyboardShortcut.ToggleCapturing: [\n        [[\"shift\"], \"c\"]\n    ],\n    KeyboardShortcut.CaptureOnce: [\n        [[\"cmd\", \"shift\"], \"c\"]\n    ],\n\n    KeyboardShortcut.CopySVGToClipboard: [\n        [[\"cmd\"], \"c\"]\n    ],\n    KeyboardShortcut.TogglePrintResult: [\n        [[\"shift\"], \"p\"]\n    ],\n    KeyboardShortcut.PrintResultOnce: [\n        [[], \"p\"]\n    ],\n\n    KeyboardShortcut.LoadNextInDirectory: [\n        [[\"cmd\", \"alt\"], \"<right>\"],\n        [[], \"<page-down>\"],\n        [[], \"u\"],\n    ],\n    KeyboardShortcut.LoadPrevInDirectory: [\n        [[\"cmd\", \"alt\"], \"<left>\"],\n        [[], \"<page-up>\"],\n        [[], \"y\"],\n    ],\n\n    KeyboardShortcut.TestDirectory: [\n        [[\"shift\"], \"t\"]\n    ],\n\n    KeyboardShortcut.MIDIControllersPersist: [\n        [[\"cmd\"], \"m\"],\n    ],\n    KeyboardShortcut.MIDIControllersClear: [\n        [[\"alt\"], \"m\"],\n    ],\n    KeyboardShortcut.MIDIControllersReset: [\n        [[\"shift\"], \"m\"],\n    ]\n}\n\ndef shortcuts_keyed():\n    keyed = {}\n    for k, v in SHORTCUTS.items():\n        modded = []\n        for mods, symbol in v:\n            modded.append([[symbol_to_glfw(s) for s in mods], symbol_to_glfw(symbol), symbol])\n            if \"cmd\" in mods:\n                mod_mods = [\"ctrl\" if mod == \"cmd\" else mod for mod in mods]\n                modded.append([[symbol_to_glfw(s) for s in mod_mods], symbol_to_glfw(symbol), symbol])\n        keyed[k] = modded\n    return keyed\n\nif __name__ == \"__main__\":\n    from subprocess import Popen, PIPE\n\n    out = \"\"\"\nCheatsheet\n==========\n\n\"\"\"\n\n    for shortcut, key_combos in list(SHORTCUTS.items())[:]:\n        name = str(shortcut).split(\".\")[-1]\n        explain = KeyboardShortcutExplainers.get(shortcut)\n        if not explain:\n            continue\n        out += f\"* **{name}** (`\\\"{KeyboardShortcut(shortcut).value}\\\"`)\\n\"\n        out += (\"\\n  \" + explain + \"\\n\\n\")\n        for mods, key in key_combos:\n            kc = \" \".join([*mods, key])\n            out += (\"  * \" + f\"`{kc}`\\n\")\n        out += \"\\n\\n\"\n    \n    print(out)\n\n    process = Popen('pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=PIPE)\n    process.communicate(out.encode(\"utf-8\"))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/reader.py",
    "content": "import re, os\nfrom pathlib import Path\nfrom runpy import run_path\nfrom functools import partial\nfrom tempfile import NamedTemporaryFile\nfrom subprocess import run\nfrom typing import Union\nfrom coldtype.blender import BlenderIO\n\nfrom coldtype.renderable import renderable, ColdtypeCeaseConfigException, runnable, animation, aframe, ui\n\nfrom coldtype.renderer.utils import Watchable, on_linux, on_mac, on_windows\nfrom coldtype.renderer.config import ColdtypeConfig, ConfigOption\nfrom coldtype.helpers import sibling\nfrom coldtype.text.reader import ALL_FONT_DIRS\nfrom coldtype.geometry.rect import Rect\nfrom coldtype.timing import Timeline\nfrom coldtype.timing.viewer import timeViewer\nfrom coldtype.renderer.ui import uiView\n\ntry:\n    from docutils.core import publish_doctree\nexcept ImportError:\n    publish_doctree = None\n\n\ndef apply_syntax_mods(filepath, source_code, renderer=None, source_reader=None):\n    codepath_offset = 0\n\n    def inline_arg(p):\n        path = Path(inline.strip()).expanduser().absolute()\n        if renderer:\n            if path not in renderer.watchee_paths():\n                renderer.add_watchee([Watchable.Source, path, None])\n        src = path.read_text()\n        codepath_offset = len(src.split(\"\\n\"))\n        return src\n    \n    def inline_other(x):\n        cwd = Path.cwd()\n        m = x.group(1)\n        if m.startswith(\".\"):\n            path = filepath.parent / (m[1:] + \".py\")\n        else:\n            path = Path(cwd / (m.replace(\".\", \"/\")+\".py\"))\n        if renderer:\n            if path not in renderer.watchee_paths():\n                renderer.add_watchee([Watchable.Source, path, None])\n        src = path.read_text()\n        codepath_offset = len(src.split(\"\\n\"))\n        return src\n\n    if source_reader and source_reader.config.inline_files:\n        for inline in source_reader.config.inline_files:\n            source_code = inline_arg(inline) + \"\\n\" + source_code\n\n    source_code = re.sub(r\"from ([^\\s]+) import \\* \\#INLINE\", inline_other, source_code)\n    #source_code = re.sub(r\"([(),\\-]{1,})([0-9]{1,}\\+)?[0-9]{1,}\\.?[0-9]{0,}j\", imperial, source_code)\n    #source_code = re.sub(r\"ℛ\", \"return \", source_code)\n    #source_code = re.sub(r\"\\-\\.[A-Za-z_ƒ]+([A-Za-z_0-9]+)?\\(\", \".nerp(\", source_code)\n    #source_code = re.sub(r\"([\\s]+)Ƨ\\(\", r\"\\1nerp(\", source_code)\n    #source_code = re.sub(r\"λ[\\s]{0,3}\\.\", \"lambda p: p.\", source_code)\n    #source_code = re.sub(r\"λ\\s?([/\\.\\@]{1,2})\", r\"lambda xxx: xxx\\1\", source_code)\n    #source_code = re.sub(r\"ι,λ\\.\", \"lambda ι, λ__: λ__.\", source_code)\n    source_code = re.sub(r\"λ(\\s+)?\\.\", \"lambda λ__: λ__.\", source_code)\n    source_code = re.sub(r\"λ__\", \"λ\", source_code)\n    source_code = re.sub(r\"ºº\", \"__\", source_code)\n    #source_code = re.sub(r\"_º\", \"__\", source_code)\n    source_code\n    #source_code = re.sub(r\"λ\", \"lambda \", source_code)\n    #source_code = re.sub(r\"ßDPS\\(([^\\)]+)\\)\", r\"(ß:=P(\\1))\", source_code)\n\n    source_code = re.sub(r\"\\.___([^_\\(]+)\\(\", \".noop(\", source_code)\n\n    if source_reader and source_reader.config.src_macros:\n        for pattern, src_macro in source_reader.config.src_macros.items():\n            if re.match(pattern, str(filepath)):\n               source_code = src_macro(filepath, source_code)\n\n    # while \"nerp(\" in source_code:\n    #     start = source_code.find(\"nerp(\")\n    #     end = -1\n    #     i = 5\n    #     depth = 1\n    #     c = source_code[start+i]\n    #     while depth > 0 and c:\n    #         #print(c, depth)\n    #         if c == \"(\":\n    #             depth += 1\n    #         elif c== \")\":\n    #             depth -= 1\n    #         i += 1\n    #         c = source_code[start+i]\n    #     end = start+i\n    #     source_code = source_code[:start] + \"noop()\" + source_code[end:]\n    #     #print(start, end)\n    \n    if renderer:\n        renderer._codepath_offset = codepath_offset\n    \n    return source_code, codepath_offset\n\n\ndef read_source_to_tempfile(filepath:Path,\n    codepath:Path=None,\n    renderer=None,\n    source_reader=None,\n    ):\n    data_out = {}\n\n    if filepath.suffix == \".rst\":\n        if not publish_doctree:\n            raise Exception(\"pip install docutils\")\n        doctree = publish_doctree(filepath.read_text())\n        def is_code_block(node):\n            if node.tagname == \"literal_block\":\n                classes = node.attributes[\"classes\"]\n                # ok the \"ruby\" here is an ugly hack but it's so I can hide certain code\n                # from a printed rst\n                if \"code\" in classes and (\"python\" in classes or \"ruby\" in classes):\n                    return True\n            return False\n        code_blocks = doctree.traverse(condition=is_code_block)\n        source_code = [block.astext() for block in code_blocks]\n        if codepath and codepath.exists():\n            codepath.unlink()\n        with NamedTemporaryFile(\"w\", prefix=\"coldtype_rst_src\", suffix=\".py\", delete=False) as tf:\n            tf.write(\"\\n\".join(source_code))\n            codepath = Path(tf.name)\n    \n    elif filepath.suffix == \".md\":\n        from lxml.html import fragment_fromstring, tostring\n        try:\n            import markdown\n        except ImportError:\n            raise Exception(\"pip install markdown\")\n        try:\n            import frontmatter\n        except ImportError:\n            frontmatter = None\n            print(\"> pip install python-frontmatter\")\n        md = markdown.markdown(filepath.read_text(),\n            extensions=[\"fenced_code\"])\n        fm = frontmatter.loads(filepath.read_text())\n        data_out[\"frontmatter\"] = fm\n        frag = fragment_fromstring(md, create_parent=True)\n        blocks = []\n        for python in frag.findall(\"./pre/code[@class='language-python']\"):\n            blocks.append(python.text)\n        source_code = \"\\n\".join(blocks)\n        if codepath and codepath.exists():\n            codepath.unlink()\n        with NamedTemporaryFile(\"w\", prefix=\"coldtype_md_src\", suffix=\".py\", delete=False) as tf:\n            mod_src, _ = apply_syntax_mods(filepath, source_code, renderer, source_reader)\n            tf.write(mod_src)\n            codepath = Path(tf.name)\n    \n    elif filepath.suffix == \".py\":\n        source_code, _ = apply_syntax_mods(filepath, filepath.read_text(), renderer, source_reader)\n        if codepath and codepath.exists():\n            codepath.unlink()\n        with NamedTemporaryFile(\"w\", prefix=f\"coldtype__{filepath.stem}_\", suffix=\".py\", delete=False) as tf:\n            tf.write(source_code)\n            codepath = Path(tf.name)\n    else:\n        raise Exception(\"No code found in file!\")\n    \n    return codepath, data_out\n\n\ndef run_source(filepath, codepath, inputs, memory, config, **kwargs):\n    #print(\">>>>>>>>>>>>>>>>>>>>>>>>>>>\", str(codepath))\n    return run_path(str(codepath), init_globals={\n        \"__COLDTYPE__\": True,\n        \"__FILE__\": filepath,\n        \"__inputs__\": inputs,\n        \"__config__\": config,\n        \"__memory__\": memory,\n        \"__as_config__\": False,\n        \"__ui__\": kwargs.get(\"ui\"),\n        \"__sibling__\": partial(sibling, filepath),\n        **kwargs})\n\n\ndef renderable_to_output_folder(filepath, renderable, override=None):\n    if override:\n        return Path(override).expanduser().resolve()\n    elif renderable.dst:\n        return renderable.dst / (renderable.custom_folder or renderable.folder(filepath))\n    else:\n        return (filepath.parent if filepath else Path(os.getcwd())) / \"renders\" / (renderable.custom_folder or renderable.folder(filepath))\n\n\ndef find_renderables(\n    filepath:Path,\n    codepath:Path,\n    program:dict,\n    output_folder_override=None,\n    blender_io=None,\n    args=None,\n    ):\n    all_rs = []\n    filtered_rs = []\n    \n    for k, v in program.items():\n        if (isinstance(v, renderable) or isinstance(v, runnable)) and not v.hidden:\n            if v.cond is not None:\n                if callable(v.cond) and not v.cond():\n                    continue\n                elif not v.cond:\n                    continue\n            \n            if v not in all_rs:\n                all_rs.append(v)\n        \n        elif k == \"RENDERABLES\":\n            for r in v:\n                all_rs.append(r)\n    \n    #all_rs = sorted(all_rs, key=lambda r: r.layer)\n    all_rs = sorted(all_rs, key=lambda r: r.sort)\n\n    for r in all_rs:\n        r.filepath = filepath\n        r.codepath = codepath\n        r.output_folder = renderable_to_output_folder(\n            filepath, r, override=output_folder_override)\n\n        if hasattr(r, \"blender_io\"):\n            r.blender_io = blender_io\n\n        r.post_read()\n\n    if any([r.solo for r in all_rs]):\n        filtered_rs = [r for r in all_rs if r.solo]\n    else:\n        filtered_rs = all_rs\n    \n    try:\n        filtered_rs = [r for r in filtered_rs if not r.mute]\n    except AttributeError:\n        pass\n        \n    return filtered_rs\n\n\ndef filter_renderables(filtered_rs,\n    viewer_solos=[],\n    function_filters=[],\n    class_filters=[],\n    previewing=False,\n    ):\n        \n    if function_filters:\n        function_patterns = function_filters\n        matches = []\n        for r in filtered_rs:\n            for fp in function_patterns:\n                try:\n                    if re.search(fp, r.name) and r not in matches:\n                        matches.append(r)\n                except re.error as e:\n                    print(\"ff regex compilation error\", e)\n        if len(matches) > 0:\n            filtered_rs = matches\n    \n    if class_filters:\n        matches = []\n        for r in filtered_rs:\n            for cf in class_filters:\n                try:\n                    if re.match(cf, r.__class__.__name__) and r not in matches:\n                        matches.append(r)\n                except re.error as e:\n                    print(\"cf regex compilation error\", e)\n        filtered_rs = matches\n    \n    if previewing:\n        matches = []\n        for r in filtered_rs:\n            if not r.render_only:\n                matches.append(r)\n        filtered_rs = matches\n    \n    if len(viewer_solos) > 0:\n        viewer_solos = [vs%len(filtered_rs) for vs in viewer_solos]\n\n        solos = []\n        for i, r in enumerate(filtered_rs):\n            if i in viewer_solos:\n                solos.append(r)\n        filtered_rs = solos\n    \n    return filtered_rs\n\n\nclass SourceReader():\n    def __init__(self,\n        filepath:Path=None,\n        code:str=None,\n        renderer=None,\n        runner:str=\"default\",\n        inputs=None,\n        cli_args=None,\n        use_blender=False,\n        ):\n        self.filepath = None\n        self.codepath = None\n        self.data_out = None\n        self.dirpath = None\n        self.should_unlink = False\n        self.program = None\n        self.candidates = None\n        self.renderer = renderer\n        self.runner = runner\n        self.inputs = inputs or []\n        self.use_blender = use_blender\n\n        self.config = None\n        self.read_configs(cli_args, filepath)\n\n        if filepath or code:\n            self.reset_filepath(filepath, code)\n    \n    def print_docstring(self):\n        import ast\n        tree = ast.parse(self.filepath.read_text())\n        docstring = ast.get_docstring(tree)\n        if docstring:\n            print(\"\")\n            print(\"📓 Doc:\", docstring)\n            print(\"\")\n        if docstring:\n            return True\n    \n    @staticmethod\n    def Script(name):\n        root = Path(__file__).parent.parent\n        if name.startswith(\"script:\"):\n            script = root / (name.replace(\":\", \"s/\") + \".py\")\n            if script.exists():\n                return script\n        return False\n    \n    @staticmethod\n    def Demos() -> dict[str,Path]:\n        return {p.stem:p for p in (Path(__file__).parent.parent / \"demo\").glob(\"*.py\")}\n    \n    @staticmethod\n    def Tools() -> dict[str,Path]:\n        return {p.stem:p for p in sorted((Path(__file__).parent.parent / \"tools\").glob(\"*.py\"))}\n\n    @staticmethod\n    def Demo(name):\n        root = Path(__file__).parent.parent\n        demos = SourceReader.Demos()\n        tools = SourceReader.Tools()\n        \n        if not name: return root / \"demo/demo.py\"\n        elif name in demos.keys(): return demos[name]\n        elif name in tools.keys(): return tools[name]\n        else: return name\n    \n    @staticmethod\n    def LoadDemo(demoname, **inputs):\n        return SourceReader(\n            SourceReader.Demo(demoname),\n            inputs=inputs).renderables()\n    \n    @staticmethod\n    def FrameResult(name, frame, inputs={}, renderer_state=None):\n        filepath = SourceReader.Demo(name)\n        sr = SourceReader(filepath, inputs=inputs)\n        sr.unlink()\n        return sr.frame_results(frame,\n            renderer_state=renderer_state)\n    \n    def read_configs(self, args, filepath):\n        embedded = Path(__file__).parent / \".coldtype.py\"\n        proj = Path(\".coldtype.py\")\n        user = Path(\"~/.coldtype.py\").expanduser()\n        env = os.environ\n        \n        if on_windows():\n            _os = Path(\".coldtype.win.py\")\n        elif on_mac():\n            _os = Path(\".coldtype.mac.py\")\n        elif on_linux():\n            _os = Path(\".coldtype.lin.py\")\n\n        files = [embedded, user, proj, _os]\n\n        if args and hasattr(args, \"config\") and args.config:\n            if args.config == \"0\":\n                files = []\n            else:\n                pass\n                #if args.config == \".\":\n                #    args.config = args.file\n                #files.append(Path(args.config).expanduser())\n\n        if filepath:\n            fp = Path(filepath).expanduser()\n            if fp.exists() and not fp.is_dir():\n                if \"# .coldtype\" in fp.read_text():\n                    files.append(fp)\n        \n        if args and args.file and args.config != \"0\":\n            fp = Path(args.file).expanduser()\n            if fp.exists() and not fp.is_dir():\n                if \"# .coldtype\" in fp.read_text():\n                    files.append(fp)\n\n        py_config = {}\n        for p in files:\n            if p.exists() and p.suffix == \".py\":\n                try:\n                    py_config = run_path(str(p), init_globals={\n                        \"__FILE__\": p,\n                        \"__inputs__\": self.inputs,\n                        \"__memory__\": {},\n                        \"__as_config__\": True,\n                        \"__sibling__\": partial(sibling, p),\n                    })\n                    \n                    self.config = ColdtypeConfig(py_config, self.config if self.config else None, args)\n\n                    for f in self.config.font_dirs:\n                        if f not in ALL_FONT_DIRS:\n                            ALL_FONT_DIRS.insert(1, f)\n                except Exception as e:\n                    if isinstance(e, ColdtypeCeaseConfigException):\n                        pass\n                    else:\n                        print(\"Failed to load config\", p)\n                        print(\"Exception:\", e)\n                        pass\n        \n        if len(files) == 0 or not self.config:\n            self.config = ColdtypeConfig({}, None, args)\n        \n        # Simple overrides from environment variables\n\n        for co in ConfigOption:\n            if len(co.value) == 4:\n                prop, _, _, cli_mod = co.value\n                if prop.upper() in env:\n                    setattr(self.config, prop, cli_mod(env[prop.upper()]))\n            \n            if len(co.value) == 3:\n                prop, _, _ = co.value\n                if prop.upper() in env:\n                    setattr(self.config, prop, env[prop.upper()])\n        \n        self.config.args = args\n        #print(self.config.values())\n    \n    def find_sources(self, dirpath, recursive=False):\n        prefix = \"**/\" if recursive else \"\"\n        globber = f\"{prefix}*.py\"\n        if self.filepath:\n            globber = f\"{prefix}*\" + self.filepath.suffix\n        sources = list(dirpath.glob(globber))\n        #sources.extend(list(dirpath.glob(\"*.md\")))\n        #print(\">\", sources)\n\n        valid_sources = []\n        for p in sources:\n            ignore = p.name.startswith(\"_\") or p.name.startswith(\".\")\n            if not ignore or p.name.startswith(\"__init\"):\n                valid_sources.append(p)\n            valid_sources = sorted(valid_sources, key=lambda p: str(p.relative_to(dirpath)))\n            valid_sources = sorted(valid_sources, key=lambda p: str(p.relative_to(dirpath)).count(\"/\") > 0)\n\n        #for p in valid_sources:\n        #    print(p.relative_to(dirpath))\n\n        return valid_sources\n    \n    def blender_io(self):\n        #if not self.use_blender and not self.config.blender_watch:\n        #    return None\n\n        bf = self.config.blender_file\n        if not bf:\n            bf = self.filepath.parent / \"blends\" / (self.filepath.stem + \".blend\")\n        return BlenderIO(bf)\n    \n    def normalize_filepath(self, filepath:Path, dirindex=0):\n        if isinstance(filepath, str):\n            filepath = Path(filepath)\n        \n        filepath = filepath.expanduser().resolve()\n\n        if filepath.is_dir():\n            self.dirpath = filepath\n            #filepath = sorted(list(filepath.glob(\"*.py\")), key=lambda p: p.stem)[dirindex]\n            filepath = self.find_sources(self.dirpath)[dirindex]\n        else:\n            if self.dirpath is None:\n                self.dirpath = filepath.parent\n\n        if not filepath.exists():\n            with_py = (filepath.parent / (filepath.stem + \".py\"))\n            if with_py.exists():\n                filepath = with_py\n        if filepath.suffix not in [\".md\", \".rst\", \".py\"]:\n            raise Exception(\"Coldtype can only read .py, .md, and .rst files\")\n        \n        return filepath\n    \n    def adjacents(self):\n        if self.dirpath:\n            return self.find_sources(self.dirpath)\n    \n    def reset_filepath(self, filepath:Path, code:str=None, reload:bool=True, dirdirection=0):\n        self.unlink()\n        self.should_unlink = False\n\n        dirindex = 0\n        if self.dirpath and dirdirection != 0:\n            # find index of existing filepath, increment by dirdirection?\n            pys = self.find_sources(self.dirpath)\n            #pys = sorted(list(self.dirpath.glob(\"*.py\")), key=lambda p: p.stem)\n            curr = pys.index(self.filepath)\n            adj = (curr + dirdirection) % len(pys)\n            #print(curr, adj)\n            filepath = pys[adj]\n        \n        if filepath:\n            self.filepath = self.normalize_filepath(filepath, dirindex)\n            if not self.filepath.exists():\n                raise Exception(\"Source file does not exist\")\n        else:\n            if code:\n                self.write_code_to_tmpfile(code)\n            else:\n                raise Exception(\"Must provide filepath or code\")\n            \n        if reload:\n            self.reload()\n        \n        return self.filepath\n    \n    def find_versions(self, initial, restart_count):\n        source_code = self.codepath.read_text()\n        versions = None\n\n        versions_file = self.filepath.parent / (self.filepath.stem + \"_versions.py\")\n\n        if versions_file.exists():\n            sr = SourceReader(versions_file)\n            versions = sr.program[\"VERSIONS\"]\n\n        if re.findall(r\"VERSIONS\\s?=\", source_code):\n            try:\n                versions = re.findall(r\"VERSIONS\\s?=.*\\#\\/VERSIONS\", source_code, re.DOTALL)[0]\n            except IndexError:\n                return None, None\n            \n            versions = eval(re.sub(r\"VERSIONS\\s?=\", \"\", versions))\n            \n            if not isinstance(versions, dict):\n                if not isinstance(versions[0], dict):\n                    versions = {v:dict(idx=idx) for idx, v in enumerate(versions)}\n                else:\n                    versions = {str(idx):v for idx, v in enumerate(versions)}\n        \n        if versions:\n            versions = {k:{**v, **dict(key=k)} for k,v in versions.items()}\n            versions = list(versions.values())\n\n            vi = self.renderer.source_reader.config.version_index\n\n            if initial and restart_count == 0:\n                if len(self.inputs) > 0:\n                    for vidx, v in enumerate(versions):\n                        if self.inputs[0] == v[\"key\"]:\n                            vi = vidx\n            \n            if vi is None:\n                vi = 0\n            \n            self.renderer.source_reader.config.version_index = vi\n            \n            version = versions[vi]\n            self.renderer.state.versions = versions\n\n            source_code = source_code.replace(\"ƒVERSION\", str(version[\"key\"]))\n            self.codepath.write_text(source_code)\n\n            return version, versions\n        \n        return None, None\n\n    \n    def reload(self,\n        code:str=None,\n        output_folder_override=None,\n        initial=False,\n        restart_count=0,\n        ui={},\n        ):\n        if code:\n            self.write_code_to_tmpfile(code)\n        \n        self.codepath, self.data_out = read_source_to_tempfile(self.filepath, self.codepath, renderer=self.renderer, source_reader=self)\n        \n        memory = {}\n        if self.renderer:\n            memory = self.renderer.state.memory\n\n        version, versions = self.find_versions(initial, restart_count)\n\n        blendering = bool(self.use_blender or self.config.blender_watch)\n\n        self.program = run_source(\n            self.filepath,\n            self.codepath,\n            self.inputs,\n            memory,\n            self.config,\n            __RUNNER__=self.runner,\n            __BLENDER__=self.blender_io(),\n            __BLENDERING__=blendering,\n            __VERSION__=version,\n            __VERSIONS__=versions,\n            ui=ui)\n        \n        self.candidates = self.renderable_candidates(\n            output_folder_override, self.config.add_time_viewers, self.config.add_ui)\n    \n    def write_code_to_tmpfile(self, code):\n        if self.filepath:\n            self.filepath.unlink()\n\n        with NamedTemporaryFile(\"w\", prefix=\"coldtype_\", suffix=\".py\", delete=False) as tf:\n            tf.write(code)\n        \n        self.filepath = Path(tf.name)\n        self.should_unlink = True\n    \n    def renderable_candidates(self,\n        output_folder_override=None,\n        add_time_viewers=False,\n        add_ui=False,\n        ):\n        candidates = find_renderables(\n            self.filepath,\n            self.codepath,\n            self.program,\n            output_folder_override,\n            blender_io=self.blender_io(),\n            args=self.renderer.args if self.renderer else None)\n        \n        if len(candidates) == 0:\n            candidates.append(Programs.Blank())\n        \n        widest = None\n        if add_ui:\n            for c in candidates:\n                if not widest and hasattr(c, \"rect\"):\n                    widest = c\n                elif hasattr(c, \"rect\") and c.rect.w > widest.rect.w:\n                    widest = c\n\n            if widest:\n                candidates.insert(0, uiView(widest))\n        \n        if add_time_viewers:\n            out = []\n            for c in candidates:\n                if (isinstance(c, animation) and\n                    not isinstance(c, aframe) and\n                    not isinstance(c, ui)\n                    ):\n                    out.extend(timeViewer(c))\n                out.append(c)\n            return out\n        else:\n            return candidates\n    \n    def renderables(self,\n        viewer_solos=[],\n        function_filters=[],\n        class_filters=[],\n        previewing=False,\n        ):\n        if not function_filters and self.config.function_filters:\n            function_filters = self.config.function_filters\n        \n        return filter_renderables(self.candidates,\n            viewer_solos=viewer_solos,\n            function_filters=function_filters,\n            class_filters=class_filters,\n            previewing=previewing)\n    \n    def frame_results(self, frame, class_filters=[], renderer_state=None):\n        rs = self.renderables(class_filters=class_filters)\n        res = []\n        for r in rs:\n            if isinstance(r, runnable):\n                res.append([r, None])\n                continue\n            \n            ps = r.passes(None, renderer_state, indices=[frame])\n            for p in ps:\n                res.append([r, r.run_normal(p, renderer_state=renderer_state)])\n        return res\n    \n    def unlink(self):\n        if self.should_unlink and self.filepath:\n            if self.filepath.exists():\n                self.filepath.unlink()\n        if self.codepath:\n            if self.codepath.exists():\n                self.codepath.unlink()\n        return self\n\n\nclass Programs():\n    @staticmethod\n    def Demo():\n        return SourceReader.LoadDemo(\"demo\")[0]\n    \n    @staticmethod\n    def Blank():\n        return SourceReader.LoadDemo(\"blank\")[0]\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/state.py",
    "content": "import json, inspect\nfrom pathlib import Path\nfrom coldtype.geometry import Point\nfrom coldtype.renderable import Action\n\n\nclass RendererStateEncoder(json.JSONEncoder):\n    def default(self, o):\n        return {\n            \"controller_values\": o.controller_values\n        }\n\n\nclass RendererState():\n    def __init__(self, renderer):\n        self.renderer = renderer\n        self.previewing = False\n        self.preview_scale = 1\n        self.controller_values = {}\n        self.overlays = {}\n        self.frame_offset = 0\n        self.canvas = None\n        self._last_filepath = None\n        self.cv2caps = {}\n        self.inputs = []\n        \n        self.memory = None\n        self.memory_initial = None\n\n        self.versions = []\n        \n        self.playing = False\n\n        self.mouse_down = False\n        self.cursor = Point(0, 0)\n        self.cursor_history = []\n\n        for c in renderer.args.last_cursor.split(\";\"):\n            cp = Point([float(p) for p in c.split(\",\")])\n            self.cursor_history.append(cp)\n        \n        if len(self.cursor_history) > 0:\n            self.cursor = self.cursor_history[-1]\n\n        self.reset()\n    \n    def reset(self, ignore_current_state=False):\n        if self.filepath == self._last_filepath and not ignore_current_state:\n            return\n        \n        if self.filepath:\n            self._last_filepath = self.filepath\n            try:\n                deserial = json.loads(self.filepath.read_text())\n                cv = deserial.get(\"controller_values\")\n                if cv:\n                    self.controller_values = cv\n            except json.decoder.JSONDecodeError:\n                self.controller_values = {}\n            except FileNotFoundError:\n                self.controller_values = {}\n    \n    def clear(self):\n        if self.filepath:\n            self.filepath.write_text(\"\")\n        self.reset()\n    \n    @property\n    def filepath(self):\n        if self.renderer and self.renderer.source_reader.filepath:\n            return Path(str(self.renderer.source_reader.filepath).replace(\".py\", \"\") + \"_state.json\")\n        else:\n            return None\n    \n    @property\n    def midi(self):\n        return self.controller_values\n    \n    def persist(self):\n        if self.filepath:\n            print(\"Saving Controller State...\")\n            self.filepath.write_text(RendererStateEncoder().encode(self))\n        else:\n            print(\"No source; cannot persist state\")\n    \n    def record_cursor(self, pos):\n        self.cursor = pos.scale(1/self.preview_scale).round_to(1)\n        return self.cursor\n        #return Action.PreviewStoryboard\n    \n    def on_mouse_button(self, pos, btn, action, mods):\n        self.mouse_down = action\n\n        if action == 0:\n            if on_click := self.renderer.source_reader.program.get(\"on_click\"):\n                arg_count = len(inspect.signature(on_click).parameters)\n                args = [pos, btn, mods][:arg_count]\n                on_click(*args)\n\n        if not self.playing and action == 0:\n            for r in self.renderer.renderables(None):\n                if not hasattr(r, \"_stacked_rect\"):\n                    continue\n                sr = r._stacked_rect.flip(self.renderer.extent.h)\n                if Point(*pos).inside(sr):\n                    if hasattr(r, \"pointToFrame\"):\n                        fo = r.pointToFrame(Point(*pos))\n                        self.frame_offset = fo\n                        return Action.PreviewStoryboard\n            \n            p = self.record_cursor(pos)\n            #if self.cursor_history[-1] != p:\n            self.cursor_history.append(p)\n            return Action.PreviewStoryboard\n    \n    def on_mouse_move(self, pos):\n        if self.mouse_down:\n            for r in self.renderer.renderables(None):\n                sr = r._stacked_rect.flip(self.renderer.extent.h)\n                if Point(*pos).inside(sr):\n                    if hasattr(r, \"pointToFrame\"):\n                        fo = r.pointToFrame(Point(*pos))\n                        self.frame_offset = fo\n                        return Action.PreviewStoryboard\n\n        if self.playing:\n            self.record_cursor(pos)\n    \n    def mod_preview_scale(self, inc, absolute=0):\n        if absolute > 0:\n            ps = absolute\n        else:\n            ps = self.preview_scale + inc\n        self.preview_scale = max(0.1, min(5, ps))\n        return Action.PreviewStoryboardReload\n    \n    def toggle_overlay(self, overlay, force=None):\n        if force is not None:\n            v = force\n        else:\n            v = not self.overlays.get(overlay, False)\n        if not v:\n            if overlay in self.overlays:\n                del self.overlays[overlay]\n        else:\n            self.overlays[overlay] = True"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/ui.py",
    "content": "from collections import defaultdict\nfrom coldtype.renderable import renderable, ui, animation\nfrom coldtype.text.composer import StSt, Font, Rect, Point, Style\nfrom coldtype.timing.timeline import Timeline\nfrom coldtype.timing.midi import MidiTimeline\nfrom coldtype.runon.path import P\nfrom coldtype.color import bw, hsl\nfrom coldtype.renderer.keyboard import KeyboardShortcut, SHORTCUTS\nfrom functools import partial\n\ndef uiView(_renderable):\n    r = Rect(max(1080, _renderable.rect.w), 80)\n\n    shortcuts = [[\n        KeyboardShortcut.ShowInFinder,\n        KeyboardShortcut.RenderAll,\n        KeyboardShortcut.OpenInEditor,\n        KeyboardShortcut.Quit,\n    ]]\n\n    if isinstance(_renderable, animation):\n        r = Rect(r.w, r.h+80)\n        shortcuts.append([\n            KeyboardShortcut.PlayPreview,\n            KeyboardShortcut.Release,\n            KeyboardShortcut.ToggleTimeViewer,\n            KeyboardShortcut.ToggleUI,\n        ])\n\n    @renderable(r, bg=0, preview_only=1)\n    def _uiView(r):\n        rows = r.subdivide_with_leading(len(shortcuts), 2, \"N\")\n\n        def btn(ri, x):\n            ks:KeyboardShortcut = shortcuts[ri][x.i]\n            shortcut = SHORTCUTS[ks][0]\n            mods = \"+\".join(shortcut[0])\n            if mods:\n                keys = mods + \"+\" + shortcut[1]\n            else:\n                keys = shortcut[1]\n\n            return (P(\n                StSt(ks.name, Font.JBMono(), 24, wght=0.25).f(1),\n                StSt(keys, Font.JBMono(), 24, wght=1).f(1)\n                )\n                .stack(12)\n                .align(x.el.inset(14), \"W\")\n                .insert(0, P(x.el).f(0.2)))\n        \n        def row(x):\n            rs = x.el.subdivide_with_leading(4, 2, \"W\")\n            return P().enumerate(rs, partial(btn, x.i))\n\n        return P().enumerate(rows, row)\n\n    return _uiView"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/utils.py",
    "content": "import ast, hashlib\nfrom enum import Enum\n\nfrom coldtype.osutil import on_linux, on_mac, on_windows, System, play_sound\n\nclass Watchable(Enum):\n    Source = \"Source\"\n    Font = \"Font\"\n    Library = \"Library\"\n    Generic = \"Generic\"\n\n\nclass bcolors:\n    HEADER = '\\033[95m'\n    OKBLUE = '\\033[94m'\n    OKGREEN = '\\033[92m'\n    WARNING = '\\033[93m'\n    FAIL = '\\033[91m'\n    ENDC = '\\033[0m'\n    BOLD = '\\033[1m'\n    UNDERLINE = '\\033[4m'\n\n\ndef bc_print(which, *txt):\n    print(f\"{which}{' '.join(txt)}{bcolors.ENDC}\")\n\n\ndef bytesto(bytes):\n    r = float(bytes)\n    for i in range(2):\n        r = r / 1024\n    return(r)\n\n\ndef chunks(lst, n):\n    \"\"\"Yield successive n-sized chunks from lst.\"\"\"\n    for i in range(0, len(lst), n):\n        yield lst[i:i + n]\n\n\ndef file_and_line_to_def(filepath, lineno):\n    # https://julien.danjou.info/finding-definitions-from-a-source-file-and-a-line-number-in-python/\n    candidate = None\n    for item in ast.walk(ast.parse(filepath.read_text())):\n        if isinstance(item, (ast.FunctionDef, ast.AsyncFunctionDef, ast.ClassDef)):\n            if item.lineno > lineno:\n                continue\n            if candidate:\n                distance = lineno - item.lineno\n                if distance < (lineno - candidate.lineno):\n                    candidate = item\n            else:\n                candidate = item\n    if candidate:\n        return candidate.name\n\n\ndef path_hash(path):\n    return hashlib.sha1(str(path.resolve()).encode(\"UTF-8\")).hexdigest()[:10]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/__init__.py",
    "content": "import time, threading, sys\n\nfrom coldtype.renderer.config import ColdtypeConfig\nfrom coldtype.renderer.winman.passthrough import WinmanPassthrough\nfrom coldtype.renderer.winman.glfwskia import glfw, skia, WinmanGLFWSkia, WinmanGLFWSkiaBackground\nfrom coldtype.renderer.winman.audio import WinmanAudio\nfrom coldtype.renderer.winman.midi import MIDIWatcher, rtmidi\nfrom coldtype.renderer.winman.blender import WinmanBlender\nfrom coldtype.renderable import Action, Overlay\n\n\nlast_line = ''\nnew_line_event = threading.Event()\n\ndef monitor_stdin():\n    # https://stackoverflow.com/questions/27174736/how-to-read-most-recent-line-from-stdin-in-python\n    global last_line\n    global new_line_event\n\n    def keep_last_line():\n        global last_line, new_line_event\n        for line in sys.stdin:\n            last_line = line\n            new_line_event.set()\n\n    keep_last_line_thread = threading.Thread(target=keep_last_line)\n    keep_last_line_thread.daemon = True\n    keep_last_line_thread.start()\n\n\nclass Winmans():\n    def __init__(self, renderer, config:ColdtypeConfig):\n        self.renderer = renderer\n        self.config = config\n\n        self.pt = WinmanPassthrough()\n\n        self.glsk:WinmanGLFWSkia = None\n        self.midi:MIDIWatcher = None\n        self.b3d:WinmanBlender = None\n        self.audio:WinmanAudio = None\n\n        self.last_title = \"coldtype\"\n        self.last_time = -1\n        self.refresh_delay = self.config.refresh_delay\n        self.backoff_refresh_delay = self.refresh_delay\n\n        self.title_states = {\n            \"playing\": False,\n            \"rendered\": False,\n            \"audio\": False,\n        }\n\n        self.print_approx_fps = False\n\n        self.bg = False\n\n        if (config.args.is_subprocess\n            or config.args.all\n            or config.args.release\n            or config.args.build\n            or config.no_watch\n            ):\n            self.bg = True\n        \n        self.cron_start = 0\n        self.cron_interval = 0\n\n    def should_glfwskia(self):\n        return glfw is not None and skia is not None and not self.config.no_viewer\n    \n    def should_midi(self):\n        return rtmidi and not self.config.no_midi\n    \n    def should_audio(self):\n        return WinmanAudio.Possible()\n    \n    def should_blender(self):\n        return self.config.blender_watch\n    \n    def add_viewers(self):\n        if not self.bg:\n            monitor_stdin()\n\n        if self.should_glfwskia():\n            self.glsk = WinmanGLFWSkia(self.config, self.renderer)\n        \n        if self.should_blender():\n            self.b3d = WinmanBlender(self.config)\n        \n        if self.should_midi():\n            self.midi = MIDIWatcher(self.config,\n                self.renderer.state,\n                self.renderer.execute_string_as_shortcut_or_action)\n        elif self.config.args.midi_info:\n            print(\">>> pip install rtmidi\")\n        \n        if self.should_audio():\n            self.audio = WinmanAudio()\n    \n    def did_reset_extent(self, extent):\n        if self.glsk:\n            self.glsk.reset_extent(extent)\n\n    def did_reload(self, filepath, source_reader):\n        if self.b3d:\n            self.b3d.reload(filepath, source_reader)\n    \n    def did_reload_animation(self, rs):\n        if self.audio:\n            self.audio.reload_with_animation(rs)\n    \n    def did_render(self, count, ditto_last, renders):\n        if self.b3d:\n            self.b3d.did_render(count, ditto_last, renders)\n    \n    def found_blend_files(self, blend_files):\n        if len(blend_files) > 0:\n            if self.b3d:\n                self.b3d.launch(blend_files[0])\n    \n    def all(self):\n        return [self.pt, self.glsk, self.b3d]\n    \n    def map(self):\n        for wm in self.all():\n            if wm:\n                yield wm\n    \n    def set_title(self, text):\n        self.last_title = text\n        [wm.set_title(text) for wm in self.map()]\n    \n    def mod_title(self, state, value):\n        self.title_states[state] = value\n        \n        ts = self.last_title\n        for k, v in self.title_states.items():\n            if v:\n                ts = ts + \" / \" + k\n        \n        [wm.set_title(ts) for wm in self.map()]\n    \n    def reset(self):\n        [wm.reset() for wm in self.map()]\n        self.toggle_rendered(force=False)\n    \n    def terminate(self):\n        [wm.terminate() for wm in self.map()]\n    \n    def toggle_rendered(self, force=None):\n        self.renderer.state.toggle_overlay(Overlay.Rendered, force=force)\n        if Overlay.Rendered in self.renderer.state.overlays:\n            self.mod_title(\"rendered\", True)\n        else:\n            self.mod_title(\"rendered\", False)\n    \n    def toggle_playback(self):\n        if self.renderer.state.playing == 0:\n            self.renderer.state.playing = 1\n            self.mod_title(\"playing\", True)\n        else:\n            self.renderer.state.playing = 0\n            self.mod_title(\"playing\", False)\n        \n        if not self.glsk:\n            if self.b3d:\n                self.b3d.toggle_playback(self.renderer.state.playing)\n    \n    def frame_offset(self, offset):\n        self.renderer.state.frame_offset += offset\n\n        # if not self.glsk:\n        #     if self.b3d:\n        #         self.b3d.frame_offset(offset)\n    \n    def should_close(self):\n        return any([wm.should_close() for wm in self.map()])\n    \n    def send_to_external(self, action, **kwargs):\n        pass\n    \n    def poll(self):\n        if self.glsk:\n            self.glsk.poll()\n    \n    def turn_over(self):\n        if self.b3d and self.b3d.subp:\n            if self.b3d.subp.poll() == 0:\n                self.renderer.dead = True\n                self.renderer.on_exit()\n                return\n\n        if self.midi:\n            tripped = self.midi.monitor(self.renderer.state.playing)\n            if tripped:\n                self.renderer.action_waiting = Action.PreviewStoryboard\n                self.renderer.action_waiting_reason = \"midi_trigger\"\n\n        render_previews = len(self.renderer.previews_waiting) > 0\n        if not render_previews:\n            self.backoff_refresh_delay += 0.01\n            if self.backoff_refresh_delay >= 0.25:\n                self.backoff_refresh_delay = 0.25\n            return []\n        \n        self.backoff_refresh_delay = self.refresh_delay\n\n        did_preview = []\n        if self.glsk:\n            did_preview.append(self.glsk.turn_over())\n\n        if len(did_preview) > 0:\n            la = self.renderer.last_animation\n            if la:\n                fo = abs(self.renderer.state.frame_offset%la.duration)\n                if self.config.enable_audio and self.audio:\n                    self.audio.play_frame(fo)\n\n                if fo == la.duration-1:\n                    if self.renderer.stop_at_end:\n                        self.renderer.stop_at_end = False\n                        self.renderer.action_waiting = Action.PreviewPlay\n                        self.renderer.action_waiting_reason = \"stopping_at_end\"\n                        print(\"END!\")\n        \n        return did_preview\n    \n    def run_loop(self):\n        while (not self.renderer.dead\n            and not self.should_close()\n            ):\n            t2 = time.time()\n            td2 = t2 - self.last_time\n\n            spf = 0.1\n            if self.renderer.last_animation:\n                spf = 1 / (float(self.renderer.last_animation.timeline.fps)*self.renderer.viewer_playback_rate)\n\n                if td2 >= spf:\n                    if self.print_approx_fps:\n                        print(\"APPROX FPS ==\", 1/td2 * self.renderer.viewer_sample_frames)\n                        self.print_approx_fps = False\n                    self.last_time = t2\n                else:\n                    self.poll()\n                    continue\n            \n            if self.renderer.state.playing:\n                time.sleep(0.01)\n            else:\n                time.sleep(self.backoff_refresh_delay)\n            self.last_time = t2\n            \n            # TODO the main turn_over, why is it like this?\n\n            self.last_previews = self.renderer.turn_over()\n\n            global last_line\n            if last_line:\n                lls = last_line.strip()\n                if lls:\n                    self.renderer.on_stdin(lls)\n                last_line = None\n            \n            if self.cron_start > 0 and self.cron_interval > 0:\n                if (time.time() - self.cron_start) > self.cron_interval:\n                    self.cron_start = time.time()\n                    self.renderer.action_waiting = Action.PreviewStoryboardReload\n                    self.renderer.action_waiting_reason = \"cron_interval timer hit\"\n            \n            self.poll()\n    \n        self.renderer.on_exit(restart=False)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/audio.py",
    "content": "from coldtype.renderer.winman.passthrough import WinmanPassthrough\nfrom coldtype.renderable.animation import animation\n\nimport wave\ntry:\n    import pyaudio\n    import soundfile\n    import numpy as np\n    from soundfile import SoundFile\nexcept ImportError:\n    pyaudio = None\n    soundfile = None\n    np = None\n\n\nclass WinmanAudio(WinmanPassthrough):\n    @staticmethod\n    def Possible():\n        return bool(pyaudio and soundfile and np)\n\n    def __init__(self):\n        self.pa = pyaudio.PyAudio()\n        self.pa_src:SoundFile = None\n        self.pa_stream = None\n        self.pa_rate = 0\n        self.a = None\n    \n    def recycle(self):\n        if self.pa_stream:\n            self.pa_stream.stop_stream()\n            self.pa_stream.close()\n        if self.pa_src:\n            self.pa_src.close()\n        \n        self.pa_stream = None\n        self.pa_src = None\n    \n    def reload_with_animation(self, a:animation):\n        self.recycle()\n        self.a = a\n        if a.audio:\n            try:\n                self.pa_src = soundfile.SoundFile(a.audio, \"r\")\n            except:\n                print(\">>> Could not load audio file (corrupted?)\")\n                self.pa_src = None\n    \n    def play_frame(self, frame):\n        #if not self.args.preview_audio:\n        #    return\n        \n        if pyaudio and self.pa_src:\n            hz = self.pa_src.samplerate\n            width = self.pa_src.channels\n\n            if not self.pa_stream or hz != self.pa_rate:\n                self.pa_rate = hz\n                self.pa_stream = self.pa.open(\n                    format=pyaudio.paFloat32,\n                    channels=width,\n                    rate=hz,\n                    output=True)\n\n            audio_frame = frame\n            chunk = int(hz / self.a.timeline.fps)\n\n            try:\n                self.pa_src.seek(chunk*audio_frame)\n                data = self.pa_src.read(chunk)\n                try:\n                    data = data.astype(np.float32).tostring()\n                except AttributeError:\n                    # https://github.com/coldtype/coldtype/discussions/185#discussioncomment-16507693\n                    data = data.astype(np.float32).tobytes()\n                self.pa_stream.write(data)\n            except wave.Error:\n                print(\">>> Could not read audio at frame\", audio_frame)\n\n    def play_once(self, animation):\n        if not animation.audio:\n            return\n\n        wf = wave.open(str(animation.audio), 'rb')\n        stream = self.p.open(\n            format=self.p.get_format_from_width(\n                wf.getsampwidth()),\n            channels = wf.getnchannels(),\n            rate = wf.getframerate(),\n            output = True)\n\n        chunk = 1024\n        data = wf.readframes(chunk)\n        # Play the sound by writing the audio data to the stream\n        while data != '':\n            stream.write(data)\n            data = wf.readframes(chunk)\n        \n        stream.close()\n        print(\"PLAY!\", animation.audio)\n        pass\n\n    def terminate(self):\n        self.recycle()\n        self.pa.terminate()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/blender.py",
    "content": "from pathlib import Path\n\nfrom coldtype.renderer.utils import path_hash\nfrom coldtype.renderer.winman.passthrough import WinmanPassthrough\nfrom coldtype.blender.render import blender_launch_livecode\nfrom coldtype.blender import BlenderIO\n\n\n\nclass WinmanBlender(WinmanPassthrough):\n    def __init__(self, config):\n        self.subp = None\n        self.command_file = None\n\n        try:\n            from b3denv import get_vars\n            b3d_vars = get_vars(None)\n            self.blender_path = Path(b3d_vars[\"blender\"])\n        except:\n            raise Exception(\"NO BLENDER FOUND (via b3denv)\")\n\n        self.reset_factory = config.blender_reset_factory\n        self.cli_args = config.blender_command_line_args\n    \n    def launch(self, blender_io:BlenderIO):\n        if self.subp:\n            self.subp.kill()\n\n        self.subp = blender_launch_livecode(\n            self.blender_path,\n            blender_io.blend_file,\n            self.command_file,\n            #reset_factory=self.reset_factory,\n            additional_args=self.cli_args)\n    \n    def write_command(self, cmd, arg, kwargs=[]):\n        try:\n            cb = self.command_file\n            if cb.exists():\n                cb.unlink()\n            cb.write_text(f\"{cmd},{str(arg)};{str(kwargs)}\")\n        except FileNotFoundError:\n            pass\n\n    def did_render(self, count, ditto_last, renders):\n        if ditto_last:\n            self.write_command(\"refresh_sequencer_and_image\", count)\n        else:\n            self.write_command(\"refresh_sequencer\", count)\n    \n    def reload(self, filepath, source_reader):\n        ph = path_hash(filepath)\n        self.command_file = Path(f\"~/.coldtype/{ph}.txt\").expanduser()\n        self.write_command(\"import\", filepath, source_reader.inputs)\n    \n    def toggle_playback(self, toggle):\n        self.write_command(\"play_preview\", toggle)\n    \n    def frame_offset(self, offset):\n        self.write_command(\"frame_offset\", offset)\n\n    def terminate(self):\n        if self.subp:\n            self.subp.kill()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/glfwskia.py",
    "content": "from coldtype.renderable.renderable import Overlay\nfrom coldtype.renderer.winman.passthrough import WinmanPassthrough\n\nimport time as ptime\nimport coldtype.skiashim as skiashim\n\nfrom subprocess import Popen, PIPE\nfrom pathlib import Path\n\nfrom coldtype.color import rgb, hsl\nfrom coldtype.osutil import on_mac\n\ntry:\n    import glfw\nexcept ImportError:\n    #print(\"Big problem: GLFW could not be loaded\")\n    glfw = None\n\ntry:\n    import skia\n    import coldtype.fx.skia as skfx\nexcept ImportError:\n    skia = None\n    skfx = None\n\n\ntry:\n    from OpenGL import GL\nexcept ImportError:\n    try:\n        from OpenGL import GL\n    except:\n        GL = None\n\n\nfrom coldtype.geometry import Point, Rect, Edge\nfrom coldtype.renderable import Action\nfrom coldtype.renderer.config import ConfigOption, ColdtypeConfig\nfrom coldtype.renderer.keyboard import KeyboardShortcut, REPEATABLE_SHORTCUTS, shortcuts_keyed, LAYOUT_REMAPS\n\ntry:\n    from coldtype.pens.svgpen import SVGPen\nexcept ModuleNotFoundError:\n    SVGPen = None\n\ndef glfw_generic_setup():\n    glfw.window_hint(glfw.STENCIL_BITS, 8)\n\n    # https://www.glfw.org/faq#macos\n\n    if on_mac():\n        glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 3)\n        glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 2)\n        glfw.window_hint(glfw.OPENGL_FORWARD_COMPAT, True)\n        glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE)\n\nclass WinmanGLFWSkiaBackground(WinmanPassthrough):\n    def __init__(self, config:ColdtypeConfig, renderer):\n        # TODO is the glfw stuff here actually necessary?\n\n        if not glfw.init():\n            raise RuntimeError('glfw.init() failed')\n        \n        glfw.window_hint(glfw.VISIBLE, glfw.FALSE)\n        glfw_generic_setup()\n\n        window = glfw.create_window(640, 480, '', None, None)\n        glfw.make_context_current(window)\n\n        self.context = skia.GrDirectContext.MakeGL()\n    \n    def reset_extent(self, extent):\n        pass\n\n\nclass WinmanGLFWSkia():\n    def __init__(self, config:ColdtypeConfig, renderer, background=False):\n        self.config = config\n        self.window = None\n        self.background = background\n        self.renderer = renderer\n        self.primary_monitor = None\n        self.primary_monitor_rect = None\n        self.all_shortcuts = shortcuts_keyed()\n        self.prev_scale = 0\n        self.surface = None\n\n        if self.renderer.args.print_skia_version:\n            print(f\"skia version: {skia.__version__} (m87={skiashim.SKIA_87})\")\n\n        parent = Path(__file__).parent\n\n        self.typeface = skia.Typeface.MakeFromFile(str(parent / \"../../demo/RecMono-CasualItalic.ttf\"))\n\n        self.transparency_blocks = skia.Image.MakeFromEncoded(skia.Data.MakeFromFileName(str(parent / \"../../demo/transparency_blocks.png\")))\n\n        if not glfw.init():\n            raise RuntimeError('glfw.init() failed')\n        \n        glfw_generic_setup()\n\n        glfw.window_hint(glfw.RESIZABLE, glfw.FALSE)\n        \n        if self.config.window_chromeless:\n            glfw.window_hint(glfw.DECORATED, glfw.FALSE)\n        else:\n            glfw.window_hint(glfw.DECORATED, glfw.TRUE)\n\n        if self.config.window_transparent:\n            glfw.window_hint(glfw.TRANSPARENT_FRAMEBUFFER, glfw.TRUE)\n        else:\n            glfw.window_hint(glfw.TRANSPARENT_FRAMEBUFFER, glfw.FALSE)\n        \n        if self.config.window_passthrough:\n            try:\n                glfw.window_hint(0x0002000D, glfw.TRUE)\n                # glfw.window_hint(glfw.MOUSE_PASSTHROUGH, glfw.TRUE)\n            except glfw.GLFWError:\n                print(\"failed to hint window for mouse-passthrough\")\n\n        if self.config.window_background:\n            glfw.window_hint(glfw.FOCUSED, glfw.FALSE)\n        \n        if self.config.window_float:\n            glfw.window_hint(glfw.FLOATING, glfw.TRUE)\n\n        if not self.background:\n            self.window = glfw.create_window(int(10), int(10), '', None, None)\n        \n        self.window_scrolly = 0\n        self.window_focus = 0\n\n        self.find_primary_monitor()\n\n        glfw.make_context_current(self.window)\n\n        glfw.set_key_callback(self.window, self.on_key)\n        #glfw.set_char_callback(self.window, self.on_char)\n        glfw.set_mouse_button_callback(self.window, self.on_mouse_button)\n        glfw.set_cursor_pos_callback(self.window, self.on_mouse_move)\n        glfw.set_scroll_callback(self.window, self.on_scroll)\n        glfw.set_window_focus_callback(self.window, self.on_focus)\n        glfw.set_framebuffer_size_callback(self.window, self.on_resize)\n\n        self.set_window_opacity()\n\n        self.prev_scale = self.get_content_scale()\n        self.context = skia.GrDirectContext.MakeGL()\n        \n        self.copy_previews_to_clipboard = False\n    \n    def find_primary_monitor(self):\n        self.primary_monitor = glfw.get_primary_monitor()\n        \n        found_primary = None\n        if self.config.monitor_name:\n            remn = self.config.monitor_name\n            monitors = glfw.get_monitors()\n            matches = []\n            if remn == \"list\":\n                print(\"> MONITORS\")\n            for monitor in monitors:\n                mn = glfw.get_monitor_name(monitor)\n                if remn == \"list\":\n                    print(\"    -\", mn.decode(\"utf-8\"))\n                elif remn in str(mn):\n                    matches.append(monitor)\n            if len(matches) > 0:\n                found_primary = matches[0]\n            if found_primary:\n                self.primary_monitor = found_primary\n        \n        vm = glfw.get_video_mode(self.primary_monitor)\n        work_rect = Rect(vm.size.width, vm.size.height)\n        \n        self.primary_monitor_rect = work_rect\n    \n    def create_surface(self, rect):\n        mode = GL.GL_RGBA8\n        #mode = GL.GL_COMPRESSED_RGB8_ETC2\n\n        backend_render_target = skia.GrBackendRenderTarget(\n            int(rect.w), int(rect.h), 0, 0,\n            skia.GrGLFramebufferInfo(0, mode))\n        \n        self.surface = skia.Surface.MakeFromBackendRenderTarget(\n            self.context,\n            backend_render_target,\n            skia.kBottomLeft_GrSurfaceOrigin,\n            skia.kRGBA_8888_ColorType,\n            skia.ColorSpace.MakeSRGB())\n        \n        assert self.surface is not None\n\n    def get_content_scale(self):\n        u_scale = self.config.window_content_scale\n        \n        if u_scale:\n            return u_scale\n        elif glfw and not self.renderer.args.no_viewer:\n            if self.primary_monitor:\n                return glfw.get_monitor_content_scale(self.primary_monitor)[0]\n            else:\n                return glfw.get_window_content_scale(self.window)[0]\n        else:\n            return 1\n    \n    def content_scale_changed(self):\n        scale_x = self.get_content_scale()\n        if scale_x != self.prev_scale:\n            self.prev_scale = scale_x\n            return True\n        return False\n    \n    def update_window(self, frect):\n        m_scale = self.get_content_scale()\n        scale_x, scale_y = m_scale, m_scale\n\n        ww = int(frect.w/scale_x)\n        wh = int(frect.h/scale_y)\n        glfw.set_window_size(self.window, ww, wh)\n\n        pin = self.config.window_pin\n\n        vm = glfw.get_video_mode(self.primary_monitor)\n        work_rect = Rect(vm.size.width, vm.size.height)\n        \n        self.primary_monitor_rect = work_rect\n\n        if pin and pin != \"0\":\n            _work_rect_x, _work_rect_y = Rect(glfw.get_monitor_workarea(self.primary_monitor)).xy()\n            \n            if _work_rect_y < 100:\n                _work_rect_y = 0\n            else:\n                _work_rect_y -= 38\n            \n            if _work_rect_x < 100:\n                _work_rect_x = 0\n            \n            #print(_work_rect_x, _work_rect_y)\n            wrz = work_rect.zero()\n            edges = Edge.PairFromCompass(pin)\n            pinned = wrz.take(ww, edges[0]).take(wh, edges[1]).round()\n            #if edges[1] == \"mdy\":\n            #    pinned = pinned.offset(0, -30)\n            pinned = pinned.flip(wrz.h)\n            #pinned.drop(_work_rect_x, \"E\")\n            #pinned.drop(_work_rect_y, \"S\")\n            #wpi = self.config.window_pin_inset\n            #pinned = pinned.inset(-wpi[0], wpi[1])\n            wpox = self.config.window_pin_offset_x\n            wpoy = self.config.window_pin_offset_y\n            pinned = pinned.offset(wpox, -wpoy)\n            glfw.set_window_pos(self.window, pinned.x + _work_rect_x, pinned.y + _work_rect_y)\n        else:\n            glfw.set_window_pos(self.window, 0, 0)\n    \n    def set_title(self, text):\n        glfw.set_window_title(self.window, text)\n\n    def set_window_opacity(self, relative=None, absolute=None):\n        if relative is not None:\n            o = glfw.get_window_opacity(self.window)\n            op = o + float(relative)\n        elif absolute is not None:\n            op = float(absolute)\n        else:\n            op = float(self.config.window_opacity)\n        \n        glfw.set_window_opacity(self.window,\n            max(0.1, min(1, op)))\n    \n    def reset(self):\n        self.window_scrolly = 0\n    \n    def should_close(self):\n        return glfw.window_should_close(self.window)\n    \n    def focus(self, force=False):\n        if self.window_focus == 0 or force:\n            glfw.focus_window(self.window)\n            return True\n        return False\n    \n    def allow_mouse(self):\n        return True\n        \n    def on_scroll(self, win, xoff, yoff):\n        self.window_scrolly += yoff\n        #self.on_action(Action.PreviewStoryboard)\n        #print(xoff, yoff)\n        #pass # TODO!\n    \n    def on_focus(self, win, focus):\n        self.window_focus = focus\n    \n    def on_resize(self, win, w, h):\n        #self.renderer.action_waiting = Action.PreviewStoryboard\n        #self.renderer.action_waiting_reason = \"on_resize\"\n        pass\n    \n    def on_mouse_button(self, _, btn, action, mods):\n        if not self.allow_mouse():\n            return\n        \n        pos = Point(glfw.get_cursor_pos(self.window)).scale(2) # TODO should this be preview-scale?\n        pos[1] = self.renderer.extent.h - pos[1]\n\n        try:\n            requested_action = self.renderer.state.on_mouse_button(pos, btn, action, mods)\n            if requested_action:\n                self.renderer.action_waiting = requested_action\n                self.renderer.action_waiting_reason = \"mouse_trigger\"\n        except Exception as e:\n            print(e)\n    \n    def on_mouse_move(self, _, xpos, ypos):\n        if not self.allow_mouse():\n            return\n        \n        pos = Point((xpos, ypos)).scale(2)\n        pos[1] = self.renderer.extent.h - pos[1]\n        requested_action = self.renderer.state.on_mouse_move(pos)\n        if requested_action:\n            self.renderer.action_waiting = requested_action\n            self.renderer.action_waiting_reason = \"mouse_move\"\n    \n    def on_key(self, win, key, scan, action, mods):\n        self.on_potential_shortcut(key, action, mods)\n        # if key in GLFW_SPECIALS_LOOKUP.values():\n        #     self.on_potential_shortcut(key, action, mods)\n        # elif mods:\n        #     self.on_potential_shortcut(key, action, mods)\n    \n    def on_char(self, win, key):\n        ck = chr(key)\n        print(\"CHAR\", ck)\n        self.on_potential_shortcut(ck, glfw.PRESS, [])\n    \n    def repeatable_shortcuts(self):\n        return REPEATABLE_SHORTCUTS\n    \n    def on_potential_shortcut(self, key, action, mods):\n        if self.config.keyboard_layout is not None and self.config.keyboard_layout in LAYOUT_REMAPS:\n            remap = LAYOUT_REMAPS[self.config.keyboard_layout]\n            if key in remap:\n                key = remap[key]\n\n        for shortcut, options in self.all_shortcuts.items():\n            for modifiers, skey, ckey in options:\n                #print(key, skey, ckey)\n                if key != skey and key != ckey:\n                    continue\n\n                if isinstance(mods, list):\n                    mod_matches = mods\n                else:\n                    mod_matches = [0, 0, 0, 0]\n                    for idx, mod in enumerate([glfw.MOD_SUPER, glfw.MOD_ALT, glfw.MOD_SHIFT, glfw.MOD_CONTROL]):\n                        if mod in modifiers:\n                            if mods & mod:\n                                mod_matches[idx] = 1\n                        elif mod not in modifiers:\n                            if not (mods & mod):\n                                mod_matches[idx] = 1\n                \n                mod_match = all(mod_matches)\n                \n                if not mod_match and len(modifiers) == 0 and isinstance(mods, list):\n                    mod_match = True\n                \n                if len(modifiers) == 0 and mods != 0 and not isinstance(mods, list):\n                    mod_match = False\n                \n                if mod_match and (key == skey or key == ckey):\n                    if (action == glfw.REPEAT and shortcut in self.repeatable_shortcuts()) or action == glfw.PRESS:\n                        #print(shortcut, modifiers, skey, mod_match)\n                        return self.renderer.on_shortcut(shortcut)\n    \n    def reset_extent(self, extent):\n        GL.glClear(GL.GL_COLOR_BUFFER_BIT)\n        self.create_surface(extent)\n        self.update_window(extent)\n        self.surface.flushAndSubmit()\n        glfw.swap_buffers(self.window)\n    \n    def turn_over(self):\n        extent = self.renderer.extent\n\n        if self.renderer.needs_new_context:\n            self.renderer.needs_new_context = False\n            self.reset_extent(extent)\n            #self.update_window(extent)\n            #if not self.surface:\n            #self.create_surface(extent)\n\n        GL.glClear(GL.GL_COLOR_BUFFER_BIT)\n\n        did_preview = []\n\n        with self.surface as canvas:\n            canvas.clear(skia.Color4f(0.3, 0.3, 0.3, 1))\n            if self.config.window_transparent:\n                canvas.clear(skia.Color4f(0.3, 0.3, 0.3, 0))\n            \n            for idx, (render, result, rp) in enumerate(self.renderer.previews_waiting):\n                sr = render._stacked_rect\n                rect = sr.offset((extent.w-sr.w)/2, 0).round()\n\n                if self.copy_previews_to_clipboard:\n                    try:\n                        svg = SVGPen.Composite(result, render.rect, viewBox=render.viewBox)\n                        print(svg)\n                        process = Popen(\n                            'pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=PIPE)\n                        process.communicate(svg.encode('utf-8'))\n                    except Exception as e:\n                        print(\">>>>>>>>>>>\", e)\n                        print(\"failed to copy to clipboard\")\n\n                try:\n                    preview_scale = render.preview_scale * self.renderer.state.preview_scale\n                    self.draw_preview(idx, preview_scale, canvas, rect, (render, result, rp))\n                    did_preview.append(rp)\n                except Exception as e:\n                    short_error = self.renderer.print_error()\n                    paint = skia.Paint(AntiAlias=True, Color=skia.ColorRED)\n                    canvas.drawString(short_error, 10, 32, skia.Font(None, 36), paint)\n            \n            self.copy_previews_to_clipboard = False\n        \n        self.surface.flushAndSubmit()\n        glfw.swap_buffers(self.window)\n\n        return did_preview\n    \n    def poll(self):\n        glfw.poll_events()\n\n    def draw_preview(self, idx, scale, canvas, rect, waiter):\n        render, result, rp = waiter\n\n        if isinstance(waiter[1], Path) or isinstance(waiter[1], str):\n            image = skia.Image.MakeFromEncoded(skia.Data.MakeFromFileName(str(waiter[1])))\n            if image:\n                canvas.save()\n                canvas.scale(scale, scale)\n                skiashim.canvas_drawImage(canvas, image, rect.x, rect.y)\n                canvas.restore()\n            return\n\n        error_color = rgb(1, 1, 1).skia()\n        canvas.save()\n        canvas.translate(0, self.window_scrolly)\n        canvas.translate(rect.x, rect.y)\n        \n        if not self.config.window_transparent:\n            if not render.layer:\n                matrix = skia.Matrix()\n                canvas.drawRect(skia.Rect(0, 0, rect.w, rect.h), {\n                    \"Shader\": skiashim.image_makeShader(self.transparency_blocks, matrix),\n                })\n                #canvas.drawRect(skia.Rect(0, 0, rect.w, rect.h), skia.Paint(Color=hsl(0.3).skia()))\n        \n        if not hasattr(render, \"show_error\"):\n            canvas.scale(scale, scale)\n        \n        if render.clip:\n            canvas.clipRect(skia.Rect(0, 0, rect.w, rect.h))\n        \n        if render.direct_draw:\n            try:\n                render.run(rp, self.renderer.state, canvas)\n            except Exception as e:\n                short_error = self.renderer.print_error()\n                render.show_error = short_error\n                error_color = rgb(0, 0, 0).skia()\n        else:\n            do_precompose = True\n            #do_precompose = self.renderer.args.never_reuse_skia_context or render.single_frame or render.composites and not render.interactable or self.config.preview_saturation != 1\n            if do_precompose:\n                from coldtype.img.skiaimage import SkiaImage\n\n                postprocess = render.postprocessor(result)\n\n                comp = render.precompose(result, scale)\n                comp_img = comp.img().get(\"src\")\n\n                if not self.renderer.last_render_cleared:\n                    render.last_result = SkiaImage(comp_img)\n                else:\n                    render.last_result = None\n                \n                canvas.save()\n                canvas.scale(1/scale, 1/scale)\n\n                if postprocess:\n                    comp = render.precompose(postprocess(comp), scale)\n                    comp_img = comp.img().get(\"src\")\n\n                paint = skia.Paint()\n                paint.setColorFilter(skfx.Skfi.saturate(self.config.preview_saturation))\n                skiashim.canvas_drawImage(canvas, comp_img, 0, 0, paint)\n                \n                canvas.restore()\n            else:\n                from coldtype.pens.skiapen import SkiaPen\n                \n                sr = render.rect.scale(scale, \"mnx\", \"mxx\")\n                SkiaPen.CompositeToCanvas(result, sr, canvas, scale, style=render.style)\n\n                #comp = result\n                #render.draw_preview(1.0, canvas, render.rect, comp, rp)\n        \n        if hasattr(render, \"show_error\"):\n            paint = skia.Paint(AntiAlias=True, Color=error_color)\n            canvas.drawString(render.show_error, 30, 70, skia.Font(self.typeface, 50), paint)\n            canvas.drawString(\"> See process in terminal for traceback\", 30, 120, skia.Font(self.typeface, 32), paint)\n        \n        canvas.restore()\n\n    def terminate(self):\n        glfw.terminate()\n\n        if self.context:\n            self.context.abandonContext()"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/midi.py",
    "content": "\ntry:\n    import rtmidi\nexcept ImportError:\n    rtmidi = None\n    pass\n\nclass MIDIWatcher():\n    def __init__(self, config, state, on_shortcut):\n        self.config = config\n        self.state = state\n        self.on_shortcut = on_shortcut\n        self.failed = False\n        self.devices = []\n\n        try:\n            midiin = rtmidi.RtMidiIn()\n            lookup = {}\n            for p in range(midiin.getPortCount()):\n                lookup[midiin.getPortName(p)] = p\n\n            for device, mapping in self.config.midi.items():\n                if device in lookup:\n                    mapping[\"port\"] = lookup[device]\n                    mi = rtmidi.RtMidiIn()\n                    mi.openPort(lookup[device])\n                    self.devices.append([device, mi])\n                else:\n                    if self.config.midi_info:\n                        print(f\">>> no midi port found with that name ({device}) <<<\")\n            \n            if self.config.midi_info:\n                print(\"\\nMIDI DEVICES:::\")\n                midiin = rtmidi.RtMidiIn()\n                ports = range(midiin.getPortCount())\n                for p in ports:\n                    print(\">\", f\"\\\"{midiin.getPortName(p)}\\\"\")\n                print(\"\\n\")\n\n        except Exception as e:\n            self.failed = True\n            print(\"MIDI SETUP EXCEPTION >\", e)\n    \n    def monitor(self, playing):\n        if self.failed:\n            return\n\n        controllers = {}\n        shortcut_triggered = False\n\n        for device, mi in self.devices:\n            msg = mi.getMessage(0)\n            while msg:\n                if self.config.midi_info:\n                    print(device, msg)\n                \n                if msg.isNoteOn(): # Maybe not forever?\n                    nn = msg.getNoteNumber()\n                    shortcut = self.config.midi[device][\"note_on\"].get(nn)\n                    if shortcut:\n                        self.on_shortcut(shortcut, nn)\n                        shortcut_triggered = True\n                elif msg.isNoteOff():\n                    nn = msg.getNoteNumber()\n                elif msg.isController():\n                    cn = msg.getControllerNumber()\n                    cv = msg.getControllerValue()\n                    cc = msg.getChannel()\n                    \n                    mapping = self.config.midi[device].get(\"controller\", {})\n                    shortcutA = mapping.get(cn)\n                    shortcutB = mapping.get((cn, cc))\n                    \n                    if shortcutA:\n                        if cv in shortcutA:\n                            print(\"shortcut!\", shortcutA, cv, shortcutA.get(cv))\n                            self.on_shortcut(shortcutA.get(cv), cn)\n                            shortcut_triggered = True\n                    \n                    if shortcutB:\n                        if callable(shortcutB):\n                            res = shortcutB(cv, self.state)\n                            if res is not None:\n                                print(\"shortcut!\", res)\n                                self.on_shortcut(res, None)\n                                shortcut_triggered = True\n                        else:\n                            if cv in shortcutB:\n                                print(\"shortcut!\", shortcutB, cv)\n                                self.on_shortcut(shortcutB.get(cv), cn)\n                                shortcut_triggered = True\n                    \n                    else:\n                        controllers[\"_\".join([device, str(cc), str(cn)])] = cv\n                \n                msg = mi.getMessage(0)\n        \n        if len(controllers) > 0:\n            nested = {}\n            for k, v in controllers.items():\n                device, channel, number = k.split(\"_\")\n                if not nested.get(device):\n                    nested[device] = {}\n                if not nested[device].get(channel):\n                    nested[device][channel] = {}\n                nested[device][channel][str(number)] = v\n            \n            for device, channels in nested.items():\n                if not self.state.controller_values.get(device):\n                    self.state.controller_values[device] = {}\n                for channel, numbers in channels.items():\n                    if not self.state.controller_values[device].get(channel):\n                        self.state.controller_values[device][channel] = {}\n                    for number, value in numbers.items():\n                        was = self.state.controller_values[device][channel].get(number)\n                        if was:\n                            self.state.controller_values[device][channel][\"_\" + str(number)] = was\n                        self.state.controller_values[device][channel][number] = value\n\n            if not playing and not shortcut_triggered:\n               return True"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/renderer/winman/passthrough.py",
    "content": "\nclass WinmanPassthrough():\n    def __init__(self):\n        self.context = None\n\n    def set_title(self, text):\n        #print(\"TITLE\", text)\n        pass\n    \n    def terminate(self):\n        pass\n\n    def reset(self):\n        pass\n    \n    def turn_over(self):\n        print(\"turning\")\n    \n    def should_close(self):\n        return False"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/__init__.py",
    "content": "from coldtype.runon.runon import Runon, RunonEnumerable"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/_path.py",
    "content": "# WARNING\n\nfrom copy import deepcopy\n\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.pens.reverseContourPen import ReverseContourPen\nfrom coldtype.color import Color, normalize_color\n\nfrom coldtype.geometry import Rect, Point, txt_to_edge\nfrom coldtype.runon.runon import Runon\n\nfrom coldtype.runon.scaffold import Scaffold\n\n# IMPORTS\n\nclass P(Runon):\n    \"\"\"\n    P stands for Path (or Pen)\n    \"\"\"\n    def FromPens(pens):\n        if hasattr(pens, \"_pens\"):\n            out = P().data(**pens.data)\n            for p in pens:\n                out.append(P.FromPens(p))\n        elif hasattr(pens, \"_els\") and len(pens._els) > 0:\n            out = pens\n        elif hasattr(pens, \"_val\") and pens.val_present():\n            out = pens\n        else:\n            p = pens\n            rp = RecordingPen()\n            p.replay(rp)\n            out = P(rp)\n            \n            attrs = p.attrs.get(\"default\", {})\n            if \"fill\" in attrs:\n                out.f(attrs[\"fill\"])\n            if \"stroke\" in attrs:\n                out.s(attrs[\"stroke\"][\"color\"])\n                out.sw(attrs[\"stroke\"][\"weight\"])\n\n            # TODO also the rest of the styles\n\n            out.data(**pens.data)\n\n            if hasattr(pens, \"_frame\"):\n                out.data(frame=pens._frame)\n            if hasattr(pens, \"glyphName\"):\n                out.data(glyphName=pens.glyphName)\n        return out\n    \n    def __init__(self, *vals, **kwargs):\n        prenorm = [v.rect if isinstance(v, Scaffold) else v for v in vals]\n        \n        if len(vals) == 2 and isinstance(vals[0], float) and isinstance(vals[1], float):\n            prenorm = Rect(*vals)\n        \n        if len(vals) == 1 and isinstance(vals[0], dict):\n            unmapped = type(self)()\n            for k, v in vals[0].items():\n                unmapped.append(v.tag(k))\n            prenorm = unmapped\n\n        super().__init__(*prenorm)\n\n        if isinstance(self._val, RecordingPen):\n            pass\n        elif isinstance(self._val, Rect):\n            r = self._val\n            self._val = RecordingPen()\n            self.rect(r)\n        elif isinstance(self._val, Point):\n            p = self._val\n            self._val = RecordingPen()\n            self.rect(Rect.FromCenter(p, 20))\n        else:\n            raise Exception(\"Can’t understand _val\", self._val)\n\n        # more backwards compat\n        for k, v in kwargs.items():\n            if k == \"fill\":\n                self.f(v)\n            elif k == \"stroke\":\n                self.s(v)\n            elif k == \"strokeWidth\":\n                self.sw(v)\n            elif k == \"image\":\n                self.img(**v)\n            elif k == \"shadow\":\n                self.shadow(**v)\n            else:\n                raise Exception(\"Invalid __init__ kwargs\", k)\n\n    def reset_val(self):\n        super().reset_val()\n        self._val = RecordingPen()\n        return self\n    \n    def val_present(self):\n        return self._val is not None and len(self._val.value) > 0\n    \n    def copy_val(self, val):\n        copy = RecordingPen()\n        if self.val_present():\n            copy.value = deepcopy(self._val.value)\n        return copy\n    \n    def printable_val(self):\n        if self.val_present():\n            return f\"{len(self._val.value)}mvs\"\n    \n    def printable_data(self):\n        out = {}\n        exclude = [\"_last_align_rect\", \"_notebook_shown\"]\n        for k, v in self._data.items():\n            if k not in exclude:\n                out[k] = v\n        return out\n    \n    def to_code(self, classname=\"P\", additional_lines=[]):\n        t = None\n        if self._tag and self._tag != \"?\":\n            t = self._tag\n        \n        out = f\"({classname}()\"\n        if t:\n            out += f\"\\n    .tag(\\\"{t}\\\")\"\n\n        if self.data:\n            pd = self.printable_data()\n            if pd:\n                out += f\"\\n    .data(**{repr(self.printable_data())})\"\n\n        if self.val_present():\n            for mv, pts in self._val.value:\n                out += \"\\n\"\n                if len(pts) > 0:\n                    spts = \", \".join([f\"{(x, y)}\" for (x, y) in pts])\n                    out += f\"    .{mv}({spts})\"\n                else:\n                    out += f\"    .{mv}()\"\n        else:\n            for pen in self:\n                for idx, line in enumerate(pen.to_code().split(\"\\n\")):\n                    if idx == 0:\n                        out += f\"\\n    .append{line}\"\n                    else:\n                        out += f\"\\n    {line}\"\n        \n        if self.attrs:\n            for k, v in self.attrs.get(\"default\").items():\n                if v:\n                    if k == \"fill\":\n                        out += f\"\\n    .f({v.to_code()})\"\n                    elif k == \"stroke\":\n                        out += f\"\\n    .s({v['color'].to_code()})\"\n                        out += f\"\\n    .sw({v['weight']})\"\n                    else:\n                        print(\"No code\", k, v)\n        \n        for la in additional_lines:\n            out += f\"\\n    {la}\"\n\n        out += \")\"\n        return out\n    \n    def normalize_attr_value(self, k, v):\n        if k == \"fill\" and not isinstance(v, Color):\n            return normalize_color(v)\n        else:\n            return super().normalize_attr_value(k, v)\n\n    def style(self, style=\"_default\"):\n        \"\"\"for backwards compatibility with defaults and grouped-stroke-properties\"\"\"\n        st = {**super().style(style)}\n        if style != \"_default\":\n            default_style = {**super().style(\"default\")}\n        else:\n            default_style = st\n        return self.groupedStyle(st, default_style)\n    \n    def unframe(self):\n        def _unframe(el, _, __):\n            el.data(frame=None)\n\n        return self.walk(_unframe)\n    \n    def frame(self, fn_or_rect):\n        if isinstance(fn_or_rect, Rect):\n            self.data(frame=fn_or_rect)\n        elif callable(fn_or_rect):\n            self.data(frame=fn_or_rect(self))\n        return self\n    \n    def pen(self, frame=True):\n        \"\"\"collapse and combine into a single vector\"\"\"\n        if len(self) == 0:\n            return self\n        \n        _frame = self.ambit()\n        self.collapse()\n\n        for el in self._els:\n            el._val.replay(self._val)\n            #self._val.record(el._val)\n\n        try:\n            self._attrs = {**self._els[0]._attrs, **self._attrs}\n        except IndexError:\n            pass\n        \n        if frame:\n            self.data(frame=_frame)\n        self._els = []\n        return self\n    \n    def down(self):\n        return self.pen()\n    \n    def pens(self):\n        if self.val_present():\n            return self.ups()\n        else:\n            return self\n\n    # multi-use overrides\n    \n    def reverse(self, recursive=False, winding=True):\n        \"\"\"Reverse elements; if pen value present, reverse the winding direction of the pen.\"\"\"\n        if winding and self.val_present():\n            if self.unended():\n                self.closePath()\n            dp = RecordingPen()\n            rp = ReverseContourPen(dp)\n            self.replay(rp)\n            self._val.value = dp.value\n            return self\n\n        return super().reverse(recursive=recursive, winding=winding)\n    \n    def index(self, idx, fn=None):\n        if not self.val_present():\n            return super().index(idx, fn)\n        \n        return self.mod_contour(idx, fn)\n    \n    def indices(self, idxs, fn=None):\n        if not self.val_present():\n            return super().indices(idxs, fn)\n\n        def apply(idx, x, y):\n            if idx in idxs:\n                return fn(Point(x, y))\n        \n        return self.map_points(apply)\n    \n    def wordPens(self, pred=lambda x: x.glyphName == \"space\", consolidate=False):\n        def _wp(p):\n            return (p\n                .split(pred)\n                .map(lambda x: x\n                    .data(word=\"/\".join([p.glyphName for p in x]))\n                    .cond(consolidate, lambda p: p.pen())\n                    ))\n        \n        d = self.depth()\n        if d == 1:\n            return _wp(self)\n        \n        out = type(self)()\n        for pen in self:\n            out.append(_wp(pen))\n        return out\n    \n    def linebreak(self, w, leading=False, track_out=False):\n        x = 0\n\n        lines = P()\n        line = P()\n        lines.append(line)\n\n        for idx, word in enumerate(self):\n            word.t(-x, 0)\n            amb = word.ambit(tx=1, ty=0)\n            if amb.pse.x > w+0:\n                line = P()\n                lines.append(line)\n                word.t(-amb.x, 0)\n                x += amb.x\n                line.append(word)\n            else:\n                # Align first word of first line to true x\n                if idx == 0:\n                    word.t(-amb.x, 0)\n                    x += amb.x\n                line.append(word)\n        \n        if leading:\n            lines.stack(leading)\n\n        if track_out:\n            lines.map(lambda p: p.track_to_rect(Rect(0, 0, w, 100).zero(), pullToEdges=track_out < 2), slice(-1))\n\n        return lines\n    \n    def interpolate(self, value, other, frame=False):\n        if len(self.v.value) != len(other.v.value):\n            raise Exception(\"Cannot interpolate / diff lens\")\n        vl = []\n        for idx, (mv, pts) in enumerate(self.v.value):\n            ipts = []\n            for jdx, p in enumerate(pts):\n                pta = Point(p)\n                try:\n                    ptb = Point(other.v.value[idx][-1][jdx])\n                except IndexError:\n                    print(\">>>>>>>>>>>>> Can’t interpolate\", idx, mv, \"///\", other.v.value[idx])\n                    raise IndexError\n                ipt = pta.interp(value, ptb)\n                ipts.append(ipt)\n            vl.append((mv, ipts))\n        \n        np = type(self)()\n        np.v.value = vl\n\n        if frame:\n            af = self.data(\"frame\")\n            bf = other.data(\"frame\")\n            ff = af.interp(value, bf)\n            np.data(frame=ff)\n\n        return np\n    \n    def replaceGlyph(self, glyphName, replacement, limit=None):\n        return self.replace(lambda p: p.glyphName == glyphName,\n            lambda p: (replacement(p) if callable(replacement) else replacement)\n                .translate(*p.ambit().xy()))\n    \n    def findGlyph(self, glyphName, fn=None):\n        return self.find(lambda p: p.glyphName == glyphName, fn)\n    \n    def _repr_html_(self):\n        #if self.data(\"_notebook_shown\"):\n        #    return None\n        \n        from coldtype.notebook import show, DEFAULT_DISPLAY\n        self.ch(show(DEFAULT_DISPLAY, tx=1, ty=1))\n        return None\n    \n    def text(self,\n        text:str,\n        style,\n        frame:Rect,\n        x=\"mnx\",\n        y=\"mny\",\n        ):\n        self.rect(frame)\n        self.data(\n            text=text,\n            style=style,\n            align=(txt_to_edge(x), txt_to_edge(y)))\n        return self\n    \n    # backwards compatibility (questionable if should exist)\n\n    def reversePens(self):\n        \"\"\"for backwards compatibility\"\"\"\n        return self.reverse(recursive=False)\n    \n    rp = reversePens\n\n    def vl(self, value):\n        self.v.value = value\n        return self\n    \n    @property\n    def _pens(self):\n        return self._els\n    \n    @property\n    def value(self):\n        return self.v.value\n\n    @property\n    def glyphName(self):\n        return self.data(\"glyphName\")\n    \n    def drop(self, amount, edge):\n        amb = self.ambit(tx=1, ty=1).drop(amount, edge)\n        return self.intersection(P(amb))\n    \n    def take(self, amount, edge):\n        amb = self.ambit(tx=1, ty=1).take(amount, edge)\n        return self.intersection(P(amb))\n    \n    def inset(self, ax, ay):\n        amb = self.ambit(tx=1, ty=1).inset(ax, ay)\n        return self.intersection(P(amb))\n    \n    @staticmethod\n    def Enumerate(enumerable, enumerator):\n        return P().enumerate(enumerable, enumerator)\n    \n    def addFrame(self, frame):\n        return self.data(frame=frame)\n    \n    def xAlignToFrame(self):\n        return self.align(self.data(\"frame\"), y=None)\n    \n    def pvl(self):\n        for idx, (_, pts) in enumerate(self.v.value):\n            if len(pts) > 0:\n                self.v.value[idx] = list(self.v.value[idx])\n                self.v.value[idx][-1] = [Point(p) for p in self.v.value[idx][-1]]\n        return self\n    \n    def dots(self, radius=4, square=False):\n        \"\"\"(Necessary?) Create circles at moveTo commands\"\"\"\n        dp = type(self)()\n        for t, pts in self.v.value:\n            if t == \"moveTo\":\n                x, y = pts[0]\n                if square:\n                    dp.rect(Rect((x-radius, y-radius, radius, radius)))\n                else:\n                    dp.oval(Rect((x-radius, y-radius, radius, radius)))\n        self.v.value = dp.v.value\n        return self\n\n# MIXINS\n\ndef runonCast():\n    def _runonCast(p):\n        return P.FromPens(p)\n    return _runonCast\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/DrawingMixin.py",
    "content": "import math\n\nfrom pathlib import Path\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom coldtype.geometry import Rect, Line, Point, Atom\n\nfrom typing import Callable\n\n\nclass DrawingMixin():\n    def _normPointSplat(self, p):\n        if isinstance(p[0], Point):\n            return p[0].xy()\n        elif len(p) == 1:\n            return p[0]\n        else:\n            return p\n\n    def moveTo(self, *p):\n        p = self._normPointSplat(p)\n        self._val.moveTo(p)\n        return self\n    \n    def m(self, *p):\n        return self.moveTo(*p)\n\n    def lineTo(self, *p):\n        p = self._normPointSplat(p)\n        if len(self._val.value) == 0:\n            self._val.moveTo(p)\n        else:\n            self._val.lineTo(p)\n        return self\n    \n    def l(self, *p):\n        return self.lineTo(*p)\n\n    def qCurveTo(self, *points):\n        self._val.qCurveTo(*points)\n        return self\n    \n    def q(self, *p):\n        return self.qCurveTo(*p)\n\n    def curveTo(self, *points):\n        self._val.curveTo(*points)\n        return self\n    \n    def c(self, *p):\n        return self.curveTo(*p)\n\n    def closePath(self):\n        self._val.closePath()\n        return self\n    \n    def cp(self):\n        return self.closePath()\n\n    def endPath(self):\n        self._val.endPath()\n        return self\n    \n    def ep(self):\n        return self.endPath()\n    \n    def addComponent(self, baseGlyphName, transformation):\n        print(\"pen.addComponent('%s', %s)\" % (baseGlyphName, tuple(transformation)))\n        return self\n    \n    def points(self, pts, close=True):\n        self.moveTo(pts[0])\n        for p in pts[1:]:\n            self.lineTo(p)\n        if close:\n            self.closePath()\n        else:\n            self.endPath()\n        return self\n    \n    def point_list(self, random_seed=None):\n        all_pts = []\n        for idx, (mv, pts) in enumerate(self._val.value):\n            all_pts.extend([Point(*p) for p in pts])\n        if random_seed is not None:\n            from random import Random\n            rnd = Random()\n            rnd.seed(random_seed)\n            rnd.shuffle(all_pts)\n        return all_pts\n    \n    def replay(self, pen):\n        self._val.replay(pen)\n\n        for el in self._els:\n            el.replay(pen)\n        return self\n    \n    def record(self, pen):\n        \"\"\"Play a pen into this pen, meaning that pen will be added to this one’s value.\"\"\"\n        if hasattr(pen, \"value\"):\n            pen.replay(self._val)\n            return self\n\n        if len(pen) > 0:\n            for el in pen._els:\n                self.record(el._val)\n        elif pen:\n            if isinstance(pen, Path):\n                self.withJSONValue(pen)\n            else:\n                pen.replay(self._val)\n        return self\n    \n    def unended(self):\n        if not self.val_present():\n            return None\n\n        if len(self._val.value) == 0:\n            return True\n        elif self._val.value[-1][0] not in [\"endPath\", \"closePath\"]:\n            return True\n        return False\n    \n    def fully_close_path(self):\n        if not self.val_present():\n            # TODO log noop?\n            return self\n\n        if self._val.value[-1][0] == \"closePath\":        \n            start = self._val.value[0][-1][-1]\n            end = self._val.value[-2][-1][-1]\n\n            if start != end:\n                self._val.value = self._val.value[:-1]\n                self.lineTo(start)\n                self.closePath()\n        return self\n    \n    fullyClosePath = fully_close_path\n\n    def rect(self, rect):\n        \"\"\"Rectangle primitive — `moveTo/lineTo/lineTo/lineTo/closePath`\"\"\"\n        rect = Rect(rect)\n        self.moveTo(rect.point(\"SW\").xy())\n        self.lineTo(rect.point(\"SE\").xy())\n        self.lineTo(rect.point(\"NE\").xy())\n        self.lineTo(rect.point(\"NW\").xy())\n        self.closePath()\n        return self\n    \n    r = rect\n    \n    def roundedRect(self, rect, hr, vr=None, scale=True):\n        \"\"\"Rounded rectangle primitive\"\"\"\n        if vr is None:\n            vr = hr\n        l, b, w, h = Rect(rect)\n        r, t = l + w, b + h\n        K = 4 * (math.sqrt(2)-1) / 3\n        \n        if scale:\n            circle = hr == 0.5 and vr == 0.5\n            if hr <= 0.5:\n                hr = w * hr\n            if vr <= 0.5:\n                vr = h * vr\n        else:\n            circle = False\n        \n        self.moveTo((l + hr, b))\n        if not circle:\n            self.lineTo((r - hr, b))\n        self.curveTo((r+hr*(K-1), b), (r, b+vr*(1-K)), (r, b+vr))\n        if not circle:\n            self.lineTo((r, t-vr))\n        self.curveTo((r, t-vr*(1-K)), (r-hr*(1-K), t), (r-hr, t))\n        if not circle:\n            self.lineTo((l+hr, t))\n        self.curveTo((l+hr*(1-K), t), (l, t-vr*(1-K)), (l, t-vr))\n        if not circle:\n            self.lineTo((l, b+vr))\n        self.curveTo((l, b+vr*(1-K)), (l+hr*(1-K), b), (l+hr, b))\n        self.closePath()\n        return self\n    \n    rr = roundedRect\n    \n    def oval(self, rect):\n        \"\"\"Oval primitive\"\"\"\n        if isinstance(rect, Point):\n            self.roundedRect(Rect.FromCenter(rect, 20, 20), 0.5, 0.5)\n        else:\n            self.roundedRect(rect, 0.5, 0.5)\n        return self\n    \n    o = oval\n\n    def superellipse(self, r, factor=65):\n        return (self\n            .moveTo(r.pw)\n            .bxc(r.ps, \"SW\", factor)\n            .bxc(r.pe, \"SE\", factor)\n            .bxc(r.pn, \"NE\", factor)\n            .bxc(r.pw, \"NW\", factor))\n\n    def line(self, points, moveTo=True, endPath=True):\n        \"\"\"Syntactic sugar for `moveTo`+`lineTo`(...)+`endPath`; can have any number of points\"\"\"\n        if isinstance(points, Line):\n            points = list(points)\n        if len(points) == 0:\n            return self\n        if len(self._val.value) == 0 or moveTo:\n            self.moveTo(points[0])\n        else:\n            self.lineTo(points[0])\n        for p in points[1:]:\n            self.lineTo(p)\n        if endPath:\n            self.endPath()\n        return self\n    \n    def hull(self, points):\n        \"\"\"Same as `.line` but calls closePath instead of endPath`\"\"\"\n        self.moveTo(points[0])\n        for pt in points[1:]:\n            self.lineTo(pt)\n        self.closePath()\n        return self\n    \n    def round(self):\n        \"\"\"Round the values of this pen to integer values.\"\"\"\n        return self.round_to(1)\n\n    def round_to(self, rounding):\n        \"\"\"Round the values of this pen to nearest multiple of rounding.\"\"\"\n        def rt(v, mult):\n            rndd = float(round(v / mult) * mult)\n            if rndd.is_integer():\n                return int(rndd)\n            else:\n                return rndd\n        \n        rounded = []\n        for t, pts in self._val.value:\n            _rounded = []\n            for p in pts:\n                if p:\n                    x, y = p\n                    _rounded.append((rt(x, rounding), rt(y, rounding)))\n                else:\n                    _rounded.append(p)\n            rounded.append((t, _rounded))\n        \n        self._val.value = rounded\n        return self\n    \n    # Compound curve mechanics\n    \n    def interpCurveTo(self, p1, f1, p2, f2, to, inset=0):\n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(to)\n        pl = Line(p1, p2).inset(inset)\n        b = Line(a, pl.start).t(f1/100)\n        c = Line(d, pl.end).t(f2/100)\n        return self.curveTo(b, c, d)\n    \n    def ioc(self, pt, slope=0, fA=0, fB=85):\n        return self.ioEaseCurveTo(pt, slope, fA, fB)\n\n    def ioEaseCurveTo(self, pt, slope=0, fA=0, fB=85):\n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(pt)\n        box = Rect.FromMnMnMxMx([\n            min(a.x, d.x),\n            min(a.y, d.y),\n            max(a.x, d.x),\n            max(a.y, d.y)\n        ])\n\n        if a.y < d.y:\n            line_vertical = Line(box.ps, box.pn)\n        else:\n            line_vertical = Line(box.pn, box.ps)\n\n        angle = Line(a, d).angle() - line_vertical.angle()\n\n        try:\n            fA1, fA2 = fA\n        except TypeError:\n            fA1, fA2 = fA, fA\n        \n        try:\n            fB1, fB2 = fB\n        except TypeError:\n            fB1, fB2 = fB, fB\n\n        rotated = line_vertical.rotate(math.degrees(angle*(slope/100)))\n        vertical = Line(rotated.intersection(box.es), rotated.intersection(box.en))\n\n        if a.y > d.y:\n            vertical = vertical.reverse()\n\n        c1 = Line(a, vertical.start).t(fA1)\n        c2 = Line(vertical.mid, vertical.start).t(fA1)\n        self.lineTo(c1)\n        self.curveTo(\n            Line(c1, vertical.start).t(fB1),\n            Line(c2, vertical.start).t(fB1),\n            c2)\n        c1 = Line(vertical.mid, vertical.end).t(fA2)\n        c2 = Line(d, vertical.end).t(fA2)\n        self.lineTo(c1)\n        self.curveTo(\n            Line(c1, vertical.end).t(fB2),\n            Line(c2, vertical.end).t(fB2),\n            c2)\n        self.lineTo(d)\n        return self\n    \n    def bxc(self, pt, point, factor=0.65, po=(0, 0), mods={}, flatten=False):\n        return self.boxCurveTo(pt, point, factor, po, mods, flatten)\n    \n    def roundedCorner(self, pt, point, multipliers, offset=4, factor=65):\n        a, b, c, d = multipliers\n        return (self\n            .lineTo(pt.offset(offset*a, offset*b))\n            .boxCurveTo(pt.offset(offset*c, offset*d), point, factor=factor))\n    \n    def boxCurveTo(self, pt, point, factor=0.65, po=(0, 0), mods={}, flatten=False):\n        if flatten:\n            self.lineTo(pt)\n            return self\n        \n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(pt)\n        box = Rect.FromMnMnMxMx([\n            min(a.x, d.x),\n            min(a.y, d.y),\n            max(a.x, d.x),\n            max(a.y, d.y)\n        ])\n\n        try:\n            f1, f2 = factor\n        except TypeError:\n            if isinstance(factor, Atom):\n                f1, f2 = (factor[0], factor[0])\n            else:\n                f1, f2 = (factor, factor)\n\n        if isinstance(point, str):\n            #print(\"POINT\", point)\n            if point == \"cx\": # ease-in-out\n                if a.y < d.y:\n                    p1 = box.pse\n                    p2 = box.pnw\n                elif a.y > d.y:\n                    p1 = box.pne\n                    p2 = box.psw\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            elif point == \"e\": # ease-in\n                if a.y < d.y:\n                    p1 = p2 = box.pse\n                elif a.y > d.y:\n                    p1 = p2 = box.pne\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            elif point == \"w\": # ease-out\n                if a.y < d.y:\n                    p1 = p2 = box.pnw\n                elif a.y > d.y:\n                    p1 = p2 = box.psw\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            else:\n                if \",\" in point:\n                    pt1, pt2 = [x.strip() for x in point.split(\",\")]\n                    p1 = box.point(pt1)\n                    p2 = box.point(pt2)\n                else:\n                    p = box.point(point)\n                    p1, p2 = (p, p)\n        elif isinstance(point, Point):\n            p1, p2 = point, point\n        else:\n            p1, p2 = point\n            p1 = box.point(p1)\n            p2 = box.point(p2)\n        \n        p1 = p1.offset(*po)\n        p2 = p2.offset(*po)\n        \n        b = a.interp(f1, p1)\n        c = d.interp(f2, p2)\n\n        mb = mods.get(\"b\")\n        mc = mods.get(\"c\")\n        if mb:\n            b = mb(b)\n        elif mc:\n            c = mc(c)\n        \n        self.curveTo(b, c, d)\n        return self\n    \n    def mirror(self, factors, point=None):\n        if point == 0:\n            point = (0, 0)\n        \n        return (self.layer(1,\n            lambda p: p.scale(*factors, point=point or self.ambit().psw)))\n    \n    def mirrorx(self, point=None):\n        return self.mirror((-1, 1), point=point)\n    \n    def mirrory(self, point=None):\n        return self.mirror((1, -1), point=point)\n    \n    def mirrorxy(self, point=None):\n        return self.mirror((-1, -1), point=point)\n    \n    def pattern(self, rect, clip=False):\n        dp_copy = self.copy()\n        #dp_copy.value = self.value\n\n        for y in range(-1, 1):\n            for x in range(-1, 1):\n                dpp = type(self)()\n                dp_copy.replay(dpp)\n                dpp.translate(rect.w*x, rect.h*y)\n                dpp.replay(self)\n        \n        self.translate(rect.w/2, rect.h/2)\n        if clip:\n            clip_box = type(self)().rect(rect)\n            return self.intersection(clip_box)\n        return self\n    \n    def withRect(self, rect, fn:Callable[[Rect, \"P\"], \"P\"]) -> \"P\":\n        r = Rect(rect)\n        return fn(r, self).data(frame=r)\n    \n    def gridlines(self, rect, x=20, y=None, absolute=False):\n        \"\"\"Construct a grid in the pen using `x` and (optionally) `y` subdivisions\"\"\"\n        xarg = x\n        yarg = y or x\n        if absolute:\n            x = int(rect.w / xarg)\n            y = int(rect.h / yarg)\n        else:\n            x = xarg\n            y = yarg\n        \n        for _x in rect.subdivide(x, \"minx\"):\n            if _x.x > 0 and _x.x > rect.x:\n                self.line([_x.point(\"NW\"), _x.point(\"SW\")])\n        for _y in rect.subdivide(y, \"miny\"):\n            if _y.y > 0 and _y.y > rect.y:\n                self.line([_y.point(\"SW\"), _y.point(\"SE\")])\n        return self.f(None).s(0, 0.1).sw(3)\n    \n    def ez(self, r, start_y, end_y, s):\n        self.moveTo(r.edge(\"W\").t(start_y))\n        self.gs(s, do_close=False, first_move=\"lineTo\")\n        self.lineTo(r.edge(\"E\").t(end_y))\n        self.endPath()\n        return self\n    \n    def segments(self, all_curves=False):\n        if not self.val_present():\n            for idx, el in enumerate(self._els):\n                self._els[idx] = el.segments()\n            return self\n        \n        segs = []\n        last = None\n        for contour in self.copy().explode():\n            for mv, pts in contour.v.value:\n                if last:\n                    if mv == \"curveTo\":\n                        segs.append(type(self)().moveTo(last).curveTo(*pts))\n                    if mv == \"lineTo\":\n                        if all_curves:\n                            ln = Line(last, pts[0])\n                            segs.append(type(self)().moveTo(ln.start).curveTo(ln.t(0.25), ln.t(0.75), ln.end))\n                        else:\n                            segs.append(type(self)().moveTo(last).lineTo(*pts))\n                \n                if len(pts) > 0:\n                    last = pts[-1]\n                else:\n                    last = None\n        \n        self._val = None\n        self._els = segs\n        return self\n\n    def join(self):\n        self._val = RecordingPen()\n\n        self._val.moveTo(self._els[0].v.value[0][-1][-1])\n        for el in self._els:\n            self._val.value.extend(el.v.value[1:])\n        \n        self._els = []\n        return self\n    \n    def substructure(self):\n        indicators = type(self)()\n        def append(p):\n            substructure = p.data(\"substructure\")\n            if substructure:\n                indicators.append(substructure)\n        self.mapv(append)\n        return indicators"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/FXMixin.py",
    "content": "import math\nfrom copy import deepcopy\nfrom random import randint\n\nfrom fontTools.pens.basePen import decomposeQuadraticSegment\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontPens.flattenPen import FlattenPen\n\nfrom coldtype.geometry import Point\nfrom coldtype.pens.outlinepen import OutlinePen\nfrom coldtype.pens.translationpen import TranslationPen, polarCoord\nfrom coldtype.pens.misc import ExplodingPen, SmoothPointsPen\nfrom coldtype.random import random_series\n\nclass FXMixin():\n    def trim_start(self):\n        self.pvl()\n        new_start = self._val.value[1][-1][-1]\n        self._val.value[1][0] = \"moveTo\"\n        self._val.value[1][-1] = [new_start]\n        self._val.value = self._val.value[1:]\n        return self\n\n    def trim_end(self):\n        self.pvl()\n        end = self._val.value[-1][0]\n        if end in [\"closePath\", \"endPath\"]:\n            self._val.value = self._val.value[:-2]\n            if end == \"closePath\":\n                self.cp()\n            else:\n                self.ep()\n        else:\n            self._val.value = self._val.value[:-1]\n        return self\n\n    def q2c(self):\n        new_vl = []\n        for mv, pts in self.v.value:\n            if mv == \"qCurveTo\":\n                # does not handle all-offcurve+None mode\n                # https://forum.drawbot.com/topic/58/qcurve\n                # https://github.com/fonttools/skia-pathops/issues/45\n                # https://github.com/fonttools/skia-pathops/issues/71\n                decomposed = decomposeQuadraticSegment(pts)\n                for dpts in decomposed:\n                    qp1, qp2 = [Point(pt) for pt in dpts]\n                    try:\n                        qp0 = Point(new_vl[-1][-1][-1])\n                        cp1 = qp0 + (qp1 - qp0)*(2.0/3.0)\n                        cp2 = qp2 + (qp1 - qp2)*(2.0/3.0)\n                        new_vl.append([\"curveTo\", (cp1, cp2, qp2)])\n                    except Exception as e:\n                        print(\"failed q2c\", e)\n            else:\n                new_vl.append([mv, pts])\n        self.v.value = new_vl\n        return self\n\n    def flatten(self, length=10, segmentLines=True):\n        \"\"\"\n        Runs a fontTools `FlattenPen` on this pen\n        \"\"\"\n        for el in self._els:\n            el.flatten(length, segmentLines)\n\n        if self.val_present():\n            rp = RecordingPen()\n            fp = FlattenPen(rp, approximateSegmentLength=length, segmentLines=segmentLines)\n            self.replay(fp)\n            self._val.value = rp.value\n\n        return self\n    \n    def smooth(self):\n        for el in self._els:\n            el.smooth()\n        \n        if self.val_present():\n            rp = RecordingPen()\n            fp = SmoothPointsPen(rp)\n            self.replay(fp)\n            self._val.value = rp.value\n        \n        return self\n    \n    def catmull(self, points, close=False):\n        \"\"\"Run a catmull spline through a series of points\"\"\"\n        p0 = points[0]\n        p1, p2, p3 = points[:3]\n        pts = [p0]\n        i = 1\n        while i < len(points):\n            pts.append([\n                ((-p0[0] + 6 * p1[0] + p2[0]) / 6),\n                ((-p0[1] + 6 * p1[1] + p2[1]) / 6),\n                ((p1[0] + 6 * p2[0] - p3[0]) / 6),\n                ((p1[1] + 6 * p2[1] - p3[1]) / 6),\n                p2[0],\n                p2[1]\n            ])\n            p0 = p1\n            p1 = p2\n            p2 = p3\n            try:\n                p3 = points[i + 2]\n            except:\n                p3 = p3\n            i += 1\n        self.moveTo(pts[0])\n        for p in pts[1:]:\n            self.curveTo((p[0], p[1]), (p[2], p[3]), (p[4], p[5]))\n        if close:\n            self.closePath()\n        return self\n    \n    def roughen(self, amplitude=10, threshold=10, ignore_ends=False, seed=None):\n        \"\"\"Randomizes points in skeleton\"\"\"\n        if seed is not None:\n            rs = random_series(0, amplitude, seed=seed)\n        else:\n            rs = random_series(0, amplitude, seed=randint(0, 5000))\n        randomized = []\n        _x = 0\n        _y = 0\n        for idx, (t, pts) in enumerate(self.v.value):\n            if idx == 0 and ignore_ends:\n                randomized.append([t, pts])\n                continue\n            if idx == len(self.v.value) - 1 and ignore_ends:\n                randomized.append([t, pts])\n                continue\n            if t == \"lineTo\" or t == \"curveTo\":\n                #jx = pnoise1(_x) * amplitude # should actually be 1-d on the tangent (maybe? TODO)\n                #jy = pnoise1(_y) * amplitude\n                jx = rs[idx*2] - amplitude/2\n                jy = rs[idx*2+1] - amplitude/2\n                randomized.append([t, [(x+jx, y+jy) for x, y in pts]])\n                _x += 0.2\n                _y += 0.3\n            else:\n                randomized.append([t, pts])\n        self.v.value = randomized\n        return self\n    \n    def explode(self):\n        \"\"\"Convert all contours to individual paths\"\"\"\n        for el in self._els:\n            el.explode()\n\n        if self.val_present():\n            rp = RecordingPen()\n            ep = ExplodingPen(rp)\n            self.replay(ep)\n\n            for p in ep._pens:\n                el = type(self)()\n                el._val.value = p\n                el._attrs = deepcopy(self._attrs)\n                self.append(el)\n            \n            self._val = RecordingPen()\n        \n        return self\n    \n    def implode(self):\n        # TODO preserve frame from some of this?\n        #self.reset_val()\n        self._val = RecordingPen()\n        \n        for el in self._els:\n            self.record(el._val)\n\n        self._els = []\n        return self\n    \n    def map_points(self, fn, filter_fn=None):\n        idx = 0\n        for cidx, c in enumerate(self._val.value):\n            move, pts = c\n            pts = list(pts)\n            for pidx, p in enumerate(pts):\n                x, y = p\n                if filter_fn and not filter_fn(Point(p)):\n                    continue\n                result = fn(idx, x, y)\n                if result:\n                    pts[pidx] = result\n                idx += 1\n            self._val.value[cidx] = (move, pts)\n        return self\n    \n    def mod_contour(self, contour_index, mod_fn=None):\n        exploded = self.copy().explode()\n        if mod_fn:\n            mod_fn(exploded[contour_index])\n            self._val.value = exploded.implode()._val.value\n            return self\n        else:\n            return exploded[contour_index]\n    \n    def filterContours(self, filter_fn):\n        if self.val_present():\n            exploded = self.copy().explode()\n            keep = []\n            for idx, c in enumerate(exploded):\n                if filter_fn(idx, c):\n                    keep.append(c)\n            self._val.value = type(self)(keep).implode()._val.value\n        return self\n    \n    def repeat(self, times=1):\n        for el in self._els:\n            el.repeat(times)\n\n        if self.val_present():\n            copy = self.copy()._val.value\n            _, copy_0_data = copy[0]\n            copy[0] = (\"moveTo\", copy_0_data)\n            self._val.value = self._val.value[:-1] + copy\n            if times > 1:\n                self.repeat(times-1)\n        \n        return self\n\n    def outline(self,\n        offset=1,\n        drawInner=True,\n        drawOuter=True,\n        cap=\"square\",\n        miterLimit=None,\n        closeOpenPaths=True\n        ):\n        \"\"\"AKA expandStroke\"\"\"\n        for el in self._els:\n            el.outline(offset, drawInner, drawOuter, cap, miterLimit, closeOpenPaths)\n        \n        if self.val_present():\n            op = OutlinePen(None\n                , offset=offset\n                , optimizeCurve=True\n                , cap=cap\n                , miterLimit=miterLimit\n                , closeOpenPaths=closeOpenPaths)\n            \n            self._val.replay(op)\n            op.drawSettings(drawInner=drawInner\n                , drawOuter=drawOuter)\n            g = op.getGlyph()\n            self._val.value = []\n            g.draw(self._val)\n        \n        return self\n    \n    ol = outline\n    \n    def project(self, angle, width):\n        offset = polarCoord((0, 0), math.radians(angle), width)\n        self.translate(offset[0], offset[1])\n        return self\n\n    def castshadow(self,\n        angle=-45,\n        width=100,\n        ro=1,\n        fill=True\n        ):\n        for el in self._els:\n            el.castshadow(angle, width, ro, fill)\n        \n        if self.val_present():\n            out = RecordingPen()\n            tp = TranslationPen(out\n                , frontAngle=angle\n                , frontWidth=width)\n            \n            self._val.replay(tp)\n            if fill:\n                self.copy().project(angle, width)._val.replay(out)\n                #out.record()\n            \n            self._val.value = out.value\n            if ro:\n                self.removeOverlap()\n        \n        return self\n    \n    def understroke(self,\n        s=0,\n        sw=5,\n        outline=False,\n        dofill=0,\n        miterLimit=None\n        ):\n        if sw == 0:\n            return self\n        \n        def mod_fn(p):\n            if not outline:\n                return p.fssw(s, s, sw)\n            else:\n                if dofill:\n                    pf = p.copy()\n                p.f(s).outline(sw*2, miterLimit=miterLimit)\n                if dofill:\n                    p.reverse().record(pf)\n                return p\n\n        return self.layerv(mod_fn, 1)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/GeometryMixin.py",
    "content": "from coldtype.geometry.point import Point\nfrom coldtype.geometry.line import Line\n\n\nclass GeometryMixin():\n    def nsew(self):\n        pts = [el[1][-1] for el in self.v.value if len(el[1]) > 0]\n        \n        lines = []\n        for i, p in enumerate(pts):\n            if i + 1 == len(pts):\n                lines.append(Line(p, pts[0]))\n            else:\n                lines.append(Line(p, pts[i+1]))\n        \n        mnx, mny, mxx, mxy = self.bounds().mnmnmxmx()\n        min_ang = min([l.ang for l in lines])\n        max_ang = max([l.ang for l in lines])\n        #for idx, l in enumerate(lines):\n        #    print(idx, \">\", l.ang, min_ang, max_ang)\n        xs = [l for l in lines if l.ang < 0.25 or l.ang > 2.5]\n        ys = [l for l in lines if 1 < l.ang < 2]\n\n        if len(ys) == 2 and len(xs) < 2:\n            xs = [l for l in lines if l not in ys]\n        elif len(ys) < 2 and len(xs) == 2:\n            ys = [l for l in lines if l not in xs]\n        \n        #for l in ys:\n        #    print(l.ang)\n\n        #print(len(xs), len(ys))\n        #print(\"--------------------\")\n\n        try:\n            n = [l for l in xs if l.start.y == mxy or l.end.y == mxy][0]\n            s = [l for l in xs if l.start.y == mny or l.end.y == mny][0]\n            e = [l for l in ys if l.start.x == mxx or l.end.x == mxx][0]\n            w = [l for l in ys if l.start.x == mnx or l.end.x == mnx][0]\n            return n, s, e, w\n        except IndexError:\n            amb = self.ambit(tx=1, ty=1)\n            return [amb.en, amb.es, amb.ee, amb.ew]\n        \n    \n    def avg(self):\n        self.pvl()\n        pts = []\n        for _, _pts in self.v.value:\n            if len(_pts) > 0:\n                pts.extend(_pts)\n        n = len(pts)\n        return Point(\n            sum([p.x for p in pts])/n,\n            sum([p.y for p in pts])/n)\n\n    @property\n    def ecx(self):\n        n, s, e, w = self.nsew()\n        return e.interp(0.5, w.reverse())\n    \n    @property\n    def ecy(self):\n        n, s, e, w = self.nsew()\n        return n.interp(0.5, s.reverse())\n    \n    def edge(self, e):\n        e = e.lower()\n        if e == \"n\":\n            return self.en\n        elif e == \"s\":\n            return self.es\n        elif e == \"e\":\n            return self.ee\n        elif e == \"w\":\n            return self.ew\n\n    def point(self, pt):\n        n, s, e, w = self.nsew()\n        if pt == \"NE\":\n            return n.pe\n        elif pt == \"NW\":\n            return n.pw\n        elif pt == \"SE\":\n            return s.pe\n        elif pt == \"SW\":\n            return s.pw\n        elif pt == \"N\":\n            return n.mid\n        elif pt == \"S\":\n            return s.mid\n        elif pt == \"E\":\n            return e.mid\n        elif pt == \"W\":\n            return w.mid\n        elif pt == \"C\":\n            return self.ecx.sect(self.ecy)\n\n    @property\n    def pne(self): return self.point(\"NE\")\n    @property\n    def pnw(self): return self.point(\"NW\")\n    @property\n    def psw(self): return self.point(\"SW\")\n    @property\n    def pse(self): return self.point(\"SE\")\n    @property\n    def pn(self): return self.point(\"N\")\n    @property\n    def ps(self): return self.point(\"S\")\n    @property\n    def pe(self): return self.point(\"E\")\n    @property\n    def pw(self): return self.point(\"W\")\n    @property\n    def pc(self): return self.point(\"C\")\n    @property\n    def en(self): return self.nsew()[0]\n    @property\n    def es(self): return self.nsew()[1]\n    @property\n    def ee(self): return self.nsew()[2]\n    @property\n    def ew(self): return self.nsew()[3]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/GlyphMixin.py",
    "content": "from fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.pens.transformPen import TransformPen\nfrom fontTools.misc.transform import Transform\n\n\nclass GlyphMixin():\n    def glyph(self, glyph, glyphSet=None, layerComponents=False):\n        \"\"\"Play a glyph (like from `defcon`) into this pen.\"\"\"\n        out = type(self)()\n        base = type(self)()\n        out.append(base)\n        glyph.draw(base._val)\n\n        new_val = []\n        for mv, pts in base._val.value:\n            if mv == \"addComponent\":\n                component_name, matrix = pts\n                rp = RecordingPen()\n                tp = TransformPen(rp, Transform(*matrix))\n                component = glyphSet[component_name]\n                # recursively realize any nested components\n                realized = type(self)().glyph(component, glyphSet)\n                realized.replay(tp)\n                p = type(self)()\n                p._val = rp\n                out.append(p)\n                if \"addComponent\" in str(p._val.value):\n                    print(\"> NESTED COMPONENT\", component_name)\n            else:\n                new_val.append((mv, pts))\n        \n        base._val.value = new_val\n        \n        if layerComponents:\n            return out\n        else:\n            try:\n                out.pen().replay(self._val)\n            except IndexError:\n                pass\n            return self\n    \n    def toGlyph(self, name=None, width=None, allow_blank=False):\n        \"\"\"\n        Create a glyph (like from `defcon`) using this pen’s value.\n        *Warning*: if path is unended, closedPath will be called\n        \"\"\"\n        from defcon import Glyph\n        if not allow_blank:\n            if self.unended():\n                self.closePath()\n        bounds = self.bounds()\n        glyph = Glyph()\n        glyph.name = name\n        glyph.width = width or bounds.w\n        try:\n            sp = glyph.getPen()\n            self.replay(sp)\n        except AssertionError:\n            if not allow_blank:\n                print(\">>>blank glyph:\", glyph.name)\n        return glyph"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/LayoutMixin.py",
    "content": "import math\n\nfrom fontTools.pens.boundsPen import BoundsPen\nfrom fontTools.misc.transform import Transform\nfrom fontTools.pens.transformPen import TransformPen\nfrom fontTools.pens.recordingPen import RecordingPen\n\nfrom coldtype.geometry import Point, Rect, align\nfrom coldtype.interpolation import norm\nfrom coldtype.color import bw, rgb, hsl\n\nfrom functools import partialmethod\n\nTHTV_WARNING = False\n\nclass LayoutMixin():\n    def bounds(self):\n        \"\"\"Calculate the exact bounds of this shape, using a BoundPen\"\"\"\n        b = Rect(0, 0, 0, 0)\n        \n        if self.val_present():\n            try:\n                cbp = BoundsPen(None)\n                self._val.replay(cbp)\n                mnx, mny, mxx, mxy = cbp.bounds\n                b = Rect((mnx, mny, mxx - mnx, mxy - mny))\n            except:\n                pass\n        \n        if len(self._els) > 0:\n            bs = []\n            for el in self._els:\n                eb = el.bounds()\n                if eb and eb.nonzero():\n                    bs.append(eb)\n            \n            if len(bs) > 0:\n                b = bs[0]\n                for eb in bs[1:]:\n                    b = b.union(eb)\n        \n        return b\n    \n    def _normT(self, th, tv, tx, ty, t):\n        import traceback\n        global THTV_WARNING\n\n        if th is not None:\n            #traceback.print_stack()\n            tx = th\n            if not THTV_WARNING:\n                print(\"! API CHANGE: th/tv are now tx/ty !\")\n                THTV_WARNING = True\n        if tv is not None:\n            #traceback.print_stack()\n            ty = tv\n            if not THTV_WARNING:\n                print(\"! API CHANGE: th/tv are now tx/ty !\")\n                THTV_WARNING = True\n\n        if t is not None:\n            tx = bool(int(t))\n            if tx:\n                ty = int((t-1)*10) == 1\n            else:\n                ty = int(t)*10 == 1\n        else:\n            tx, ty = tx, ty\n        return tx, ty\n    \n    def empty(self):\n        return len(self._val.value) == 0\n    \n    def ambit(self, th=None, tv=None, tx=0, ty=0, t=None) -> Rect:\n        \"\"\"\n        Get the calculated rect boundary.\n        \n        - `tx` means `(t)rue (x)` (i.e. the true width/horizontal dimension (was previously th));\n        - `ty` means `(t)rue (y)` (i.e. the true height/vertical dimension (was previously tv));\n        \n        Passing either ignores a non-bounds-derived frame\n        in either dimension\n        \"\"\"\n        \n        tx, ty = self._normT(th, tv, tx, ty, t)\n        f = self._data.get(\"frame\", None)\n\n        # true bounds\n        if tx and ty:\n            return self.bounds()\n        \n        # true no-bounds\n        elif not tx and not ty and f:\n            return f\n        \n        # partial bounds\n        elif f and (self.val_present() or (self.data(\"glyphName\") and len(self) == 0)):\n            if self.empty():\n                if tx:\n                    f = f.setw(0)\n                elif ty:\n                    f = f.seth(0)\n                return f\n            else:\n                b = self.bounds()\n                if tx:\n                    return Rect(b.x, f.y, b.w, f.h)\n                else:\n                    return Rect(f.x, b.y, f.w, b.h)\n        \n        # pass-to-els\n        elif len(self._els) > 0:\n            try:\n                union = self._els[0].ambit(tx=tx, ty=ty)\n                for p in self._els[1:]:\n                    a = p.ambit(tx=tx, ty=ty)\n                    if a.x == 0 and a.y == 0 and a.w == 0 and a.h == 0:\n                        continue\n                    union = union.union(a)\n                return union\n            except Exception as _:\n                return Rect(0,0,0,0)\n        \n        # catch-all\n        return self.bounds()\n        \n        # if f or self._val:\n        #     if (th or tv) and not self.empty():\n        #         b = self.bounds()\n        #         if th and tv:\n        #             return b\n        #         elif th:\n        #             return Rect(b.x, f.y, b.w, f.h)\n        #         else:\n        #             return Rect(f.x, b.y, f.w, b.h)\n        #     else:\n        #         if self.empty():\n        #             if th:\n        #                 f = f.setw(0)\n        #             elif tv:\n        #                 f = f.seth(0)\n        #             return f\n        #         return f\n        # elif :\n        #     return self.bounds()\n    \n    getFrame = ambit\n    \n    def align(self,\n        rect,\n        x=\"mdx\",\n        y=\"mdy\",\n        th=None, # deprecated\n        tv=None, # deprecated\n        tx=1,\n        ty=0,\n        transformFrame=True,\n        h=None,\n        returnOffset=False\n        ):\n        \"\"\"\n        Align this pen to another rect, defaults to the center.\n\n        - `tx` means true-x (i.e. will disregard any invisible 'frame'\n        set on the pen (as in the case of glyphs returned from StSt/Glyphwise));\n        - `ty` means true-y, which is the same but for the vertical dimension\n        \"\"\"\n\n        if not isinstance(rect, Rect):\n            if hasattr(rect, \"ambit\"):\n                rect = rect.ambit(tx=tx, ty=ty)\n            elif isinstance(rect, Point) and rect._rect is not None:\n                x, y = rect._corner\n                rect = rect._rect\n            elif hasattr(rect, \"rect\"):\n                rect = rect.rect\n            else:\n                raise Exception(\"can't align to this object\")\n        \n        tx, ty = self._normT(th, tv, tx, ty, None)\n        r = self.ambit(tx=tx, ty=ty)\n\n        if h is not None:\n            r = r.seth(h)\n        \n        self.data(_last_align_rect=rect)\n        \n        offset = align(r, rect, x, y)\n        self.translate(*offset,\n            transformFrame=transformFrame)\n        \n        if returnOffset:\n            return offset\n        else:\n            return self\n    \n    def _align_compass(self, compass, rect, tx=1, ty=0):\n        return self.align(rect, compass, tx=tx, ty=ty)\n    \n    #å = align\n\n    alne = partialmethod(_align_compass, \"NE\")\n    ale = partialmethod(_align_compass, \"E\")\n    alse = partialmethod(_align_compass, \"SE\")\n    als = partialmethod(_align_compass, \"S\")\n    alsw = partialmethod(_align_compass, \"SW\")\n    alw = partialmethod(_align_compass, \"W\")\n    alnw = partialmethod(_align_compass, \"NW\")\n    aln = partialmethod(_align_compass, \"N\")\n\n    def xalign(self, rect=None, x=\"centerx\", th=None, tv=None, tx=1, ty=0):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if x == \"C\":\n            x = \"CX\"\n        \n        if rect is None:\n            rect = self.ambit(tx=tx, ty=ty)\n        \n        if callable(rect):\n            rect = rect(self)\n        \n        self.align(rect, x=x, y=None, tx=tx, ty=ty)\n        for el in self._els:\n            el.align(rect, x=x, y=None, tx=tx, ty=ty)\n        return self\n    \n    #xå = xalign\n\n    def yalign(self, rect=None, y=\"centery\", th=None, tv=None, tx=0, ty=1):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if rect is None:\n            rect = self.ambit(tx=tx, ty=ty)\n        \n        if callable(rect):\n            rect = rect(self)\n        \n        self.align(rect, x=None, y=y, tx=tx, ty=ty)\n        return self\n    \n    #yå = yalign\n\n    def _normPoint(self, point=None, th=None, tv=None, tx=0, ty=0, **kwargs):\n        tx, ty = self._normT(th, tv, tx, ty, kwargs.get(\"t\"))\n\n        if \"pt\" in kwargs:\n            point = kwargs[\"pt\"]\n        \n        a = self.ambit(tx=tx, ty=ty)\n        if point is None:\n            return a.pc\n        elif point == 0:\n            return a.psw\n        elif point is False:\n            return Point(0, 0)\n        elif isinstance(point, str):\n            if point.startswith(\"tx\"):\n                a = self.ambit(tx=1, ty=0)\n                point = point[2:]\n            elif point.startswith(\"ty\"):\n                a = self.ambit(tx=0, ty=1)\n                point = point[2:]\n            elif point.startswith(\"t\"):\n                a = self.ambit(tx=1, ty=1)\n                point = point[1:]\n            return a.point(point)\n        elif (not (isinstance(point[1], int)\n                or isinstance(point[1], float))\n            and hasattr(self, \"_normPoint\")):\n            return self[point[0]]._normPoint(point[1])\n        else:\n            return Point(point)\n    \n    def transform(self, transform, transformFrame=True):\n        \"\"\"Perform an arbitrary transformation on the pen, using the fontTools `Transform` class.\"\"\"\n\n        if self.val_present():\n            op = RecordingPen()\n            tp = TransformPen(op, transform)\n            self._val.replay(tp)\n            self._val.value = op.value\n        \n        f = self._data.get(\"frame\")\n        if transformFrame and f:\n            self.data(frame=f.transform(transform))\n        \n        for p in self._els:\n            p.transform(transform, transformFrame=transformFrame)\n        \n        substructure = self._data.get(\"substructure\")\n        if substructure:\n            substructure.transform(transform, transformFrame=transformFrame)\n        \n        img = self.img()\n        if img:\n            img[\"rect\"] = img[\"rect\"].transform(transform)\n        \n        return self\n    \n    def matrix(self, a, b, c, d, e, f, transformFrame=False):\n        return self.transform(Transform(a, b, c, d, e, f), transformFrame=transformFrame)\n    \n    def invertYAxis(self, height):\n        rp = RecordingPen()\n        tp = TransformPen(rp, (1, 0, 0, -1, 0, height))\n        self.replay(tp)\n        self._val.value = rp.value\n        return self\n    \n    def nonlinear_transform(self, fn):\n        for el in self._els:\n            el.nonlinear_transform(fn)\n        \n        if self.val_present():\n            for idx, (move, pts) in enumerate(self._val.value):\n                if len(pts) > 0:\n                    _pts = []\n                    for _pt in pts:\n                        x, y = _pt\n                        _pts.append(fn(x, y))\n                    self._val.value[idx] = (move, _pts)\n        \n        return self\n    \n    nlt = nonlinear_transform\n    \n    def translate(self, x, y=None, transformFrame=True):\n        \"\"\"Translate this shape by `x` and `y` (pixel values).\"\"\"\n        if y is None:\n            y = x\n        return self.transform(Transform(1, 0, 0, 1, x, y), transformFrame=transformFrame)\n    \n    offset = translate\n    t = translate\n\n    def shift(self, dx, dy, tx=1, ty=1):\n        amb = self.ambit(tx=tx, ty=ty)\n        self.translate(amb.w*dx, amb.h*dy)\n        return self\n    \n    sh = shift\n    \n    def zero(self, th=None, tv=None, tx=0, ty=0):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n        x, y, _, _ = self.ambit(tx=tx, ty=ty)\n        self.translate(-x, -y)\n        return self\n    \n    def centerZero(self, th=None, tv=None, tx=0, ty=0):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        x, y, w, h = self.ambit(tx=tx, ty=ty)\n        nx, ny = -x-w/2, -y-h/2\n        return (self\n            .t(-x-w/2, -y-h/2)\n            .data(centerZeroOffset=(nx, ny)))\n    \n    def centerPoint(self, rect, pt, interp=1, th=None, tv=None, tx=1, ty=0, **kwargs):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if \"i\" in kwargs:\n            interp = kwargs[\"i\"]\n        \n        x, y = self._normPoint(pt, tx=tx, ty=ty, **kwargs)\n\n        return self.translate(norm(interp, 0, rect.w/2-x), norm(interp, 0, rect.h/2-y))\n    \n    def skew(self, x=0, y=0, point=None, th=None, tv=None, tx=1, ty=0, **kwargs):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        px, py = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        t = t.translate(px, py)\n        t = t.skew(x, y)\n        t = t.translate(-px, -py)\n        return self.transform(t)\n    \n    def rotate(self, degrees, point=None, th=None, tv=None, tx=1, ty=1, **kwargs):\n        \"\"\"Rotate this shape by a degree (in 360-scale, counterclockwise).\"\"\"\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        x, y = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        t = t.translate(x, y)\n        t = t.rotate(math.radians(degrees))\n        t = t.translate(-x, -y)\n        return self.transform(t, transformFrame=False)\n    \n    rt = rotate\n\n    def r90(self, multiplier, point=None, tx=1, ty=1, **kwargs):\n        return self.rotate(90*multiplier, point=point, tx=tx, ty=ty, **kwargs)\n    \n    def scale(self, scaleX, scaleY=None, point=None, th=None, tv=None, tx=1, ty=0, **kwargs):\n        \"\"\"Scale this shape by a percentage amount (1-scale).\"\"\"\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        x, y = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        if point is not False:\n            t = t.translate(x, y)\n        t = t.scale(scaleX, scaleY or scaleX)\n        if point is not False:\n            t = t.translate(-x, -y)\n        return self.transform(t)\n    \n    def flipx(self):\n        return self.scale(-1,1)\n    \n    def flipy(self):\n        return self.scale(1,-1)\n    \n    def scaleToRect(self, rect, preserveAspect=True, shrink_only=False, tx=1, ty=0, return_number=False):\n        \"\"\"Scale this shape into a `Rect`.\"\"\"\n        bounds = self.bounds()\n        if not bounds.nonzero():\n            return self\n\n        h = rect.w / bounds.w\n        v = rect.h / bounds.h\n        if preserveAspect:\n            scale = h if h < v else v\n            if shrink_only and scale >= 1:\n                if return_number:\n                    return 1\n                return self\n            \n            if return_number:\n                return scale\n            else:\n                return self.scale(scale, tx=tx, ty=ty)\n        else:\n            if shrink_only and (h >= 1 or v >= 1):\n                if return_number:\n                    return 1, 1\n                return self\n            \n            if return_number:\n                return h, v\n            return self.scale(h, v, tx=tx, ty=ty)\n    \n    def scaleToWidth(self, w, shrink_only=False):\n        \"\"\"Scale this shape horizontally\"\"\"\n        b = self.bounds()\n        if shrink_only and b.w < w:\n            return self\n        else:\n            return self.scale(w / self.bounds().w, 1)\n    \n    def scaleToHeight(self, h, shrink_only=False):\n        \"\"\"Scale this shape horizontally\"\"\"\n        b = self.bounds()\n        if shrink_only and b.h < h:\n            return self\n        return self.scale(1, h / self.bounds().h)\n    \n    # multi-elements\n\n    def distribute(self, v=False, tracks=None, th=None, tv=None, tx=0, ty=0):\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        off = 0\n        for idx, p in enumerate(self):\n            if tracks is not None and idx > 0:\n                t = tracks[idx-1]\n                #print(t)\n                off += t\n            frame = p.ambit(tx=tx, ty=ty)\n            if v:\n                if frame.y < 0:\n                    p.translate(0, -frame.y)\n                p.translate(0, off)\n                off += frame.h\n            else:\n                if frame.x < 0:\n                    p.translate(-frame.x, 0)\n                if frame.x > 0 and th:\n                    p.translate(-frame.x, 0)\n                p.translate(off, 0)\n                off += frame.w\n        return self\n    \n    def spread(self, tracking=0, tx=0, zero=False):\n        \"Horizontal distribution of elements\"\n        if zero:\n            for p in self:\n                p.zero(tx=tx)\n        ambits = [p.ambit(tx=tx, ty=0).expand(tracking, \"E\") for p in self._els]\n        \n        ax = 0\n        for idx, p in enumerate(self._els):\n            aw = ambits[idx].w\n            p.translate(ax, 0)\n            ax += aw\n\n        return self\n    \n    def stack(self, leading=0, ty=0, zero=False):\n        \"Vertical distribution of elements\"\n        if isinstance(leading, str) and \"%\" in leading:\n            leading = self[0].ambit(ty=0).h * float(leading[:-1])/100\n        if zero:\n            for p in self:\n                p.zero()\n        ambits = [p.ambit(tx=0, ty=ty).expand(leading, \"N\") for p in self._els]\n        for idx, p in enumerate(self._els):\n            for a in ambits[idx+1:]:\n                p.translate(0, a.h)\n        return self\n    \n    def track(self, t, v=False):\n        \"\"\"Track-out/distribute elements\"\"\"\n        for idx, p in enumerate(self._els):\n            if v:\n                p.translate(0, -t*idx)\n            else:\n                p.translate(t*idx, 0)\n        return self\n    \n    def lead(self, leading):\n        \"Vertical spacing\"\n        ln = len(self._els)\n\n        try:\n            if self._els[-1].ambit().y > self._els[0].ambit().y:\n                leading = -leading\n        except IndexError:\n            pass\n        \n        for idx, p in enumerate(self._els):\n            p.translate(0, leading*(ln-1-idx))\n        return self\n    \n    def grid(self, every, spread=0, stack=0, zero=False):\n        top = type(self)()\n        row = None\n        \n        for idx, p in enumerate(self._els):\n            if zero:\n                p.zero()\n            \n            if idx%every == 0:\n                row = type(self)()\n                top.append(row)\n            row.append(p)\n        \n        self._els = top._els\n\n        for row in self:\n            row.spread(spread)\n        \n        self.stack(stack)\n        return self\n    \n    def gridlayer(self, nx, ny=None, track=0, lead=0):\n        \"\"\"Spread nx copies and then stack ny copies, w/ optional tracking & leading\"\"\"\n        return (self\n            .layer(nx)\n            .spread(track)\n            .layer(ny if ny is not None else nx)\n            .stack(lead))\n    \n    def pasteup(self, styler=lambda p: p.f(bw(1)), padding=(5, 5), tx=1, ty=0, x=\"CX\", y=\"CY\"):\n        r = self.ambit(tx=tx, ty=ty).inset(*[-x for x in padding]).zero()\n        board = type(self)(r).ch(styler)\n        self.align(r, tx=tx, ty=ty, x=x, y=y)\n        return self.up().insert(0, board)\n    \n    def pattern_repeat(self, r):\n        a = self.ambit(tx=1, ty=1)\n        copies = type(self)()\n        def repeater(_p):\n            if a.mxx > r.mxx:\n                copies.append(_p.copy().translate(-r.w, 0).fssw(hsl(0, a=0.5), -1, 0).rotate(0))\n            if a.mxy > r.mxy:\n                copies.append(_p.copy().translate(0, -r.h).fssw(hsl(0.25, a=0.5), -1, 0).rotate(0))\n            if a.mny < r.mny:\n                copies.append(_p.copy().translate(0, r.h).fssw(hsl(0.5, a=0.5), -1, 0).rotate(0))\n            if a.mnx < r.mnx:\n                copies.append(_p.copy().translate(r.w, 0).fssw(hsl(0.75, a=0.5), -1, 0).rotate(0))\n        repeater(self)\n        for c in list(copies):\n            repeater(c)\n        return self.up().append(copies)\n    \n    def track_with_width(self, t):\n        \"\"\"Track-out/distribute elements\"\"\"\n        x = 0\n        for idx, p in enumerate(self._els):\n            frame = p.ambit()\n            p.translate(x + t, 0)\n            x += frame.w\n        return self\n    \n    def track_to_width(self, width, pullToEdges=False, r=0):\n        return self.track_to_rect(Rect(width, 0), pullToEdges=pullToEdges, r=r)\n    \n    def track_to_rect(self, rect, pullToEdges=False, r=0):\n        \"\"\"Distribute pens evenly within a frame\"\"\"\n        if len(self) == 1:\n            return self.align(rect)\n        total_width = 0\n        pens = self._els\n        if r:\n            pens = list(reversed(pens))\n        start_x = pens[0].ambit(tx=pullToEdges).x\n        end_x = pens[-1].ambit(tx=pullToEdges).point(\"SE\").x\n        # TODO easy to knock out apostrophes here based on a callback, last \"actual\" frame\n        total_width = end_x - start_x\n        leftover_w = rect.w - total_width\n        tracking_value = leftover_w / (len(self)-1)\n        if pullToEdges:\n            xoffset = rect.x - pens[0].bounds().x\n        else:\n            xoffset = rect.x - pens[0].ambit().x\n        for idx, p in enumerate(pens):\n            if idx == 0:\n                p.translate(xoffset, 0)\n            else:\n                p.translate(xoffset+tracking_value*idx, 0)\n        return self\n    \n    trackToRect = track_to_rect\n\n    def connect(self, *others):\n        return (type(self)([self, *others])\n            .distribute()\n            .pen())\n\n    @property\n    def x(self): return self.ambit().x\n    @property\n    def y(self): return self.ambit().y\n    @property\n    def w(self): return self.ambit().w\n    @property\n    def h(self): return self.ambit().h\n\n    @property\n    def tx(self): return self.ambit(tx=1).x\n    @property\n    def ty(self): return self.ambit(ty=1).y\n    @property\n    def tw(self): return self.ambit(tx=1).w\n    @property\n    def th(self): return self.ambit(ty=1).h"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/PathopsMixin.py",
    "content": "from coldtype.pens.misc import BooleanOp, calculate_pathop\n\n\nclass PathopsMixin():\n    def _pathop(self, otherPen=None, operation=BooleanOp.XOR, use_skia_pathops_draw=True):\n        if callable(otherPen):\n            otherPen = otherPen(self)\n\n        if self.val_present():\n            self._val.value = calculate_pathop(self, otherPen, operation, use_skia_pathops_draw=use_skia_pathops_draw)\n        \n        if otherPen is not None or operation == BooleanOp.Simplify:\n            for el in self._els:\n                el._pathop(otherPen, operation)\n        else:\n            curr = self._els[0]\n            for el in self._els[1:]:\n                curr._pathop(el, operation)\n            self._els = [curr]\n\n        # if hasattr(self, \"pmap\"):\n        #     return self.pmap(lambda p: p._pathop(otherPen, operation))\n        # self.value = calculate_pathop(self, otherPen, operation)\n        return self\n    \n    def difference(self, otherPen=None):\n        \"\"\"Calculate and return the difference of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Difference)\n    \n    def union(self, otherPen=None):\n        \"\"\"Calculate and return the union of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Union)\n    \n    def xor(self, otherPen=None):\n        \"\"\"Calculate and return the XOR of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.XOR)\n    \n    def reverseDifference(self, otherPen=None):\n        \"\"\"Calculate and return the reverseDifference of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.ReverseDifference)\n    \n    def intersection(self, otherPen=None):\n        \"\"\"Calculate and return the intersection of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Intersection)\n    \n    def removeOverlap(self, use_skia_pathops_draw=True):\n        \"\"\"Remove overlaps within this shape and return itself.\"\"\"\n        return self._pathop(otherPen=None, operation=BooleanOp.Simplify, use_skia_pathops_draw=use_skia_pathops_draw)\n    \n    remove_overlap = removeOverlap\n    ro = removeOverlap"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/SegmentingMixin.py",
    "content": "import math\n\nfrom fontPens.marginPen import MarginPen\nfrom fontTools.misc.transform import Transform\n\nfrom coldtype.geometry import Line\nfrom coldtype.beziers import CurveCutter, CurveSample, splitCubicAtT, calcCubicArcLength\n\n\nclass SegmentingMixin():\n    def distribute_on_path(self,\n        path,\n        offset=0,\n        cc=None,\n        notfound=None,\n        center=False,\n        apply_tangent=True,\n        baseline=0,\n        ):\n        if len(self) == 0:\n            # TODO print error?\n            return self\n\n        if cc:\n            cutter = cc\n        else:\n            cutter = CurveCutter(path)\n        if center is not False:\n            offset = (cutter.length-self.bounds().w)/2 + center\n        limit = len(self._els)\n        for idx, p in enumerate(self._els):\n            f = p.ambit()\n            bs = f.y\n            ow = offset + f.x + f.w / 2\n            #if ow < 0:\n            #    if notfound:\n            #        notfound(p)\n            if ow > cutter.length:\n                limit = min(idx, limit)\n            else:\n                _p, tangent = cutter.subsegmentPoint(end=ow)\n                x_shift = bs * math.cos(math.radians(tangent))\n                y_shift = bs * math.sin(math.radians(tangent))\n                if baseline > 1:\n                    p.translate(0, -f.h*baseline)\n                t = Transform()\n                t = t.translate(_p[0] + x_shift - f.x, _p[1] + y_shift - f.y)\n                t = t.translate(f.x, f.y)\n                if apply_tangent:\n                    t = t.rotate(math.radians(tangent-90))\n                else:\n                    p.data(tangent=tangent-90)\n                t = t.translate(-f.x, -f.y)\n                t = t.translate(-f.w*0.5)\n                p.transform(t)\n\n        if limit < len(self._els):\n            self._els = self._els[0:limit]\n        return self\n    \n    distributeOnPath = distribute_on_path\n\n    def subsegment(self, start=0, end=1):\n        \"\"\"Return a subsegment of the pen based on `t` values `start` and `end`\"\"\"\n        if not self.val_present():\n            return\n        \n        cc = CurveCutter(self)\n        start = 0\n        end = end * cc.calcCurveLength()\n        pv = cc.subsegment(start, end)\n        self._val.value = pv\n        return self\n    \n    def point_t(self, t=0.5):\n        \"\"\"Get point value for time `t`\"\"\"\n        cc = CurveCutter(self)\n        start = 0\n        tv = t * cc.calcCurveLength()\n        p, tangent = cc.subsegmentPoint(start=0, end=tv)\n        return p, tangent\n    \n    def split_t(self, t=0.5):\n        if not self.val_present():\n            return\n\n        a = self._val.value[0][-1][0]\n        b, c, d = self._val.value[-1][-1]\n        return splitCubicAtT(a, b, c, d, t)\n    \n    def add_pt_t(self, cuidx, t):\n        if not self.val_present():\n            return\n\n        cidx = 0\n        insert_idx = -1\n        c1, c2 = None, None\n\n        for idx, (mv, pts) in enumerate(self._val.value):\n            if mv == \"curveTo\":\n                if cidx == cuidx:\n                    insert_idx = idx\n                    a = self._val.value[idx-1][-1][-1]\n                    b, c, d = pts\n                    c1, c2 = splitCubicAtT(a, b, c, d, t)\n                cidx += 1\n            elif mv == \"lineTo\":\n                if cidx == cuidx:\n                    insert_idx = idx\n                    a = self._val.value[idx-1][-1][-1]\n                    b = pts[0]\n                    l = Line(a, b)\n                    c1 = [l.t(0.5)]\n                    c2 = [b]\n                cidx += 1\n        \n        if c2:\n            if len(c2) > 1:\n                self._val.value[insert_idx] = (\"curveTo\", c1[1:])\n                self._val.value.insert(insert_idx+1, (\"curveTo\", c2[1:]))\n            else:\n                self._val.value[insert_idx] = (\"lineTo\", c1)\n                self._val.value.insert(insert_idx+1, (\"lineTo\", c2))\n        return self\n    \n    def samples(self, interval=10, even=False):\n        cc = CurveCutter(self)\n        samples = []\n        length = cc.calcCurveLength()\n        inc = 1\n        idx = 0\n        while inc < length:\n            pt, tan = cc.subsegmentPoint(start=0, end=inc)\n            samples.append(CurveSample(idx, pt, inc / length, tan))\n            inc += interval\n            idx += 1\n        \n        for i, s in enumerate(samples):\n            next = samples[i+1] if i < len(samples)-1 else s\n            prev = samples[i-1] if i > 0 else s\n            s.neighbors(prev, next)\n        \n        return samples\n    \n    def onSamples(self, interval=10, even=False, fn=None):\n        return (type(self)().enumerate(self.samples(interval=interval, even=even), lambda s: fn(self, s)))\n    \n    def length(self, t=1):\n        \"\"\"Get the length of the curve for time `t`\"\"\"\n        cc = CurveCutter(self)\n        start = 0\n        tv = t * cc.calcCurveLength()\n        return tv\n    \n    def ease_t(self, e, tries=0):\n        _, _, w, h = self.ambit()\n        pen = MarginPen(None, e*w, isHorizontal=False)\n        self.replay(pen)\n        try:\n            return pen.getAll()[0]/h\n        except IndexError:\n            # HACK for now but I guess works?\n            #print(\"INDEX ERROR\", e)\n            if tries < 500:\n                return self.ease_t(e-0.01, tries=tries+1)\n            return 0\n        \n    def divide(self, length=150, floor=True, count=None, idx=0, max=None):\n        a = self.v.value[0][-1][-1]\n        b, c, d = self.v.value[1][-1]\n        l = calcCubicArcLength(a, b, c, d)\n\n        if count is not None:\n            length = l / count\n            floor = False\n\n        if l < length:\n            if max is not None and len(self.v.value) < max:\n                self.add_pt_t(0, 0.5)\n                self.divide(length=length, floor=False, idx=idx+1, max=max)\n            return self\n        \n        if max is not None and len(self.v.value) >= max:\n            return self\n\n        if floor:\n            fl = math.floor(l/length)\n            length = l/fl\n        \n        t = 1/(l/length)\n        \n        if l > length*1.5:\n            self.add_pt_t(0, 1-t)\n            self.divide(length=length, floor=False, idx=idx+1, max=max)\n        elif max is not None:\n            self.add_pt_t(0, 0.5)\n            self.divide(length=length, floor=False, idx=idx+1, max=max)\n            pass\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/SerializationMixin.py",
    "content": "import pickle, json\n\nfrom pathlib import Path\nfrom fontTools.pens.recordingPen import RecordingPen\n\nfrom coldtype.geometry import Rect\n\n\nclass SerializationMixin():\n    def pickle(self, dst):\n        dst.parent.mkdir(parents=True, exist_ok=True)\n        fh = open(str(dst), \"wb\")\n        \n        def prune(pen, state, data):\n            if state >= 0:\n                if hasattr(pen, \"_stst\"):\n                    pen._stst = None\n        \n        self.walk(prune)\n        pickle.dump(self, fh)\n        fh.close()\n        return self\n    \n    def Unpickle(self, src):\n        if isinstance(src, str):\n            src = Path(src)\n        return pickle.load(open(str(src.expanduser()), \"rb\"))\n    \n    def withJSONValue(self, path, keys=None):\n        data = json.loads(Path(path).expanduser().read_text())\n        if keys is not None:\n            for key in keys:\n                data = data[key]\n        \n        self._val.value = data\n        return self\n    \n    def withSVG(self, svg):\n        from fontTools.svgLib import SVGPath\n        svg = SVGPath.fromstring(svg)\n        rp = RecordingPen()\n        svg.draw(rp)\n        self._val.value = rp.value\n        return self\n\n    def withSVGFile(self, svg_file):\n        svg_file = Path(svg_file).expanduser().absolute()\n        from fontTools.svgLib import SVGPath\n        svg = SVGPath.fromstring(svg_file.read_bytes())\n        rp = RecordingPen()\n        svg.draw(rp)\n        self._val.value = rp.value\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/SonificationMixin.py",
    "content": "import struct, wave\nfrom coldtype.geometry import Rect\n\nclass SonificationMixin():\n    # contours?\n    def _prep_for_wave(self, flatten=1, centered=False):\n        prepped = self.copy()\n        if centered:\n            prepped.center(tx=1, ty=1)\n        \n        if flatten > 0:\n            prepped.flatten(flatten)\n        \n        return prepped\n\n    def toAudio(self, flatten=1, centered=False, loops=3, filename=None):\n        import numpy as np\n        from pedalboard.io import AudioFile\n\n        prepped = self._prep_for_wave(flatten=flatten, centered=centered)\n\n        left, right = [], []\n        for (_, pts) in prepped._val.value:\n            if len(pts) > 0:\n                left.append(pts[0][0] / 1000)\n                right.append(pts[0][1] / 1000)\n\n        audio = np.tile(np.array([left, right]), loops)\n\n        if filename:\n            with AudioFile(filename, \"w\", samplerate=48000, num_channels=2) as f:\n                f.write(audio)\n        \n        return audio, len(left)\n    \n    def fromAudio(self, audio, start=500, end=9500, step=1, mult=1360, scale=2):\n        for idx in range(start, end, step):\n            try:\n                x = audio[0][idx]\n                y = audio[1][idx]\n                self.oval(Rect.FromCenter((x*mult, y*mult), scale))\n            except IndexError:\n                pass\n        return self\n\n    # def wavefile(self, flatten=1, centered=False) -> str:\n    #     #from IPython.display import Audio, display\n\n    #     prepped = self._prep_for_wave(flatten=flatten, centered=centered)\n\n    #     left, right = [], []\n    #     for (_, pts) in prepped._val.value:\n    #         if len(pts) > 0:\n    #             left.append(pts[0][0])\n    #             right.append(pts[0][1])\n\n    #     samplesPerFrame = 200\n    #     sampleRate = 48000.0 # hertz\n\n    #     filename = \"test_1.wav\"\n\n    #     obj = wave.open(filename, 'w')\n    #     obj.setnchannels(2)\n    #     obj.setsampwidth(2)\n    #     obj.setframerate(sampleRate)\n\n    #     for x in range(0, samplesPerFrame):\n    #         for idx, l in enumerate(left):\n    #             data = struct.pack('<h', int(l)*24)\n    #             obj.writeframesraw(data)\n    #             data = struct.pack('<h', int(right[idx])*24)\n    #             obj.writeframesraw(data)\n\n    #     # silence\n    #     for _ in range(0, 5000):\n    #         obj.writeframesraw(struct.pack(\"<h\", 0))\n    #         obj.writeframesraw(struct.pack(\"<h\", 0))\n\n    #     obj.close()\n\n    #     return filename"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/mixins/StylingMixin.py",
    "content": "from coldtype.color import Color, Theme, normalize_color, rgb\nfrom coldtype.geometry import Rect\nfrom coldtype.img.blendmode import BlendMode\n\n\"\"\"\nRequires Runon.attr contract\n\"\"\"\n\nclass StylingMixin():\n    def groupedStyle(self, st, default_style):\n        sf = False\n        if \"stroke\" in st:\n            c = st[\"stroke\"]\n            sw = st.get(\"strokeWidth\", default_style.get(\"strokeWidth\", 1))\n            miter = st.get(\"strokeMiter\", default_style.get(\"strokeMiter\", None))\n            st[\"stroke\"] = dict(color=c, weight=sw, miter=miter)\n        \n        if \"stroke\" not in st and \"stroke\" in default_style:\n            st[\"stroke\"] = self.groupedStyle(default_style, default_style)[\"stroke\"]\n        \n        if \"strokeWidth\" in st:\n            del st[\"strokeWidth\"]\n        if \"strokeMiter\" in st:\n            del st[\"strokeMiter\"]\n        if \"strokeFirst\" in st:\n            sf = True\n            del st[\"strokeFirst\"]\n        \n        if \"fill\" not in st:\n            st[\"fill\"] = rgb(1, 0, 0.5)\n        \n        rest = [\"blendmode\", \"image\", \"skp\", \"COLR\", \"dash\"]\n        if sf:\n            order = [\"shadow\", \"stroke\", \"fill\", *rest]\n        else:\n            order = [\"shadow\", \"fill\", \"stroke\", *rest]\n        \n        sort = {k:v for k,v in sorted(st.items(), key=lambda kv: order.index(kv[0]))}\n        return sort\n\n    def f(self, *value):\n        \"\"\"Get/set a (f)ill\"\"\"\n        if value:\n            if isinstance(value[0], Theme):\n                for k, v in value[0].colors.items():\n                    self.attr(k, fill=v)\n                return self\n            elif not isinstance(value, Color):\n                value = normalize_color(value)\n            return self.attr(fill=value)\n        else:\n            return self.attr(field=\"fill\")\n    \n    fill = f\n    \n    def s(self, *value):\n        \"\"\"Get/set a (s)troke\"\"\"\n        if value:\n            if isinstance(value[0], Theme):\n                for k, v in value[0].colors.items():\n                    self.attr(k, stroke=v)\n                return self\n            elif not isinstance(value, Color):\n                value = normalize_color(value)\n            return self.attr(stroke=value)\n        else:\n            return self.attr(field=\"stroke\")\n    \n    stroke = s\n    \n    def sw(self, value):\n        \"\"\"Get/set a (s)troke (w)idth\"\"\"\n        if value is not None:\n            return self.attr(strokeWidth=value)\n        else:\n            return self.attr(field=\"strokeWidth\")\n    \n    strokeWidth = sw\n\n    def dash(self, pattern, phase=0):\n        return self.attr(dash=[pattern, phase])\n\n    def ssw(self, s, sw):\n        self.s(s)\n        self.sw(sw)\n        return self\n    \n    def fssw(self, f, s, sw, sf=0):\n        if not isinstance(f, Theme) and isinstance(s, Theme):\n            t = Theme(f)\n            for k in s.colors.keys():\n                t[k] = f\n            f = t\n\n        self.f(f)\n        self.s(s)\n        self.sw(sw)\n        self.sf(sf)\n        return self\n    \n    def strokeFirst(self, value=None):\n        \"\"\"\n        For a rendering engine that has to stroke and fill in two separate passes, perform the stroke _before_ the fill (akin to an `.understroke` but without the duplication overhead)\n        \"\"\"\n        if value:\n            return self.attr(strokeFirst=value)\n        else:\n            return self.attr(field=\"strokeFirst\")\n    \n    def sf(self, value=None):\n        \"strokeFirst\"\n        return self.strokeFirst(value)\n    \n    def strokeMiter(self, value=None):\n        \"\"\"\n        For a rendering engine that can specify stroke-miter\n        \"\"\"\n        if value:\n            return self.attr(strokeMiter=value)\n        else:\n            return self.attr(field=\"strokeMiter\")\n\n    def sm(self, value=None):\n        \"strokeMiter\"\n        return self.strokeMiter(value)\n    \n    def img(self, src=None, rect=Rect(0, 0, 500, 500), pattern=False, opacity=1.0):\n        \"\"\"Get/set an image fill\"\"\"\n        if src:\n            from coldtype.img.abstract import AbstractImage\n            if isinstance(src, AbstractImage):\n                return self.attr(image=dict(src=src.src, rect=rect, pattern=pattern, opacity=opacity))\n            return self.attr(image=dict(src=src, rect=rect, pattern=pattern, opacity=opacity))\n        else:\n            return self.attr(field=\"image\")\n    \n    image = img\n\n    def shadow(self, radius=10, color=(0, 0.3), clip=None):\n        return self.attr(shadow=dict(color=normalize_color(color), radius=radius, clip=clip))\n    \n    # other\n\n    def blendmode(self, blendmode=None, show=False):\n        if isinstance(blendmode, int):\n            blendmode = BlendMode.Cycle(blendmode, show=show)\n        elif isinstance(blendmode, str):\n            blendmode = BlendMode[blendmode]\n        \n        if blendmode:\n            return self.attr(blendmode=blendmode)\n        else:\n            return self.attr(field=\"blendmode\")\n    \n    def postprocess(self, fn):\n        return self.data(postprocess=fn, function_literals=True)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/path.py",
    "content": "\"\"\"\n\n\n\n\n\n⚠️ This file was autogenerated\nby scripts/inline_mixins.py ⚠️\n\n\n\n\n\n\"\"\"\n\nfrom copy import deepcopy\n\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.pens.reverseContourPen import ReverseContourPen\nfrom coldtype.color import Color, normalize_color\n\nfrom coldtype.geometry import Rect, Point, txt_to_edge\nfrom coldtype.runon.runon import Runon\n\nfrom coldtype.runon.scaffold import Scaffold\n\nimport math\nfrom pathlib import Path\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom coldtype.geometry import Rect, Line, Point, Atom\nfrom typing import Callable\nimport math\nfrom fontTools.pens.boundsPen import BoundsPen\nfrom fontTools.misc.transform import Transform\nfrom fontTools.pens.transformPen import TransformPen\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom coldtype.geometry import Point, Rect, align\nfrom coldtype.interpolation import norm\nfrom coldtype.color import bw, rgb, hsl\nfrom functools import partialmethod\nTHTV_WARNING = False\nfrom coldtype.color import Color, Theme, normalize_color, rgb\nfrom coldtype.geometry import Rect\nfrom coldtype.img.blendmode import BlendMode\n\"\"\"\nRequires Runon.attr contract\n\"\"\"\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.pens.transformPen import TransformPen\nfrom fontTools.misc.transform import Transform\nimport pickle, json\nfrom pathlib import Path\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom coldtype.geometry import Rect\nfrom coldtype.pens.misc import BooleanOp, calculate_pathop\nimport math\nfrom fontPens.marginPen import MarginPen\nfrom fontTools.misc.transform import Transform\nfrom coldtype.geometry import Line\nfrom coldtype.beziers import CurveCutter, CurveSample, splitCubicAtT, calcCubicArcLength\nimport struct, wave\nfrom coldtype.geometry import Rect\nfrom coldtype.geometry.point import Point\nfrom coldtype.geometry.line import Line\nimport math\nfrom copy import deepcopy\nfrom random import randint\nfrom fontTools.pens.basePen import decomposeQuadraticSegment\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontPens.flattenPen import FlattenPen\nfrom coldtype.geometry import Point\nfrom coldtype.pens.outlinepen import OutlinePen\nfrom coldtype.pens.translationpen import TranslationPen, polarCoord\nfrom coldtype.pens.misc import ExplodingPen, SmoothPointsPen\nfrom coldtype.random import random_series\n\nclass P(Runon):\n    \"\"\"\n    P stands for Path (or Pen)\n    \"\"\"\n    def FromPens(pens):\n        if hasattr(pens, \"_pens\"):\n            out = P().data(**pens.data)\n            for p in pens:\n                out.append(P.FromPens(p))\n        elif hasattr(pens, \"_els\") and len(pens._els) > 0:\n            out = pens\n        elif hasattr(pens, \"_val\") and pens.val_present():\n            out = pens\n        else:\n            p = pens\n            rp = RecordingPen()\n            p.replay(rp)\n            out = P(rp)\n            \n            attrs = p.attrs.get(\"default\", {})\n            if \"fill\" in attrs:\n                out.f(attrs[\"fill\"])\n            if \"stroke\" in attrs:\n                out.s(attrs[\"stroke\"][\"color\"])\n                out.sw(attrs[\"stroke\"][\"weight\"])\n\n            # TODO also the rest of the styles\n\n            out.data(**pens.data)\n\n            if hasattr(pens, \"_frame\"):\n                out.data(frame=pens._frame)\n            if hasattr(pens, \"glyphName\"):\n                out.data(glyphName=pens.glyphName)\n        return out\n    \n    def __init__(self, *vals, **kwargs):\n        prenorm = [v.rect if isinstance(v, Scaffold) else v for v in vals]\n        \n        if len(vals) == 2 and isinstance(vals[0], float) and isinstance(vals[1], float):\n            prenorm = Rect(*vals)\n        \n        if len(vals) == 1 and isinstance(vals[0], dict):\n            unmapped = type(self)()\n            for k, v in vals[0].items():\n                unmapped.append(v.tag(k))\n            prenorm = unmapped\n\n        super().__init__(*prenorm)\n\n        if isinstance(self._val, RecordingPen):\n            pass\n        elif isinstance(self._val, Rect):\n            r = self._val\n            self._val = RecordingPen()\n            self.rect(r)\n        elif isinstance(self._val, Point):\n            p = self._val\n            self._val = RecordingPen()\n            self.rect(Rect.FromCenter(p, 20))\n        else:\n            raise Exception(\"Can’t understand _val\", self._val)\n\n        # more backwards compat\n        for k, v in kwargs.items():\n            if k == \"fill\":\n                self.f(v)\n            elif k == \"stroke\":\n                self.s(v)\n            elif k == \"strokeWidth\":\n                self.sw(v)\n            elif k == \"image\":\n                self.img(**v)\n            elif k == \"shadow\":\n                self.shadow(**v)\n            else:\n                raise Exception(\"Invalid __init__ kwargs\", k)\n\n    def reset_val(self):\n        super().reset_val()\n        self._val = RecordingPen()\n        return self\n    \n    def val_present(self):\n        return self._val is not None and len(self._val.value) > 0\n    \n    def copy_val(self, val):\n        copy = RecordingPen()\n        if self.val_present():\n            copy.value = deepcopy(self._val.value)\n        return copy\n    \n    def printable_val(self):\n        if self.val_present():\n            return f\"{len(self._val.value)}mvs\"\n    \n    def printable_data(self):\n        out = {}\n        exclude = [\"_last_align_rect\", \"_notebook_shown\"]\n        for k, v in self._data.items():\n            if k not in exclude:\n                out[k] = v\n        return out\n    \n    def to_code(self, classname=\"P\", additional_lines=[]):\n        t = None\n        if self._tag and self._tag != \"?\":\n            t = self._tag\n        \n        out = f\"({classname}()\"\n        if t:\n            out += f\"\\n    .tag(\\\"{t}\\\")\"\n\n        if self.data:\n            pd = self.printable_data()\n            if pd:\n                out += f\"\\n    .data(**{repr(self.printable_data())})\"\n\n        if self.val_present():\n            for mv, pts in self._val.value:\n                out += \"\\n\"\n                if len(pts) > 0:\n                    spts = \", \".join([f\"{(x, y)}\" for (x, y) in pts])\n                    out += f\"    .{mv}({spts})\"\n                else:\n                    out += f\"    .{mv}()\"\n        else:\n            for pen in self:\n                for idx, line in enumerate(pen.to_code().split(\"\\n\")):\n                    if idx == 0:\n                        out += f\"\\n    .append{line}\"\n                    else:\n                        out += f\"\\n    {line}\"\n        \n        if self.attrs:\n            for k, v in self.attrs.get(\"default\").items():\n                if v:\n                    if k == \"fill\":\n                        out += f\"\\n    .f({v.to_code()})\"\n                    elif k == \"stroke\":\n                        out += f\"\\n    .s({v['color'].to_code()})\"\n                        out += f\"\\n    .sw({v['weight']})\"\n                    else:\n                        print(\"No code\", k, v)\n        \n        for la in additional_lines:\n            out += f\"\\n    {la}\"\n\n        out += \")\"\n        return out\n    \n    def normalize_attr_value(self, k, v):\n        if k == \"fill\" and not isinstance(v, Color):\n            return normalize_color(v)\n        else:\n            return super().normalize_attr_value(k, v)\n\n    def style(self, style=\"_default\"):\n        \"\"\"for backwards compatibility with defaults and grouped-stroke-properties\"\"\"\n        st = {**super().style(style)}\n        if style != \"_default\":\n            default_style = {**super().style(\"default\")}\n        else:\n            default_style = st\n        return self.groupedStyle(st, default_style)\n    \n    def unframe(self):\n        def _unframe(el, _, __):\n            el.data(frame=None)\n\n        return self.walk(_unframe)\n    \n    def frame(self, fn_or_rect):\n        if isinstance(fn_or_rect, Rect):\n            self.data(frame=fn_or_rect)\n        elif callable(fn_or_rect):\n            self.data(frame=fn_or_rect(self))\n        return self\n    \n    def pen(self, frame=True):\n        \"\"\"collapse and combine into a single vector\"\"\"\n        if len(self) == 0:\n            return self\n        \n        _frame = self.ambit()\n        self.collapse()\n\n        for el in self._els:\n            el._val.replay(self._val)\n            #self._val.record(el._val)\n\n        try:\n            self._attrs = {**self._els[0]._attrs, **self._attrs}\n        except IndexError:\n            pass\n        \n        if frame:\n            self.data(frame=_frame)\n        self._els = []\n        return self\n    \n    def down(self):\n        return self.pen()\n    \n    def pens(self):\n        if self.val_present():\n            return self.ups()\n        else:\n            return self\n\n    # multi-use overrides\n    \n    def reverse(self, recursive=False, winding=True):\n        \"\"\"Reverse elements; if pen value present, reverse the winding direction of the pen.\"\"\"\n        if winding and self.val_present():\n            if self.unended():\n                self.closePath()\n            dp = RecordingPen()\n            rp = ReverseContourPen(dp)\n            self.replay(rp)\n            self._val.value = dp.value\n            return self\n\n        return super().reverse(recursive=recursive, winding=winding)\n    \n    def index(self, idx, fn=None):\n        if not self.val_present():\n            return super().index(idx, fn)\n        \n        return self.mod_contour(idx, fn)\n    \n    def indices(self, idxs, fn=None):\n        if not self.val_present():\n            return super().indices(idxs, fn)\n\n        def apply(idx, x, y):\n            if idx in idxs:\n                return fn(Point(x, y))\n        \n        return self.map_points(apply)\n    \n    def wordPens(self, pred=lambda x: x.glyphName == \"space\", consolidate=False):\n        def _wp(p):\n            return (p\n                .split(pred)\n                .map(lambda x: x\n                    .data(word=\"/\".join([p.glyphName for p in x]))\n                    .cond(consolidate, lambda p: p.pen())\n                    ))\n        \n        d = self.depth()\n        if d == 1:\n            return _wp(self)\n        \n        out = type(self)()\n        for pen in self:\n            out.append(_wp(pen))\n        return out\n    \n    def linebreak(self, w, leading=False, track_out=False):\n        x = 0\n\n        lines = P()\n        line = P()\n        lines.append(line)\n\n        for idx, word in enumerate(self):\n            word.t(-x, 0)\n            amb = word.ambit(tx=1, ty=0)\n            if amb.pse.x > w+0:\n                line = P()\n                lines.append(line)\n                word.t(-amb.x, 0)\n                x += amb.x\n                line.append(word)\n            else:\n                # Align first word of first line to true x\n                if idx == 0:\n                    word.t(-amb.x, 0)\n                    x += amb.x\n                line.append(word)\n        \n        if leading:\n            lines.stack(leading)\n\n        if track_out:\n            lines.map(lambda p: p.track_to_rect(Rect(0, 0, w, 100).zero(), pullToEdges=track_out < 2), slice(-1))\n\n        return lines\n    \n    def interpolate(self, value, other, frame=False):\n        if len(self.v.value) != len(other.v.value):\n            raise Exception(\"Cannot interpolate / diff lens\")\n        vl = []\n        for idx, (mv, pts) in enumerate(self.v.value):\n            ipts = []\n            for jdx, p in enumerate(pts):\n                pta = Point(p)\n                try:\n                    ptb = Point(other.v.value[idx][-1][jdx])\n                except IndexError:\n                    print(\">>>>>>>>>>>>> Can’t interpolate\", idx, mv, \"///\", other.v.value[idx])\n                    raise IndexError\n                ipt = pta.interp(value, ptb)\n                ipts.append(ipt)\n            vl.append((mv, ipts))\n        \n        np = type(self)()\n        np.v.value = vl\n\n        if frame:\n            af = self.data(\"frame\")\n            bf = other.data(\"frame\")\n            ff = af.interp(value, bf)\n            np.data(frame=ff)\n\n        return np\n    \n    def replaceGlyph(self, glyphName, replacement, limit=None):\n        return self.replace(lambda p: p.glyphName == glyphName,\n            lambda p: (replacement(p) if callable(replacement) else replacement)\n                .translate(*p.ambit().xy()))\n    \n    def findGlyph(self, glyphName, fn=None):\n        return self.find(lambda p: p.glyphName == glyphName, fn)\n    \n    def _repr_html_(self):\n        #if self.data(\"_notebook_shown\"):\n        #    return None\n        \n        from coldtype.notebook import show, DEFAULT_DISPLAY\n        self.ch(show(DEFAULT_DISPLAY, tx=1, ty=1))\n        return None\n    \n    def text(self,\n        text:str,\n        style,\n        frame:Rect,\n        x=\"mnx\",\n        y=\"mny\",\n        ):\n        self.rect(frame)\n        self.data(\n            text=text,\n            style=style,\n            align=(txt_to_edge(x), txt_to_edge(y)))\n        return self\n    \n    # backwards compatibility (questionable if should exist)\n\n    def reversePens(self):\n        \"\"\"for backwards compatibility\"\"\"\n        return self.reverse(recursive=False)\n    \n    rp = reversePens\n\n    def vl(self, value):\n        self.v.value = value\n        return self\n    \n    @property\n    def _pens(self):\n        return self._els\n    \n    @property\n    def value(self):\n        return self.v.value\n\n    @property\n    def glyphName(self):\n        return self.data(\"glyphName\")\n    \n    def drop(self, amount, edge):\n        amb = self.ambit(tx=1, ty=1).drop(amount, edge)\n        return self.intersection(P(amb))\n    \n    def take(self, amount, edge):\n        amb = self.ambit(tx=1, ty=1).take(amount, edge)\n        return self.intersection(P(amb))\n    \n    def inset(self, ax, ay):\n        amb = self.ambit(tx=1, ty=1).inset(ax, ay)\n        return self.intersection(P(amb))\n    \n    @staticmethod\n    def Enumerate(enumerable, enumerator):\n        return P().enumerate(enumerable, enumerator)\n    \n    def addFrame(self, frame):\n        return self.data(frame=frame)\n    \n    def xAlignToFrame(self):\n        return self.align(self.data(\"frame\"), y=None)\n    \n    def pvl(self):\n        for idx, (_, pts) in enumerate(self.v.value):\n            if len(pts) > 0:\n                self.v.value[idx] = list(self.v.value[idx])\n                self.v.value[idx][-1] = [Point(p) for p in self.v.value[idx][-1]]\n        return self\n    \n    def dots(self, radius=4, square=False):\n        \"\"\"(Necessary?) Create circles at moveTo commands\"\"\"\n        dp = type(self)()\n        for t, pts in self.v.value:\n            if t == \"moveTo\":\n                x, y = pts[0]\n                if square:\n                    dp.rect(Rect((x-radius, y-radius, radius, radius)))\n                else:\n                    dp.oval(Rect((x-radius, y-radius, radius, radius)))\n        self.v.value = dp.v.value\n        return self\n\n    def _normPointSplat(self, p):\n\n        if isinstance(p[0], Point):\n            return p[0].xy()\n        elif len(p) == 1:\n            return p[0]\n        else:\n            return p\n\n\n    def moveTo(self, *p) -> \"P\":\n\n        p = self._normPointSplat(p)\n        self._val.moveTo(p)\n        return self\n    \n\n    def m(self, *p) -> \"P\":\n\n        return self.moveTo(*p)\n\n\n    def lineTo(self, *p) -> \"P\":\n\n        p = self._normPointSplat(p)\n        if len(self._val.value) == 0:\n            self._val.moveTo(p)\n        else:\n            self._val.lineTo(p)\n        return self\n    \n\n    def l(self, *p) -> \"P\":\n\n        return self.lineTo(*p)\n\n\n    def qCurveTo(self, *points) -> \"P\":\n\n        self._val.qCurveTo(*points)\n        return self\n    \n\n    def q(self, *p) -> \"P\":\n\n        return self.qCurveTo(*p)\n\n\n    def curveTo(self, *points) -> \"P\":\n\n        self._val.curveTo(*points)\n        return self\n    \n\n    def c(self, *p) -> \"P\":\n\n        return self.curveTo(*p)\n\n    def closePath(self):\n        self._val.closePath()\n        return self\n    \n    def cp(self):\n        return self.closePath()\n\n    def endPath(self):\n        self._val.endPath()\n        return self\n    \n    def ep(self):\n        return self.endPath()\n    \n\n    def addComponent(self, baseGlyphName, transformation) -> \"P\":\n\n        print(\"pen.addComponent('%s', %s)\" % (baseGlyphName, tuple(transformation)))\n        return self\n    \n\n    def points(self, pts, close=True) -> \"P\":\n\n        self.moveTo(pts[0])\n        for p in pts[1:]:\n            self.lineTo(p)\n        if close:\n            self.closePath()\n        else:\n            self.endPath()\n        return self\n    \n\n    def point_list(self, random_seed=None):\n\n        all_pts = []\n        for idx, (mv, pts) in enumerate(self._val.value):\n            all_pts.extend([Point(*p) for p in pts])\n        if random_seed is not None:\n            from random import Random\n            rnd = Random()\n            rnd.seed(random_seed)\n            rnd.shuffle(all_pts)\n        return all_pts\n    \n\n    def replay(self, pen) -> \"P\":\n\n        self._val.replay(pen)\n\n        for el in self._els:\n            el.replay(pen)\n        return self\n    \n\n    def record(self, pen) -> \"P\":\n\n        \"\"\"Play a pen into this pen, meaning that pen will be added to this one’s value.\"\"\"\n        if hasattr(pen, \"value\"):\n            pen.replay(self._val)\n            return self\n\n        if len(pen) > 0:\n            for el in pen._els:\n                self.record(el._val)\n        elif pen:\n            if isinstance(pen, Path):\n                self.withJSONValue(pen)\n            else:\n                pen.replay(self._val)\n        return self\n    \n    def unended(self):\n        if not self.val_present():\n            return None\n\n        if len(self._val.value) == 0:\n            return True\n        elif self._val.value[-1][0] not in [\"endPath\", \"closePath\"]:\n            return True\n        return False\n    \n    def fully_close_path(self):\n        if not self.val_present():\n            # TODO log noop?\n            return self\n\n        if self._val.value[-1][0] == \"closePath\":        \n            start = self._val.value[0][-1][-1]\n            end = self._val.value[-2][-1][-1]\n\n            if start != end:\n                self._val.value = self._val.value[:-1]\n                self.lineTo(start)\n                self.closePath()\n        return self\n    \n    fullyClosePath = fully_close_path\n\n\n    def rect(self, rect) -> \"P\":\n\n        \"\"\"Rectangle primitive — `moveTo/lineTo/lineTo/lineTo/closePath`\"\"\"\n        rect = Rect(rect)\n        self.moveTo(rect.point(\"SW\").xy())\n        self.lineTo(rect.point(\"SE\").xy())\n        self.lineTo(rect.point(\"NE\").xy())\n        self.lineTo(rect.point(\"NW\").xy())\n        self.closePath()\n        return self\n    \n    r = rect\n    \n\n    def roundedRect(self, rect, hr, vr=None, scale=True) -> \"P\":\n\n        \"\"\"Rounded rectangle primitive\"\"\"\n        if vr is None:\n            vr = hr\n        l, b, w, h = Rect(rect)\n        r, t = l + w, b + h\n        K = 4 * (math.sqrt(2)-1) / 3\n        \n        if scale:\n            circle = hr == 0.5 and vr == 0.5\n            if hr <= 0.5:\n                hr = w * hr\n            if vr <= 0.5:\n                vr = h * vr\n        else:\n            circle = False\n        \n        self.moveTo((l + hr, b))\n        if not circle:\n            self.lineTo((r - hr, b))\n        self.curveTo((r+hr*(K-1), b), (r, b+vr*(1-K)), (r, b+vr))\n        if not circle:\n            self.lineTo((r, t-vr))\n        self.curveTo((r, t-vr*(1-K)), (r-hr*(1-K), t), (r-hr, t))\n        if not circle:\n            self.lineTo((l+hr, t))\n        self.curveTo((l+hr*(1-K), t), (l, t-vr*(1-K)), (l, t-vr))\n        if not circle:\n            self.lineTo((l, b+vr))\n        self.curveTo((l, b+vr*(1-K)), (l+hr*(1-K), b), (l+hr, b))\n        self.closePath()\n        return self\n    \n    rr = roundedRect\n    \n\n    def oval(self, rect) -> \"P\":\n\n        \"\"\"Oval primitive\"\"\"\n        if isinstance(rect, Point):\n            self.roundedRect(Rect.FromCenter(rect, 20, 20), 0.5, 0.5)\n        else:\n            self.roundedRect(rect, 0.5, 0.5)\n        return self\n    \n    o = oval\n\n\n    def superellipse(self, r, factor=65):\n\n        return (self\n            .moveTo(r.pw)\n            .bxc(r.ps, \"SW\", factor)\n            .bxc(r.pe, \"SE\", factor)\n            .bxc(r.pn, \"NE\", factor)\n            .bxc(r.pw, \"NW\", factor))\n\n\n    def line(self, points, moveTo=True, endPath=True) -> \"P\":\n\n        \"\"\"Syntactic sugar for `moveTo`+`lineTo`(...)+`endPath`; can have any number of points\"\"\"\n        if isinstance(points, Line):\n            points = list(points)\n        if len(points) == 0:\n            return self\n        if len(self._val.value) == 0 or moveTo:\n            self.moveTo(points[0])\n        else:\n            self.lineTo(points[0])\n        for p in points[1:]:\n            self.lineTo(p)\n        if endPath:\n            self.endPath()\n        return self\n    \n\n    def hull(self, points) -> \"P\":\n\n        \"\"\"Same as `.line` but calls closePath instead of endPath`\"\"\"\n        self.moveTo(points[0])\n        for pt in points[1:]:\n            self.lineTo(pt)\n        self.closePath()\n        return self\n    \n    def round(self):\n        \"\"\"Round the values of this pen to integer values.\"\"\"\n        return self.round_to(1)\n\n\n    def round_to(self, rounding) -> \"P\":\n\n        \"\"\"Round the values of this pen to nearest multiple of rounding.\"\"\"\n        def rt(v, mult):\n            rndd = float(round(v / mult) * mult)\n            if rndd.is_integer():\n                return int(rndd)\n            else:\n                return rndd\n        \n        rounded = []\n        for t, pts in self._val.value:\n            _rounded = []\n            for p in pts:\n                if p:\n                    x, y = p\n                    _rounded.append((rt(x, rounding), rt(y, rounding)))\n                else:\n                    _rounded.append(p)\n            rounded.append((t, _rounded))\n        \n        self._val.value = rounded\n        return self\n    \n    # Compound curve mechanics\n    \n\n    def interpCurveTo(self, p1, f1, p2, f2, to, inset=0) -> \"P\":\n\n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(to)\n        pl = Line(p1, p2).inset(inset)\n        b = Line(a, pl.start).t(f1/100)\n        c = Line(d, pl.end).t(f2/100)\n        return self.curveTo(b, c, d)\n    \n\n    def ioc(self, pt, slope=0, fA=0, fB=85) -> \"P\":\n\n        return self.ioEaseCurveTo(pt, slope, fA, fB)\n\n\n    def ioEaseCurveTo(self, pt, slope=0, fA=0, fB=85) -> \"P\":\n\n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(pt)\n        box = Rect.FromMnMnMxMx([\n            min(a.x, d.x),\n            min(a.y, d.y),\n            max(a.x, d.x),\n            max(a.y, d.y)\n        ])\n\n        if a.y < d.y:\n            line_vertical = Line(box.ps, box.pn)\n        else:\n            line_vertical = Line(box.pn, box.ps)\n\n        angle = Line(a, d).angle() - line_vertical.angle()\n\n        try:\n            fA1, fA2 = fA\n        except TypeError:\n            fA1, fA2 = fA, fA\n        \n        try:\n            fB1, fB2 = fB\n        except TypeError:\n            fB1, fB2 = fB, fB\n\n        rotated = line_vertical.rotate(math.degrees(angle*(slope/100)))\n        vertical = Line(rotated.intersection(box.es), rotated.intersection(box.en))\n\n        if a.y > d.y:\n            vertical = vertical.reverse()\n\n        c1 = Line(a, vertical.start).t(fA1)\n        c2 = Line(vertical.mid, vertical.start).t(fA1)\n        self.lineTo(c1)\n        self.curveTo(\n            Line(c1, vertical.start).t(fB1),\n            Line(c2, vertical.start).t(fB1),\n            c2)\n        c1 = Line(vertical.mid, vertical.end).t(fA2)\n        c2 = Line(d, vertical.end).t(fA2)\n        self.lineTo(c1)\n        self.curveTo(\n            Line(c1, vertical.end).t(fB2),\n            Line(c2, vertical.end).t(fB2),\n            c2)\n        self.lineTo(d)\n        return self\n    \n    def bxc(self, pt, point, factor=0.65, po=(0, 0), mods={}, flatten=False):\n        return self.boxCurveTo(pt, point, factor, po, mods, flatten)\n    \n\n    def roundedCorner(self, pt, point, multipliers, offset=4, factor=65) -> \"P\":\n\n        a, b, c, d = multipliers\n        return (self\n            .lineTo(pt.offset(offset*a, offset*b))\n            .boxCurveTo(pt.offset(offset*c, offset*d), point, factor=factor))\n    \n    def boxCurveTo(self, pt, point, factor=0.65, po=(0, 0), mods={}, flatten=False):\n        if flatten:\n            self.lineTo(pt)\n            return self\n        \n        a = Point(self._val.value[-1][-1][-1])\n        d = Point(pt)\n        box = Rect.FromMnMnMxMx([\n            min(a.x, d.x),\n            min(a.y, d.y),\n            max(a.x, d.x),\n            max(a.y, d.y)\n        ])\n\n        try:\n            f1, f2 = factor\n        except TypeError:\n            if isinstance(factor, Atom):\n                f1, f2 = (factor[0], factor[0])\n            else:\n                f1, f2 = (factor, factor)\n\n        if isinstance(point, str):\n            #print(\"POINT\", point)\n            if point == \"cx\": # ease-in-out\n                if a.y < d.y:\n                    p1 = box.pse\n                    p2 = box.pnw\n                elif a.y > d.y:\n                    p1 = box.pne\n                    p2 = box.psw\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            elif point == \"e\": # ease-in\n                if a.y < d.y:\n                    p1 = p2 = box.pse\n                elif a.y > d.y:\n                    p1 = p2 = box.pne\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            elif point == \"w\": # ease-out\n                if a.y < d.y:\n                    p1 = p2 = box.pnw\n                elif a.y > d.y:\n                    p1 = p2 = box.psw\n                else:\n                    p1 = p2 = a.interp(0.5, d)\n            else:\n                if \",\" in point:\n                    pt1, pt2 = [x.strip() for x in point.split(\",\")]\n                    p1 = box.point(pt1)\n                    p2 = box.point(pt2)\n                else:\n                    p = box.point(point)\n                    p1, p2 = (p, p)\n        elif isinstance(point, Point):\n            p1, p2 = point, point\n        else:\n            p1, p2 = point\n            p1 = box.point(p1)\n            p2 = box.point(p2)\n        \n        p1 = p1.offset(*po)\n        p2 = p2.offset(*po)\n        \n        b = a.interp(f1, p1)\n        c = d.interp(f2, p2)\n\n        mb = mods.get(\"b\")\n        mc = mods.get(\"c\")\n        if mb:\n            b = mb(b)\n        elif mc:\n            c = mc(c)\n        \n        self.curveTo(b, c, d)\n        return self\n    \n\n    def mirror(self, factors, point=None):\n\n        if point == 0:\n            point = (0, 0)\n        \n        return (self.layer(1,\n            lambda p: p.scale(*factors, point=point or self.ambit().psw)))\n    \n\n    def mirrorx(self, point=None) -> \"P\":\n\n        return self.mirror((-1, 1), point=point)\n    \n\n    def mirrory(self, point=None) -> \"P\":\n\n        return self.mirror((1, -1), point=point)\n    \n\n    def mirrorxy(self, point=None) -> \"P\":\n\n        return self.mirror((-1, -1), point=point)\n    \n\n    def pattern(self, rect, clip=False) -> \"P\":\n\n        dp_copy = self.copy()\n        #dp_copy.value = self.value\n\n        for y in range(-1, 1):\n            for x in range(-1, 1):\n                dpp = type(self)()\n                dp_copy.replay(dpp)\n                dpp.translate(rect.w*x, rect.h*y)\n                dpp.replay(self)\n        \n        self.translate(rect.w/2, rect.h/2)\n        if clip:\n            clip_box = type(self)().rect(rect)\n            return self.intersection(clip_box)\n        return self\n    \n    def withRect(self, rect, fn:Callable[[Rect, \"P\"], \"P\"]) -> \"P\":\n        r = Rect(rect)\n        return fn(r, self).data(frame=r)\n    \n\n    def gridlines(self, rect, x=20, y=None, absolute=False) -> \"P\":\n\n        \"\"\"Construct a grid in the pen using `x` and (optionally) `y` subdivisions\"\"\"\n        xarg = x\n        yarg = y or x\n        if absolute:\n            x = int(rect.w / xarg)\n            y = int(rect.h / yarg)\n        else:\n            x = xarg\n            y = yarg\n        \n        for _x in rect.subdivide(x, \"minx\"):\n            if _x.x > 0 and _x.x > rect.x:\n                self.line([_x.point(\"NW\"), _x.point(\"SW\")])\n        for _y in rect.subdivide(y, \"miny\"):\n            if _y.y > 0 and _y.y > rect.y:\n                self.line([_y.point(\"SW\"), _y.point(\"SE\")])\n        return self.f(None).s(0, 0.1).sw(3)\n    \n\n    def ez(self, r, start_y, end_y, s) -> \"P\":\n\n        self.moveTo(r.edge(\"W\").t(start_y))\n        self.gs(s, do_close=False, first_move=\"lineTo\")\n        self.lineTo(r.edge(\"E\").t(end_y))\n        self.endPath()\n        return self\n    \n\n    def segments(self, all_curves=False) -> \"P\":\n\n        if not self.val_present():\n            for idx, el in enumerate(self._els):\n                self._els[idx] = el.segments()\n            return self\n        \n        segs = []\n        last = None\n        for contour in self.copy().explode():\n            for mv, pts in contour.v.value:\n                if last:\n                    if mv == \"curveTo\":\n                        segs.append(type(self)().moveTo(last).curveTo(*pts))\n                    if mv == \"lineTo\":\n                        if all_curves:\n                            ln = Line(last, pts[0])\n                            segs.append(type(self)().moveTo(ln.start).curveTo(ln.t(0.25), ln.t(0.75), ln.end))\n                        else:\n                            segs.append(type(self)().moveTo(last).lineTo(*pts))\n                \n                if len(pts) > 0:\n                    last = pts[-1]\n                else:\n                    last = None\n        \n        self._val = None\n        self._els = segs\n        return self\n\n    def join(self):\n        self._val = RecordingPen()\n\n        self._val.moveTo(self._els[0].v.value[0][-1][-1])\n        for el in self._els:\n            self._val.value.extend(el.v.value[1:])\n        \n        self._els = []\n        return self\n    \n    def substructure(self):\n        indicators = type(self)()\n        def append(p):\n            substructure = p.data(\"substructure\")\n            if substructure:\n                indicators.append(substructure)\n        self.mapv(append)\n        return indicators\n\n    def bounds(self):\n        \"\"\"Calculate the exact bounds of this shape, using a BoundPen\"\"\"\n        b = Rect(0, 0, 0, 0)\n        \n        if self.val_present():\n            try:\n                cbp = BoundsPen(None)\n                self._val.replay(cbp)\n                mnx, mny, mxx, mxy = cbp.bounds\n                b = Rect((mnx, mny, mxx - mnx, mxy - mny))\n            except:\n                pass\n        \n        if len(self._els) > 0:\n            bs = []\n            for el in self._els:\n                eb = el.bounds()\n                if eb and eb.nonzero():\n                    bs.append(eb)\n            \n            if len(bs) > 0:\n                b = bs[0]\n                for eb in bs[1:]:\n                    b = b.union(eb)\n        \n        return b\n    \n\n    def _normT(self, th, tv, tx, ty, t) -> \"P\":\n\n        import traceback\n        global THTV_WARNING\n\n        if th is not None:\n            #traceback.print_stack()\n            tx = th\n            if not THTV_WARNING:\n                print(\"! API CHANGE: th/tv are now tx/ty !\")\n                THTV_WARNING = True\n        if tv is not None:\n            #traceback.print_stack()\n            ty = tv\n            if not THTV_WARNING:\n                print(\"! API CHANGE: th/tv are now tx/ty !\")\n                THTV_WARNING = True\n\n        if t is not None:\n            tx = bool(int(t))\n            if tx:\n                ty = int((t-1)*10) == 1\n            else:\n                ty = int(t)*10 == 1\n        else:\n            tx, ty = tx, ty\n        return tx, ty\n    \n    def empty(self):\n        return len(self._val.value) == 0\n    \n    def ambit(self, th=None, tv=None, tx=0, ty=0, t=None) -> Rect:\n        \"\"\"\n        Get the calculated rect boundary.\n        \n        - `tx` means `(t)rue (x)` (i.e. the true width/horizontal dimension (was previously th));\n        - `ty` means `(t)rue (y)` (i.e. the true height/vertical dimension (was previously tv));\n        \n        Passing either ignores a non-bounds-derived frame\n        in either dimension\n        \"\"\"\n        \n        tx, ty = self._normT(th, tv, tx, ty, t)\n        f = self._data.get(\"frame\", None)\n\n        # true bounds\n        if tx and ty:\n            return self.bounds()\n        \n        # true no-bounds\n        elif not tx and not ty and f:\n            return f\n        \n        # partial bounds\n        elif f and (self.val_present() or (self.data(\"glyphName\") and len(self) == 0)):\n            if self.empty():\n                if tx:\n                    f = f.setw(0)\n                elif ty:\n                    f = f.seth(0)\n                return f\n            else:\n                b = self.bounds()\n                if tx:\n                    return Rect(b.x, f.y, b.w, f.h)\n                else:\n                    return Rect(f.x, b.y, f.w, b.h)\n        \n        # pass-to-els\n        elif len(self._els) > 0:\n            try:\n                union = self._els[0].ambit(tx=tx, ty=ty)\n                for p in self._els[1:]:\n                    a = p.ambit(tx=tx, ty=ty)\n                    if a.x == 0 and a.y == 0 and a.w == 0 and a.h == 0:\n                        continue\n                    union = union.union(a)\n                return union\n            except Exception as _:\n                return Rect(0,0,0,0)\n        \n        # catch-all\n        return self.bounds()\n        \n        # if f or self._val:\n        #     if (th or tv) and not self.empty():\n        #         b = self.bounds()\n        #         if th and tv:\n        #             return b\n        #         elif th:\n        #             return Rect(b.x, f.y, b.w, f.h)\n        #         else:\n        #             return Rect(f.x, b.y, f.w, b.h)\n        #     else:\n        #         if self.empty():\n        #             if th:\n        #                 f = f.setw(0)\n        #             elif tv:\n        #                 f = f.seth(0)\n        #             return f\n        #         return f\n        # elif :\n        #     return self.bounds()\n    \n    getFrame = ambit\n    \n\n    def align(self,\n        rect,\n        x=\"mdx\",\n        y=\"mdy\",\n        th=None, # deprecated\n        tv=None, # deprecated\n        tx=1,\n        ty=0,\n        transformFrame=True,\n        h=None,\n        returnOffset=False\n        ) -> \"P\":\n\n        \"\"\"\n        Align this pen to another rect, defaults to the center.\n\n        - `tx` means true-x (i.e. will disregard any invisible 'frame'\n        set on the pen (as in the case of glyphs returned from StSt/Glyphwise));\n        - `ty` means true-y, which is the same but for the vertical dimension\n        \"\"\"\n\n        if not isinstance(rect, Rect):\n            if hasattr(rect, \"ambit\"):\n                rect = rect.ambit(tx=tx, ty=ty)\n            elif isinstance(rect, Point) and rect._rect is not None:\n                x, y = rect._corner\n                rect = rect._rect\n            elif hasattr(rect, \"rect\"):\n                rect = rect.rect\n            else:\n                raise Exception(\"can't align to this object\")\n        \n        tx, ty = self._normT(th, tv, tx, ty, None)\n        r = self.ambit(tx=tx, ty=ty)\n\n        if h is not None:\n            r = r.seth(h)\n        \n        self.data(_last_align_rect=rect)\n        \n        offset = align(r, rect, x, y)\n        self.translate(*offset,\n            transformFrame=transformFrame)\n        \n        if returnOffset:\n            return offset\n        else:\n            return self\n    \n\n    def _align_compass(self, compass, rect, tx=1, ty=0) -> \"P\":\n\n        return self.align(rect, compass, tx=tx, ty=ty)\n    \n    #å = align\n\n    alne = partialmethod(_align_compass, \"NE\")\n    ale = partialmethod(_align_compass, \"E\")\n    alse = partialmethod(_align_compass, \"SE\")\n    als = partialmethod(_align_compass, \"S\")\n    alsw = partialmethod(_align_compass, \"SW\")\n    alw = partialmethod(_align_compass, \"W\")\n    alnw = partialmethod(_align_compass, \"NW\")\n    aln = partialmethod(_align_compass, \"N\")\n\n\n    def xalign(self, rect=None, x=\"centerx\", th=None, tv=None, tx=1, ty=0) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if x == \"C\":\n            x = \"CX\"\n        \n        if rect is None:\n            rect = self.ambit(tx=tx, ty=ty)\n        \n        if callable(rect):\n            rect = rect(self)\n        \n        self.align(rect, x=x, y=None, tx=tx, ty=ty)\n        for el in self._els:\n            el.align(rect, x=x, y=None, tx=tx, ty=ty)\n        return self\n    \n    #xå = xalign\n\n\n    def yalign(self, rect=None, y=\"centery\", th=None, tv=None, tx=0, ty=1) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if rect is None:\n            rect = self.ambit(tx=tx, ty=ty)\n        \n        if callable(rect):\n            rect = rect(self)\n        \n        self.align(rect, x=None, y=y, tx=tx, ty=ty)\n        return self\n    \n    #yå = yalign\n\n\n    def _normPoint(self, point=None, th=None, tv=None, tx=0, ty=0, **kwargs) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, kwargs.get(\"t\"))\n\n        if \"pt\" in kwargs:\n            point = kwargs[\"pt\"]\n        \n        a = self.ambit(tx=tx, ty=ty)\n        if point is None:\n            return a.pc\n        elif point == 0:\n            return a.psw\n        elif point is False:\n            return Point(0, 0)\n        elif isinstance(point, str):\n            if point.startswith(\"tx\"):\n                a = self.ambit(tx=1, ty=0)\n                point = point[2:]\n            elif point.startswith(\"ty\"):\n                a = self.ambit(tx=0, ty=1)\n                point = point[2:]\n            elif point.startswith(\"t\"):\n                a = self.ambit(tx=1, ty=1)\n                point = point[1:]\n            return a.point(point)\n        elif (not (isinstance(point[1], int)\n                or isinstance(point[1], float))\n            and hasattr(self, \"_normPoint\")):\n            return self[point[0]]._normPoint(point[1])\n        else:\n            return Point(point)\n    \n\n    def transform(self, transform, transformFrame=True) -> \"P\":\n\n        \"\"\"Perform an arbitrary transformation on the pen, using the fontTools `Transform` class.\"\"\"\n\n        if self.val_present():\n            op = RecordingPen()\n            tp = TransformPen(op, transform)\n            self._val.replay(tp)\n            self._val.value = op.value\n        \n        f = self._data.get(\"frame\")\n        if transformFrame and f:\n            self.data(frame=f.transform(transform))\n        \n        for p in self._els:\n            p.transform(transform, transformFrame=transformFrame)\n        \n        substructure = self._data.get(\"substructure\")\n        if substructure:\n            substructure.transform(transform, transformFrame=transformFrame)\n        \n        img = self.img()\n        if img:\n            img[\"rect\"] = img[\"rect\"].transform(transform)\n        \n        return self\n    \n\n    def matrix(self, a, b, c, d, e, f, transformFrame=False) -> \"P\":\n\n        return self.transform(Transform(a, b, c, d, e, f), transformFrame=transformFrame)\n    \n\n    def invertYAxis(self, height) -> \"P\":\n\n        rp = RecordingPen()\n        tp = TransformPen(rp, (1, 0, 0, -1, 0, height))\n        self.replay(tp)\n        self._val.value = rp.value\n        return self\n    \n\n    def nonlinear_transform(self, fn) -> \"P\":\n\n        for el in self._els:\n            el.nonlinear_transform(fn)\n        \n        if self.val_present():\n            for idx, (move, pts) in enumerate(self._val.value):\n                if len(pts) > 0:\n                    _pts = []\n                    for _pt in pts:\n                        x, y = _pt\n                        _pts.append(fn(x, y))\n                    self._val.value[idx] = (move, _pts)\n        \n        return self\n    \n    nlt = nonlinear_transform\n    \n\n    def translate(self, x, y=None, transformFrame=True) -> \"P\":\n\n        \"\"\"Translate this shape by `x` and `y` (pixel values).\"\"\"\n        if y is None:\n            y = x\n        return self.transform(Transform(1, 0, 0, 1, x, y), transformFrame=transformFrame)\n    \n    offset = translate\n    t = translate\n\n\n    def shift(self, dx, dy, tx=1, ty=1) -> \"P\":\n\n        amb = self.ambit(tx=tx, ty=ty)\n        self.translate(amb.w*dx, amb.h*dy)\n        return self\n    \n    sh = shift\n    \n\n    def zero(self, th=None, tv=None, tx=0, ty=0) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n        x, y, _, _ = self.ambit(tx=tx, ty=ty)\n        self.translate(-x, -y)\n        return self\n    \n\n    def centerZero(self, th=None, tv=None, tx=0, ty=0):\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        x, y, w, h = self.ambit(tx=tx, ty=ty)\n        nx, ny = -x-w/2, -y-h/2\n        return (self\n            .t(-x-w/2, -y-h/2)\n            .data(centerZeroOffset=(nx, ny)))\n    \n\n    def centerPoint(self, rect, pt, interp=1, th=None, tv=None, tx=1, ty=0, **kwargs) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        if \"i\" in kwargs:\n            interp = kwargs[\"i\"]\n        \n        x, y = self._normPoint(pt, tx=tx, ty=ty, **kwargs)\n\n        return self.translate(norm(interp, 0, rect.w/2-x), norm(interp, 0, rect.h/2-y))\n    \n\n    def skew(self, x=0, y=0, point=None, th=None, tv=None, tx=1, ty=0, **kwargs) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        px, py = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        t = t.translate(px, py)\n        t = t.skew(x, y)\n        t = t.translate(-px, -py)\n        return self.transform(t)\n    \n\n    def rotate(self, degrees, point=None, th=None, tv=None, tx=1, ty=1, **kwargs) -> \"P\":\n\n        \"\"\"Rotate this shape by a degree (in 360-scale, counterclockwise).\"\"\"\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        x, y = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        t = t.translate(x, y)\n        t = t.rotate(math.radians(degrees))\n        t = t.translate(-x, -y)\n        return self.transform(t, transformFrame=False)\n    \n    rt = rotate\n\n\n    def r90(self, multiplier, point=None, tx=1, ty=1, **kwargs) -> \"P\":\n\n        return self.rotate(90*multiplier, point=point, tx=tx, ty=ty, **kwargs)\n    \n\n    def scale(self, scaleX, scaleY=None, point=None, th=None, tv=None, tx=1, ty=0, **kwargs) -> \"P\":\n\n        \"\"\"Scale this shape by a percentage amount (1-scale).\"\"\"\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        t = Transform()\n        x, y = self._normPoint(point, tx=tx, ty=ty, **kwargs)\n        if point is not False:\n            t = t.translate(x, y)\n        t = t.scale(scaleX, scaleY or scaleX)\n        if point is not False:\n            t = t.translate(-x, -y)\n        return self.transform(t)\n    \n    def flipx(self):\n        return self.scale(-1,1)\n    \n    def flipy(self):\n        return self.scale(1,-1)\n    \n\n    def scaleToRect(self, rect, preserveAspect=True, shrink_only=False, tx=1, ty=0, return_number=False) -> \"P\":\n\n        \"\"\"Scale this shape into a `Rect`.\"\"\"\n        bounds = self.bounds()\n        if not bounds.nonzero():\n            return self\n\n        h = rect.w / bounds.w\n        v = rect.h / bounds.h\n        if preserveAspect:\n            scale = h if h < v else v\n            if shrink_only and scale >= 1:\n                if return_number:\n                    return 1\n                return self\n            \n            if return_number:\n                return scale\n            else:\n                return self.scale(scale, tx=tx, ty=ty)\n        else:\n            if shrink_only and (h >= 1 or v >= 1):\n                if return_number:\n                    return 1, 1\n                return self\n            \n            if return_number:\n                return h, v\n            return self.scale(h, v, tx=tx, ty=ty)\n    \n\n    def scaleToWidth(self, w, shrink_only=False) -> \"P\":\n\n        \"\"\"Scale this shape horizontally\"\"\"\n        b = self.bounds()\n        if shrink_only and b.w < w:\n            return self\n        else:\n            return self.scale(w / self.bounds().w, 1)\n    \n\n    def scaleToHeight(self, h, shrink_only=False) -> \"P\":\n\n        \"\"\"Scale this shape horizontally\"\"\"\n        b = self.bounds()\n        if shrink_only and b.h < h:\n            return self\n        return self.scale(1, h / self.bounds().h)\n    \n    # multi-elements\n\n\n    def distribute(self, v=False, tracks=None, th=None, tv=None, tx=0, ty=0) -> \"P\":\n\n        tx, ty = self._normT(th, tv, tx, ty, None)\n\n        off = 0\n        for idx, p in enumerate(self):\n            if tracks is not None and idx > 0:\n                t = tracks[idx-1]\n                #print(t)\n                off += t\n            frame = p.ambit(tx=tx, ty=ty)\n            if v:\n                if frame.y < 0:\n                    p.translate(0, -frame.y)\n                p.translate(0, off)\n                off += frame.h\n            else:\n                if frame.x < 0:\n                    p.translate(-frame.x, 0)\n                if frame.x > 0 and th:\n                    p.translate(-frame.x, 0)\n                p.translate(off, 0)\n                off += frame.w\n        return self\n    \n\n    def spread(self, tracking=0, tx=0, zero=False) -> \"P\":\n\n        \"Horizontal distribution of elements\"\n        if zero:\n            for p in self:\n                p.zero(tx=tx)\n        ambits = [p.ambit(tx=tx, ty=0).expand(tracking, \"E\") for p in self._els]\n        \n        ax = 0\n        for idx, p in enumerate(self._els):\n            aw = ambits[idx].w\n            p.translate(ax, 0)\n            ax += aw\n\n        return self\n    \n\n    def stack(self, leading=0, ty=0, zero=False) -> \"P\":\n\n        \"Vertical distribution of elements\"\n        if isinstance(leading, str) and \"%\" in leading:\n            leading = self[0].ambit(ty=0).h * float(leading[:-1])/100\n        if zero:\n            for p in self:\n                p.zero()\n        ambits = [p.ambit(tx=0, ty=ty).expand(leading, \"N\") for p in self._els]\n        for idx, p in enumerate(self._els):\n            for a in ambits[idx+1:]:\n                p.translate(0, a.h)\n        return self\n    \n\n    def track(self, t, v=False) -> \"P\":\n\n        \"\"\"Track-out/distribute elements\"\"\"\n        for idx, p in enumerate(self._els):\n            if v:\n                p.translate(0, -t*idx)\n            else:\n                p.translate(t*idx, 0)\n        return self\n    \n\n    def lead(self, leading) -> \"P\":\n\n        \"Vertical spacing\"\n        ln = len(self._els)\n\n        try:\n            if self._els[-1].ambit().y > self._els[0].ambit().y:\n                leading = -leading\n        except IndexError:\n            pass\n        \n        for idx, p in enumerate(self._els):\n            p.translate(0, leading*(ln-1-idx))\n        return self\n    \n\n    def grid(self, every, spread=0, stack=0, zero=False) -> \"P\":\n\n        top = type(self)()\n        row = None\n        \n        for idx, p in enumerate(self._els):\n            if zero:\n                p.zero()\n            \n            if idx%every == 0:\n                row = type(self)()\n                top.append(row)\n            row.append(p)\n        \n        self._els = top._els\n\n        for row in self:\n            row.spread(spread)\n        \n        self.stack(stack)\n        return self\n    \n\n    def gridlayer(self, nx, ny=None, track=0, lead=0) -> \"P\":\n\n        \"\"\"Spread nx copies and then stack ny copies, w/ optional tracking & leading\"\"\"\n        return (self\n            .layer(nx)\n            .spread(track)\n            .layer(ny if ny is not None else nx)\n            .stack(lead))\n    \n    def pasteup(self, styler=lambda p: p.f(bw(1)), padding=(5, 5), tx=1, ty=0, x=\"CX\", y=\"CY\"):\n        r = self.ambit(tx=tx, ty=ty).inset(*[-x for x in padding]).zero()\n        board = type(self)(r).ch(styler)\n        self.align(r, tx=tx, ty=ty, x=x, y=y)\n        return self.up().insert(0, board)\n    \n\n    def pattern_repeat(self, r) -> \"P\":\n\n        a = self.ambit(tx=1, ty=1)\n        copies = type(self)()\n        def repeater(_p):\n            if a.mxx > r.mxx:\n                copies.append(_p.copy().translate(-r.w, 0).fssw(hsl(0, a=0.5), -1, 0).rotate(0))\n            if a.mxy > r.mxy:\n                copies.append(_p.copy().translate(0, -r.h).fssw(hsl(0.25, a=0.5), -1, 0).rotate(0))\n            if a.mny < r.mny:\n                copies.append(_p.copy().translate(0, r.h).fssw(hsl(0.5, a=0.5), -1, 0).rotate(0))\n            if a.mnx < r.mnx:\n                copies.append(_p.copy().translate(r.w, 0).fssw(hsl(0.75, a=0.5), -1, 0).rotate(0))\n        repeater(self)\n        for c in list(copies):\n            repeater(c)\n        return self.up().append(copies)\n    \n\n    def track_with_width(self, t) -> \"P\":\n\n        \"\"\"Track-out/distribute elements\"\"\"\n        x = 0\n        for idx, p in enumerate(self._els):\n            frame = p.ambit()\n            p.translate(x + t, 0)\n            x += frame.w\n        return self\n    \n\n    def track_to_width(self, width, pullToEdges=False, r=0) -> \"P\":\n\n        return self.track_to_rect(Rect(width, 0), pullToEdges=pullToEdges, r=r)\n    \n\n    def track_to_rect(self, rect, pullToEdges=False, r=0) -> \"P\":\n\n        \"\"\"Distribute pens evenly within a frame\"\"\"\n        if len(self) == 1:\n            return self.align(rect)\n        total_width = 0\n        pens = self._els\n        if r:\n            pens = list(reversed(pens))\n        start_x = pens[0].ambit(tx=pullToEdges).x\n        end_x = pens[-1].ambit(tx=pullToEdges).point(\"SE\").x\n        # TODO easy to knock out apostrophes here based on a callback, last \"actual\" frame\n        total_width = end_x - start_x\n        leftover_w = rect.w - total_width\n        tracking_value = leftover_w / (len(self)-1)\n        if pullToEdges:\n            xoffset = rect.x - pens[0].bounds().x\n        else:\n            xoffset = rect.x - pens[0].ambit().x\n        for idx, p in enumerate(pens):\n            if idx == 0:\n                p.translate(xoffset, 0)\n            else:\n                p.translate(xoffset+tracking_value*idx, 0)\n        return self\n    \n    trackToRect = track_to_rect\n\n\n    def connect(self, *others) -> \"P\":\n\n        return (type(self)([self, *others])\n            .distribute()\n            .pen())\n\n    @property\n    def x(self): return self.ambit().x\n    @property\n    def y(self): return self.ambit().y\n    @property\n    def w(self): return self.ambit().w\n    @property\n    def h(self): return self.ambit().h\n\n    @property\n    def tx(self): return self.ambit(tx=1).x\n    @property\n    def ty(self): return self.ambit(ty=1).y\n    @property\n    def tw(self): return self.ambit(tx=1).w\n    @property\n    def th(self): return self.ambit(ty=1).h\n\n\n    def groupedStyle(self, st, default_style):\n\n        sf = False\n        if \"stroke\" in st:\n            c = st[\"stroke\"]\n            sw = st.get(\"strokeWidth\", default_style.get(\"strokeWidth\", 1))\n            miter = st.get(\"strokeMiter\", default_style.get(\"strokeMiter\", None))\n            st[\"stroke\"] = dict(color=c, weight=sw, miter=miter)\n        \n        if \"stroke\" not in st and \"stroke\" in default_style:\n            st[\"stroke\"] = self.groupedStyle(default_style, default_style)[\"stroke\"]\n        \n        if \"strokeWidth\" in st:\n            del st[\"strokeWidth\"]\n        if \"strokeMiter\" in st:\n            del st[\"strokeMiter\"]\n        if \"strokeFirst\" in st:\n            sf = True\n            del st[\"strokeFirst\"]\n        \n        if \"fill\" not in st:\n            st[\"fill\"] = rgb(1, 0, 0.5)\n        \n        rest = [\"blendmode\", \"image\", \"skp\", \"COLR\", \"dash\"]\n        if sf:\n            order = [\"shadow\", \"stroke\", \"fill\", *rest]\n        else:\n            order = [\"shadow\", \"fill\", \"stroke\", *rest]\n        \n        sort = {k:v for k,v in sorted(st.items(), key=lambda kv: order.index(kv[0]))}\n        return sort\n\n\n    def f(self, *value) -> \"P\":\n\n        \"\"\"Get/set a (f)ill\"\"\"\n        if value:\n            if isinstance(value[0], Theme):\n                for k, v in value[0].colors.items():\n                    self.attr(k, fill=v)\n                return self\n            elif not isinstance(value, Color):\n                value = normalize_color(value)\n            return self.attr(fill=value)\n        else:\n            return self.attr(field=\"fill\")\n    \n    fill = f\n    \n\n    def s(self, *value) -> \"P\":\n\n        \"\"\"Get/set a (s)troke\"\"\"\n        if value:\n            if isinstance(value[0], Theme):\n                for k, v in value[0].colors.items():\n                    self.attr(k, stroke=v)\n                return self\n            elif not isinstance(value, Color):\n                value = normalize_color(value)\n            return self.attr(stroke=value)\n        else:\n            return self.attr(field=\"stroke\")\n    \n    stroke = s\n    \n\n    def sw(self, value) -> \"P\":\n\n        \"\"\"Get/set a (s)troke (w)idth\"\"\"\n        if value is not None:\n            return self.attr(strokeWidth=value)\n        else:\n            return self.attr(field=\"strokeWidth\")\n    \n    strokeWidth = sw\n\n\n    def dash(self, pattern, phase=0) -> \"P\":\n\n        return self.attr(dash=[pattern, phase])\n\n\n    def ssw(self, s, sw) -> \"P\":\n\n        self.s(s)\n        self.sw(sw)\n        return self\n    \n\n    def fssw(self, f, s, sw, sf=0) -> \"P\":\n\n        if not isinstance(f, Theme) and isinstance(s, Theme):\n            t = Theme(f)\n            for k in s.colors.keys():\n                t[k] = f\n            f = t\n\n        self.f(f)\n        self.s(s)\n        self.sw(sw)\n        self.sf(sf)\n        return self\n    \n\n    def strokeFirst(self, value=None) -> \"P\":\n\n        \"\"\"\n        For a rendering engine that has to stroke and fill in two separate passes, perform the stroke _before_ the fill (akin to an `.understroke` but without the duplication overhead)\n        \"\"\"\n        if value:\n            return self.attr(strokeFirst=value)\n        else:\n            return self.attr(field=\"strokeFirst\")\n    \n\n    def sf(self, value=None) -> \"P\":\n\n        \"strokeFirst\"\n        return self.strokeFirst(value)\n    \n\n    def strokeMiter(self, value=None) -> \"P\":\n\n        \"\"\"\n        For a rendering engine that can specify stroke-miter\n        \"\"\"\n        if value:\n            return self.attr(strokeMiter=value)\n        else:\n            return self.attr(field=\"strokeMiter\")\n\n\n    def sm(self, value=None) -> \"P\":\n\n        \"strokeMiter\"\n        return self.strokeMiter(value)\n    \n    def img(self, src=None, rect=Rect(0, 0, 500, 500), pattern=False, opacity=1.0):\n        \"\"\"Get/set an image fill\"\"\"\n        if src:\n            from coldtype.img.abstract import AbstractImage\n            if isinstance(src, AbstractImage):\n                return self.attr(image=dict(src=src.src, rect=rect, pattern=pattern, opacity=opacity))\n            return self.attr(image=dict(src=src, rect=rect, pattern=pattern, opacity=opacity))\n        else:\n            return self.attr(field=\"image\")\n    \n    image = img\n\n    def shadow(self, radius=10, color=(0, 0.3), clip=None):\n        return self.attr(shadow=dict(color=normalize_color(color), radius=radius, clip=clip))\n    \n    # other\n\n\n    def blendmode(self, blendmode=None, show=False) -> \"P\":\n\n        if isinstance(blendmode, int):\n            blendmode = BlendMode.Cycle(blendmode, show=show)\n        elif isinstance(blendmode, str):\n            blendmode = BlendMode[blendmode]\n        \n        if blendmode:\n            return self.attr(blendmode=blendmode)\n        else:\n            return self.attr(field=\"blendmode\")\n    \n\n    def postprocess(self, fn) -> \"P\":\n\n        return self.data(postprocess=fn, function_literals=True)\n\n\n    def glyph(self, glyph, glyphSet=None, layerComponents=False) -> \"P\":\n\n        \"\"\"Play a glyph (like from `defcon`) into this pen.\"\"\"\n        out = type(self)()\n        base = type(self)()\n        out.append(base)\n        glyph.draw(base._val)\n\n        new_val = []\n        for mv, pts in base._val.value:\n            if mv == \"addComponent\":\n                component_name, matrix = pts\n                rp = RecordingPen()\n                tp = TransformPen(rp, Transform(*matrix))\n                component = glyphSet[component_name]\n                # recursively realize any nested components\n                realized = type(self)().glyph(component, glyphSet)\n                realized.replay(tp)\n                p = type(self)()\n                p._val = rp\n                out.append(p)\n                if \"addComponent\" in str(p._val.value):\n                    print(\"> NESTED COMPONENT\", component_name)\n            else:\n                new_val.append((mv, pts))\n        \n        base._val.value = new_val\n        \n        if layerComponents:\n            return out\n        else:\n            try:\n                out.pen().replay(self._val)\n            except IndexError:\n                pass\n            return self\n    \n\n    def toGlyph(self, name=None, width=None, allow_blank=False):\n\n        \"\"\"\n        Create a glyph (like from `defcon`) using this pen’s value.\n        *Warning*: if path is unended, closedPath will be called\n        \"\"\"\n        from defcon import Glyph\n        if not allow_blank:\n            if self.unended():\n                self.closePath()\n        bounds = self.bounds()\n        glyph = Glyph()\n        glyph.name = name\n        glyph.width = width or bounds.w\n        try:\n            sp = glyph.getPen()\n            self.replay(sp)\n        except AssertionError:\n            if not allow_blank:\n                print(\">>>blank glyph:\", glyph.name)\n        return glyph\n\n\n    def pickle(self, dst) -> \"P\":\n\n        dst.parent.mkdir(parents=True, exist_ok=True)\n        fh = open(str(dst), \"wb\")\n        \n        def prune(pen, state, data):\n            if state >= 0:\n                if hasattr(pen, \"_stst\"):\n                    pen._stst = None\n        \n        self.walk(prune)\n        pickle.dump(self, fh)\n        fh.close()\n        return self\n    \n\n    def Unpickle(self, src):\n\n        if isinstance(src, str):\n            src = Path(src)\n        return pickle.load(open(str(src.expanduser()), \"rb\"))\n    \n\n    def withJSONValue(self, path, keys=None) -> \"P\":\n\n        data = json.loads(Path(path).expanduser().read_text())\n        if keys is not None:\n            for key in keys:\n                data = data[key]\n        \n        self._val.value = data\n        return self\n    \n\n    def withSVG(self, svg) -> \"P\":\n\n        from fontTools.svgLib import SVGPath\n        svg = SVGPath.fromstring(svg)\n        rp = RecordingPen()\n        svg.draw(rp)\n        self._val.value = rp.value\n        return self\n\n\n    def withSVGFile(self, svg_file) -> \"P\":\n\n        svg_file = Path(svg_file).expanduser().absolute()\n        from fontTools.svgLib import SVGPath\n        svg = SVGPath.fromstring(svg_file.read_bytes())\n        rp = RecordingPen()\n        svg.draw(rp)\n        self._val.value = rp.value\n        return self\n\n\n    def _pathop(self, otherPen=None, operation=BooleanOp.XOR, use_skia_pathops_draw=True) -> \"P\":\n\n        if callable(otherPen):\n            otherPen = otherPen(self)\n\n        if self.val_present():\n            self._val.value = calculate_pathop(self, otherPen, operation, use_skia_pathops_draw=use_skia_pathops_draw)\n        \n        if otherPen is not None or operation == BooleanOp.Simplify:\n            for el in self._els:\n                el._pathop(otherPen, operation)\n        else:\n            curr = self._els[0]\n            for el in self._els[1:]:\n                curr._pathop(el, operation)\n            self._els = [curr]\n\n        # if hasattr(self, \"pmap\"):\n        #     return self.pmap(lambda p: p._pathop(otherPen, operation))\n        # self.value = calculate_pathop(self, otherPen, operation)\n        return self\n    \n\n    def difference(self, otherPen=None) -> \"P\":\n\n        \"\"\"Calculate and return the difference of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Difference)\n    \n\n    def union(self, otherPen=None) -> \"P\":\n\n        \"\"\"Calculate and return the union of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Union)\n    \n\n    def xor(self, otherPen=None) -> \"P\":\n\n        \"\"\"Calculate and return the XOR of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.XOR)\n    \n\n    def reverseDifference(self, otherPen=None) -> \"P\":\n\n        \"\"\"Calculate and return the reverseDifference of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.ReverseDifference)\n    \n\n    def intersection(self, otherPen=None) -> \"P\":\n\n        \"\"\"Calculate and return the intersection of this shape and another.\"\"\"\n        return self._pathop(otherPen=otherPen, operation=BooleanOp.Intersection)\n    \n\n    def removeOverlap(self, use_skia_pathops_draw=True) -> \"P\":\n\n        \"\"\"Remove overlaps within this shape and return itself.\"\"\"\n        return self._pathop(otherPen=None, operation=BooleanOp.Simplify, use_skia_pathops_draw=use_skia_pathops_draw)\n    \n    remove_overlap = removeOverlap\n    ro = removeOverlap\n\n\n    def distribute_on_path(self,\n        path,\n        offset=0,\n        cc=None,\n        notfound=None,\n        center=False,\n        apply_tangent=True,\n        baseline=0,\n        ) -> \"P\":\n\n        if len(self) == 0:\n            # TODO print error?\n            return self\n\n        if cc:\n            cutter = cc\n        else:\n            cutter = CurveCutter(path)\n        if center is not False:\n            offset = (cutter.length-self.bounds().w)/2 + center\n        limit = len(self._els)\n        for idx, p in enumerate(self._els):\n            f = p.ambit()\n            bs = f.y\n            ow = offset + f.x + f.w / 2\n            #if ow < 0:\n            #    if notfound:\n            #        notfound(p)\n            if ow > cutter.length:\n                limit = min(idx, limit)\n            else:\n                _p, tangent = cutter.subsegmentPoint(end=ow)\n                x_shift = bs * math.cos(math.radians(tangent))\n                y_shift = bs * math.sin(math.radians(tangent))\n                if baseline > 1:\n                    p.translate(0, -f.h*baseline)\n                t = Transform()\n                t = t.translate(_p[0] + x_shift - f.x, _p[1] + y_shift - f.y)\n                t = t.translate(f.x, f.y)\n                if apply_tangent:\n                    t = t.rotate(math.radians(tangent-90))\n                else:\n                    p.data(tangent=tangent-90)\n                t = t.translate(-f.x, -f.y)\n                t = t.translate(-f.w*0.5)\n                p.transform(t)\n\n        if limit < len(self._els):\n            self._els = self._els[0:limit]\n        return self\n    \n    distributeOnPath = distribute_on_path\n\n\n    def subsegment(self, start=0, end=1) -> \"P\":\n\n        \"\"\"Return a subsegment of the pen based on `t` values `start` and `end`\"\"\"\n        if not self.val_present():\n            return\n        \n        cc = CurveCutter(self)\n        start = 0\n        end = end * cc.calcCurveLength()\n        pv = cc.subsegment(start, end)\n        self._val.value = pv\n        return self\n    \n\n    def point_t(self, t=0.5):\n\n        \"\"\"Get point value for time `t`\"\"\"\n        cc = CurveCutter(self)\n        start = 0\n        tv = t * cc.calcCurveLength()\n        p, tangent = cc.subsegmentPoint(start=0, end=tv)\n        return p, tangent\n    \n\n    def split_t(self, t=0.5):\n\n        if not self.val_present():\n            return\n\n        a = self._val.value[0][-1][0]\n        b, c, d = self._val.value[-1][-1]\n        return splitCubicAtT(a, b, c, d, t)\n    \n\n    def add_pt_t(self, cuidx, t) -> \"P\":\n\n        if not self.val_present():\n            return\n\n        cidx = 0\n        insert_idx = -1\n        c1, c2 = None, None\n\n        for idx, (mv, pts) in enumerate(self._val.value):\n            if mv == \"curveTo\":\n                if cidx == cuidx:\n                    insert_idx = idx\n                    a = self._val.value[idx-1][-1][-1]\n                    b, c, d = pts\n                    c1, c2 = splitCubicAtT(a, b, c, d, t)\n                cidx += 1\n            elif mv == \"lineTo\":\n                if cidx == cuidx:\n                    insert_idx = idx\n                    a = self._val.value[idx-1][-1][-1]\n                    b = pts[0]\n                    l = Line(a, b)\n                    c1 = [l.t(0.5)]\n                    c2 = [b]\n                cidx += 1\n        \n        if c2:\n            if len(c2) > 1:\n                self._val.value[insert_idx] = (\"curveTo\", c1[1:])\n                self._val.value.insert(insert_idx+1, (\"curveTo\", c2[1:]))\n            else:\n                self._val.value[insert_idx] = (\"lineTo\", c1)\n                self._val.value.insert(insert_idx+1, (\"lineTo\", c2))\n        return self\n    \n\n    def samples(self, interval=10, even=False):\n\n        cc = CurveCutter(self)\n        samples = []\n        length = cc.calcCurveLength()\n        inc = 1\n        idx = 0\n        while inc < length:\n            pt, tan = cc.subsegmentPoint(start=0, end=inc)\n            samples.append(CurveSample(idx, pt, inc / length, tan))\n            inc += interval\n            idx += 1\n        \n        for i, s in enumerate(samples):\n            next = samples[i+1] if i < len(samples)-1 else s\n            prev = samples[i-1] if i > 0 else s\n            s.neighbors(prev, next)\n        \n        return samples\n    \n\n    def onSamples(self, interval=10, even=False, fn=None):\n\n        return (type(self)().enumerate(self.samples(interval=interval, even=even), lambda s: fn(self, s)))\n    \n\n    def length(self, t=1):\n\n        \"\"\"Get the length of the curve for time `t`\"\"\"\n        cc = CurveCutter(self)\n        start = 0\n        tv = t * cc.calcCurveLength()\n        return tv\n    \n\n    def ease_t(self, e, tries=0) -> \"P\":\n\n        _, _, w, h = self.ambit()\n        pen = MarginPen(None, e*w, isHorizontal=False)\n        self.replay(pen)\n        try:\n            return pen.getAll()[0]/h\n        except IndexError:\n            # HACK for now but I guess works?\n            #print(\"INDEX ERROR\", e)\n            if tries < 500:\n                return self.ease_t(e-0.01, tries=tries+1)\n            return 0\n        \n\n    def divide(self, length=150, floor=True, count=None, idx=0, max=None) -> \"P\":\n\n        a = self.v.value[0][-1][-1]\n        b, c, d = self.v.value[1][-1]\n        l = calcCubicArcLength(a, b, c, d)\n\n        if count is not None:\n            length = l / count\n            floor = False\n\n        if l < length:\n            if max is not None and len(self.v.value) < max:\n                self.add_pt_t(0, 0.5)\n                self.divide(length=length, floor=False, idx=idx+1, max=max)\n            return self\n        \n        if max is not None and len(self.v.value) >= max:\n            return self\n\n        if floor:\n            fl = math.floor(l/length)\n            length = l/fl\n        \n        t = 1/(l/length)\n        \n        if l > length*1.5:\n            self.add_pt_t(0, 1-t)\n            self.divide(length=length, floor=False, idx=idx+1, max=max)\n        elif max is not None:\n            self.add_pt_t(0, 0.5)\n            self.divide(length=length, floor=False, idx=idx+1, max=max)\n            pass\n        return self\n\n    # contours?\n\n    def _prep_for_wave(self, flatten=1, centered=False):\n\n        prepped = self.copy()\n        if centered:\n            prepped.center(tx=1, ty=1)\n        \n        if flatten > 0:\n            prepped.flatten(flatten)\n        \n        return prepped\n\n\n    def toAudio(self, flatten=1, centered=False, loops=3, filename=None):\n\n        import numpy as np\n        from pedalboard.io import AudioFile\n\n        prepped = self._prep_for_wave(flatten=flatten, centered=centered)\n\n        left, right = [], []\n        for (_, pts) in prepped._val.value:\n            if len(pts) > 0:\n                left.append(pts[0][0] / 1000)\n                right.append(pts[0][1] / 1000)\n\n        audio = np.tile(np.array([left, right]), loops)\n\n        if filename:\n            with AudioFile(filename, \"w\", samplerate=48000, num_channels=2) as f:\n                f.write(audio)\n        \n        return audio, len(left)\n    \n\n    def fromAudio(self, audio, start=500, end=9500, step=1, mult=1360, scale=2) -> \"P\":\n\n        for idx in range(start, end, step):\n            try:\n                x = audio[0][idx]\n                y = audio[1][idx]\n                self.oval(Rect.FromCenter((x*mult, y*mult), scale))\n            except IndexError:\n                pass\n        return self\n\n    # def wavefile(self, flatten=1, centered=False) -> str:\n    #     #from IPython.display import Audio, display\n\n    #     prepped = self._prep_for_wave(flatten=flatten, centered=centered)\n\n    #     left, right = [], []\n    #     for (_, pts) in prepped._val.value:\n    #         if len(pts) > 0:\n    #             left.append(pts[0][0])\n    #             right.append(pts[0][1])\n\n    #     samplesPerFrame = 200\n    #     sampleRate = 48000.0 # hertz\n\n    #     filename = \"test_1.wav\"\n\n    #     obj = wave.open(filename, 'w')\n    #     obj.setnchannels(2)\n    #     obj.setsampwidth(2)\n    #     obj.setframerate(sampleRate)\n\n    #     for x in range(0, samplesPerFrame):\n    #         for idx, l in enumerate(left):\n    #             data = struct.pack('<h', int(l)*24)\n    #             obj.writeframesraw(data)\n    #             data = struct.pack('<h', int(right[idx])*24)\n    #             obj.writeframesraw(data)\n\n    #     # silence\n    #     for _ in range(0, 5000):\n    #         obj.writeframesraw(struct.pack(\"<h\", 0))\n    #         obj.writeframesraw(struct.pack(\"<h\", 0))\n\n    #     obj.close()\n\n    #     return filename\n\n    def nsew(self):\n        pts = [el[1][-1] for el in self.v.value if len(el[1]) > 0]\n        \n        lines = []\n        for i, p in enumerate(pts):\n            if i + 1 == len(pts):\n                lines.append(Line(p, pts[0]))\n            else:\n                lines.append(Line(p, pts[i+1]))\n        \n        mnx, mny, mxx, mxy = self.bounds().mnmnmxmx()\n        min_ang = min([l.ang for l in lines])\n        max_ang = max([l.ang for l in lines])\n        #for idx, l in enumerate(lines):\n        #    print(idx, \">\", l.ang, min_ang, max_ang)\n        xs = [l for l in lines if l.ang < 0.25 or l.ang > 2.5]\n        ys = [l for l in lines if 1 < l.ang < 2]\n\n        if len(ys) == 2 and len(xs) < 2:\n            xs = [l for l in lines if l not in ys]\n        elif len(ys) < 2 and len(xs) == 2:\n            ys = [l for l in lines if l not in xs]\n        \n        #for l in ys:\n        #    print(l.ang)\n\n        #print(len(xs), len(ys))\n        #print(\"--------------------\")\n\n        try:\n            n = [l for l in xs if l.start.y == mxy or l.end.y == mxy][0]\n            s = [l for l in xs if l.start.y == mny or l.end.y == mny][0]\n            e = [l for l in ys if l.start.x == mxx or l.end.x == mxx][0]\n            w = [l for l in ys if l.start.x == mnx or l.end.x == mnx][0]\n            return n, s, e, w\n        except IndexError:\n            amb = self.ambit(tx=1, ty=1)\n            return [amb.en, amb.es, amb.ee, amb.ew]\n        \n    \n    def avg(self):\n        self.pvl()\n        pts = []\n        for _, _pts in self.v.value:\n            if len(_pts) > 0:\n                pts.extend(_pts)\n        n = len(pts)\n        return Point(\n            sum([p.x for p in pts])/n,\n            sum([p.y for p in pts])/n)\n\n    @property\n    def ecx(self):\n        n, s, e, w = self.nsew()\n        return e.interp(0.5, w.reverse())\n    \n    @property\n    def ecy(self):\n        n, s, e, w = self.nsew()\n        return n.interp(0.5, s.reverse())\n    \n\n    def edge(self, e) -> \"P\":\n\n        e = e.lower()\n        if e == \"n\":\n            return self.en\n        elif e == \"s\":\n            return self.es\n        elif e == \"e\":\n            return self.ee\n        elif e == \"w\":\n            return self.ew\n\n\n    def point(self, pt) -> \"P\":\n\n        n, s, e, w = self.nsew()\n        if pt == \"NE\":\n            return n.pe\n        elif pt == \"NW\":\n            return n.pw\n        elif pt == \"SE\":\n            return s.pe\n        elif pt == \"SW\":\n            return s.pw\n        elif pt == \"N\":\n            return n.mid\n        elif pt == \"S\":\n            return s.mid\n        elif pt == \"E\":\n            return e.mid\n        elif pt == \"W\":\n            return w.mid\n        elif pt == \"C\":\n            return self.ecx.sect(self.ecy)\n\n    @property\n    def pne(self): return self.point(\"NE\")\n    @property\n    def pnw(self): return self.point(\"NW\")\n    @property\n    def psw(self): return self.point(\"SW\")\n    @property\n    def pse(self): return self.point(\"SE\")\n    @property\n    def pn(self): return self.point(\"N\")\n    @property\n    def ps(self): return self.point(\"S\")\n    @property\n    def pe(self): return self.point(\"E\")\n    @property\n    def pw(self): return self.point(\"W\")\n    @property\n    def pc(self): return self.point(\"C\")\n    @property\n    def en(self): return self.nsew()[0]\n    @property\n    def es(self): return self.nsew()[1]\n    @property\n    def ee(self): return self.nsew()[2]\n    @property\n    def ew(self): return self.nsew()[3]\n\n    def trim_start(self):\n        self.pvl()\n        new_start = self._val.value[1][-1][-1]\n        self._val.value[1][0] = \"moveTo\"\n        self._val.value[1][-1] = [new_start]\n        self._val.value = self._val.value[1:]\n        return self\n\n    def trim_end(self):\n        self.pvl()\n        end = self._val.value[-1][0]\n        if end in [\"closePath\", \"endPath\"]:\n            self._val.value = self._val.value[:-2]\n            if end == \"closePath\":\n                self.cp()\n            else:\n                self.ep()\n        else:\n            self._val.value = self._val.value[:-1]\n        return self\n\n    def q2c(self):\n        new_vl = []\n        for mv, pts in self.v.value:\n            if mv == \"qCurveTo\":\n                # does not handle all-offcurve+None mode\n                # https://forum.drawbot.com/topic/58/qcurve\n                # https://github.com/fonttools/skia-pathops/issues/45\n                # https://github.com/fonttools/skia-pathops/issues/71\n                decomposed = decomposeQuadraticSegment(pts)\n                for dpts in decomposed:\n                    qp1, qp2 = [Point(pt) for pt in dpts]\n                    try:\n                        qp0 = Point(new_vl[-1][-1][-1])\n                        cp1 = qp0 + (qp1 - qp0)*(2.0/3.0)\n                        cp2 = qp2 + (qp1 - qp2)*(2.0/3.0)\n                        new_vl.append([\"curveTo\", (cp1, cp2, qp2)])\n                    except Exception as e:\n                        print(\"failed q2c\", e)\n            else:\n                new_vl.append([mv, pts])\n        self.v.value = new_vl\n        return self\n\n\n    def flatten(self, length=10, segmentLines=True) -> \"P\":\n\n        \"\"\"\n        Runs a fontTools `FlattenPen` on this pen\n        \"\"\"\n        for el in self._els:\n            el.flatten(length, segmentLines)\n\n        if self.val_present():\n            rp = RecordingPen()\n            fp = FlattenPen(rp, approximateSegmentLength=length, segmentLines=segmentLines)\n            self.replay(fp)\n            self._val.value = rp.value\n\n        return self\n    \n    def smooth(self):\n        for el in self._els:\n            el.smooth()\n        \n        if self.val_present():\n            rp = RecordingPen()\n            fp = SmoothPointsPen(rp)\n            self.replay(fp)\n            self._val.value = rp.value\n        \n        return self\n    \n\n    def catmull(self, points, close=False) -> \"P\":\n\n        \"\"\"Run a catmull spline through a series of points\"\"\"\n        p0 = points[0]\n        p1, p2, p3 = points[:3]\n        pts = [p0]\n        i = 1\n        while i < len(points):\n            pts.append([\n                ((-p0[0] + 6 * p1[0] + p2[0]) / 6),\n                ((-p0[1] + 6 * p1[1] + p2[1]) / 6),\n                ((p1[0] + 6 * p2[0] - p3[0]) / 6),\n                ((p1[1] + 6 * p2[1] - p3[1]) / 6),\n                p2[0],\n                p2[1]\n            ])\n            p0 = p1\n            p1 = p2\n            p2 = p3\n            try:\n                p3 = points[i + 2]\n            except:\n                p3 = p3\n            i += 1\n        self.moveTo(pts[0])\n        for p in pts[1:]:\n            self.curveTo((p[0], p[1]), (p[2], p[3]), (p[4], p[5]))\n        if close:\n            self.closePath()\n        return self\n    \n\n    def roughen(self, amplitude=10, threshold=10, ignore_ends=False, seed=None) -> \"P\":\n\n        \"\"\"Randomizes points in skeleton\"\"\"\n        if seed is not None:\n            rs = random_series(0, amplitude, seed=seed)\n        else:\n            rs = random_series(0, amplitude, seed=randint(0, 5000))\n        randomized = []\n        _x = 0\n        _y = 0\n        for idx, (t, pts) in enumerate(self.v.value):\n            if idx == 0 and ignore_ends:\n                randomized.append([t, pts])\n                continue\n            if idx == len(self.v.value) - 1 and ignore_ends:\n                randomized.append([t, pts])\n                continue\n            if t == \"lineTo\" or t == \"curveTo\":\n                #jx = pnoise1(_x) * amplitude # should actually be 1-d on the tangent (maybe? TODO)\n                #jy = pnoise1(_y) * amplitude\n                jx = rs[idx*2] - amplitude/2\n                jy = rs[idx*2+1] - amplitude/2\n                randomized.append([t, [(x+jx, y+jy) for x, y in pts]])\n                _x += 0.2\n                _y += 0.3\n            else:\n                randomized.append([t, pts])\n        self.v.value = randomized\n        return self\n    \n    def explode(self):\n        \"\"\"Convert all contours to individual paths\"\"\"\n        for el in self._els:\n            el.explode()\n\n        if self.val_present():\n            rp = RecordingPen()\n            ep = ExplodingPen(rp)\n            self.replay(ep)\n\n            for p in ep._pens:\n                el = type(self)()\n                el._val.value = p\n                el._attrs = deepcopy(self._attrs)\n                self.append(el)\n            \n            self._val = RecordingPen()\n        \n        return self\n    \n    def implode(self):\n        # TODO preserve frame from some of this?\n        #self.reset_val()\n        self._val = RecordingPen()\n        \n        for el in self._els:\n            self.record(el._val)\n\n        self._els = []\n        return self\n    \n\n    def map_points(self, fn, filter_fn=None) -> \"P\":\n\n        idx = 0\n        for cidx, c in enumerate(self._val.value):\n            move, pts = c\n            pts = list(pts)\n            for pidx, p in enumerate(pts):\n                x, y = p\n                if filter_fn and not filter_fn(Point(p)):\n                    continue\n                result = fn(idx, x, y)\n                if result:\n                    pts[pidx] = result\n                idx += 1\n            self._val.value[cidx] = (move, pts)\n        return self\n    \n\n    def mod_contour(self, contour_index, mod_fn=None) -> \"P\":\n\n        exploded = self.copy().explode()\n        if mod_fn:\n            mod_fn(exploded[contour_index])\n            self._val.value = exploded.implode()._val.value\n            return self\n        else:\n            return exploded[contour_index]\n    \n\n    def filterContours(self, filter_fn) -> \"P\":\n\n        if self.val_present():\n            exploded = self.copy().explode()\n            keep = []\n            for idx, c in enumerate(exploded):\n                if filter_fn(idx, c):\n                    keep.append(c)\n            self._val.value = type(self)(keep).implode()._val.value\n        return self\n    \n\n    def repeat(self, times=1) -> \"P\":\n\n        for el in self._els:\n            el.repeat(times)\n\n        if self.val_present():\n            copy = self.copy()._val.value\n            _, copy_0_data = copy[0]\n            copy[0] = (\"moveTo\", copy_0_data)\n            self._val.value = self._val.value[:-1] + copy\n            if times > 1:\n                self.repeat(times-1)\n        \n        return self\n\n\n    def outline(self,\n        offset=1,\n        drawInner=True,\n        drawOuter=True,\n        cap=\"square\",\n        miterLimit=None,\n        closeOpenPaths=True\n        ) -> \"P\":\n\n        \"\"\"AKA expandStroke\"\"\"\n        for el in self._els:\n            el.outline(offset, drawInner, drawOuter, cap, miterLimit, closeOpenPaths)\n        \n        if self.val_present():\n            op = OutlinePen(None\n                , offset=offset\n                , optimizeCurve=True\n                , cap=cap\n                , miterLimit=miterLimit\n                , closeOpenPaths=closeOpenPaths)\n            \n            self._val.replay(op)\n            op.drawSettings(drawInner=drawInner\n                , drawOuter=drawOuter)\n            g = op.getGlyph()\n            self._val.value = []\n            g.draw(self._val)\n        \n        return self\n    \n    ol = outline\n    \n\n    def project(self, angle, width) -> \"P\":\n\n        offset = polarCoord((0, 0), math.radians(angle), width)\n        self.translate(offset[0], offset[1])\n        return self\n\n\n    def castshadow(self,\n        angle=-45,\n        width=100,\n        ro=1,\n        fill=True\n        ) -> \"P\":\n\n        for el in self._els:\n            el.castshadow(angle, width, ro, fill)\n        \n        if self.val_present():\n            out = RecordingPen()\n            tp = TranslationPen(out\n                , frontAngle=angle\n                , frontWidth=width)\n            \n            self._val.replay(tp)\n            if fill:\n                self.copy().project(angle, width)._val.replay(out)\n                #out.record()\n            \n            self._val.value = out.value\n            if ro:\n                self.removeOverlap()\n        \n        return self\n    \n\n    def understroke(self,\n        s=0,\n        sw=5,\n        outline=False,\n        dofill=0,\n        miterLimit=None\n        ) -> \"P\":\n\n        if sw == 0:\n            return self\n        \n        def mod_fn(p):\n            if not outline:\n                return p.fssw(s, s, sw)\n            else:\n                if dofill:\n                    pf = p.copy()\n                p.f(s).outline(sw*2, miterLimit=miterLimit)\n                if dofill:\n                    p.reverse().record(pf)\n                return p\n\n        return self.layerv(mod_fn, 1)\n\ndef runonCast():\n    def _runonCast(p):\n        return P.FromPens(p)\n    return _runonCast\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/runon.py",
    "content": "import re\n\nfrom textwrap import wrap\n\nfrom typing import Callable, Optional\nfrom inspect import signature\nfrom random import Random\nfrom time import sleep\nfrom copy import deepcopy\nfrom collections.abc import Iterable\nfrom collections import namedtuple\nfrom functools import partial\n\nfrom coldtype.fx.chainable import Chainable\n\n_ARG_COUNT_CACHE = {}\n\ndef _arg_count(fn):\n    if fn not in _ARG_COUNT_CACHE:\n        count = len(signature(fn).parameters)\n        _ARG_COUNT_CACHE[fn] = count\n    return _ARG_COUNT_CACHE[fn]\n\n\nRunonEnumerable = namedtuple(\"RunonEnumerable\", [\"i\", \"el\", \"e\", \"len\", \"k\", \"parent\"])\n\n\nclass RunonException(Exception):\n    pass\n\n\nclass RunonSearchException(Exception):\n    pass\n\n\nclass RunonNoData:\n    pass\n\n\nclass Runon:\n    def __init__(self, *val):\n        els = []\n        to_append = []\n\n        if len(val) == 1 and not isinstance(val[0], Runon):\n            if isinstance(val[0], Iterable) and not isinstance(val[0], str):\n                to_append = val[0]\n                value = None\n            else:\n                value = val[0]\n        else:\n            value = None\n            els = []\n            to_append = val\n\n        self._val = None\n        self.reset_val()\n        \n        if value is not None:\n            self._val = self.normalize_val(value)\n\n        self._els = els\n        \n        self._visible = True\n        self._alpha = 1\n\n        self._attrs = {}\n        self._data = {}\n        self._parent = None\n        self._tag = None\n\n        self._tmp_attr_tag = None\n\n        for el in to_append:\n            self.append(el)\n    \n    def post_init(self):\n        \"\"\"subclass hook\"\"\"\n        pass\n\n    def yields_wrapped(self):\n        \"\"\"subclass hook\"\"\"\n        return True\n\n    # Value operations\n\n    def update(self, val):\n        if callable(val):\n            val = val(self)\n        \n        self._val = val\n        return self\n    \n    @property\n    def v(self):\n        return self._val\n\n    # Array Operations\n\n    def _call_idx_fn(self, fn, idx, arg:\"Runon\"):\n        if not self.yields_wrapped():\n            try:\n                if arg.val_present():\n                    arg = arg.v\n            except AttributeError:\n                arg = arg\n\n        ac = _arg_count(fn)\n        if ac == 1:\n            return fn(arg)\n        else:\n            return fn(idx, arg)\n\n    def _norm_element(self, el):\n        if el is None:\n            return None\n        \n        if callable(el):\n            el = el(self)\n        if not isinstance(el, Runon):\n            el = type(self)(el)\n        return el\n\n    def append(self, el):\n        el = self._norm_element(el)\n        if el is None:\n            return self\n        if el.data(\"insert\") is not None:\n            self._els.insert(el.data(\"insert\"), el)\n            el.data(insert=\"delete\")\n        else:\n            self._els.append(el)\n        return self\n\n    å = append\n    \n    def replicate(self, *els):\n        for el in els:\n            self.append(el.copy())\n        return self\n    \n    def attach(self, parent):\n        parent.append(self)\n        return self\n    \n    def extend(self, els):\n        if callable(els):\n            els = els(self)\n\n        if isinstance(els, Runon):\n            if len(els) > 0:\n                self.append(els._els)\n            else:\n                self.append(els)\n        else:\n            [self.append(el) for el in els]\n        return self\n    \n    def insert(self, idx, el):\n        el = self._norm_element(el)\n        \n        if el is None:\n            return self\n        \n        parent = self\n        try:\n            p = self\n            for x in idx[:-1]:\n                if len(self) > 0:\n                    parent = p\n                    p = p[x]\n            \n            p._els.insert(idx[-1], el)\n            return self\n        except TypeError:\n            pass\n\n        parent._els.insert(idx, el)\n        return self\n    \n    def __iadd__(self, item):\n        \"\"\"alias to append\"\"\"\n        return self.append(item)\n    \n    def __add__(self, item):\n        \"\"\"yields new Runon with current nested, item after\"\"\"\n        return type(self)(self, item)\n    \n    # Generic Interface\n\n    def __str__(self):\n        return self.__repr__()\n    \n    def printable_val(self):\n        \"\"\"subclass hook for __repr__\"\"\"\n        return self._val\n    \n    def printable_data(self):\n        \"\"\"subclass hook for __repr__\"\"\"\n        return self._data\n    \n    def __repr__(self, **kwargs):\n        v = self.printable_val()\n        t = self._tag\n        d = self.printable_data()\n        l = len(self)\n\n        if v is None:\n            v = \"\"\n        else:\n            v = f\"({v})\"\n        \n        if l == 0:\n            l = \"\"\n        else:\n            l = \"/\" + str(l) + \"...\"\n        \n        if t is None:\n            t = \"\"\n        else:\n            t = f\" {{#{t}}}\"\n        \n        if len(d) == 0:\n            d = \"\"\n        else:\n            if True:\n                ds = []\n                for k, _v in d.items():\n                    if len(kwargs) == 0 or kwargs.get(k, True):\n                        ds.append(f\"{k}={_v}\")\n                d = \" {\" + \",\".join(ds) + \"}\"\n            else:\n                d = \" {\" + \",\".join([f\"{k}={v}\" for k,v in d.items()]) + \"}\"\n        \n        if self.val_present():\n            tv = type(self._val).__name__\n            #if len(tv) > 5:\n            #    tv = tv[:5] + \"...\"\n        else:\n            tv = \"\"\n        \n        ty = type(self).__name__\n        if ty == \"Runon\":\n            ty = \"\"\n        \n        out = f\"<®:{ty}:{tv}{v}{l}{t}{d}>\"\n        return out\n    \n    def __bool__(self):\n        return len(self._els) > 0 or self._val is not None\n    \n    def val_present(self):\n        \"\"\"subclass hook\"\"\"\n        return self._val is not None\n    \n    def normalize_val(self, val):\n        \"\"\"subclass hook\"\"\"\n        return val\n    \n    def reset_val(self):\n        self._val = None\n        self._data = {}\n        self._attrs = {}\n        self._tag = None\n        return self\n    \n    def __len__(self):\n        return len(self._els)\n\n    def __getitem__(self, index):\n        if isinstance(index, int) or isinstance(index, slice):\n            el = self._els[index]\n        else:\n            tag = index\n            el = self.find_(tag)\n        \n        if el and self.data(\"vend\"):\n            return el.copy()\n        \n        return el\n    \n    def get(self, key, default=None):\n        try:\n            return self[key]\n        except RunonSearchException:\n            return default\n\n    \n    def subset(self, *idxs):\n        \"\"\"return subset of self wrapped in same type as self (rather than raw list)\"\"\"\n        if isinstance(idxs[0], slice):\n            return type(self)(self._els[idxs[0]])\n        else:\n            out = type(self)()\n            for i in idxs:\n                out.append(self[i%len(self._els)])\n            return out\n        \n    def __setitem__(self, index, pen):\n        self._els[index] = pen\n    \n    def tree(self, v=True, limit=100, **kwargs):\n        out = []\n        def walker(el, pos, data):\n            if pos <= 0:\n                if pos == 0 and not v:\n                    return\n                \n                dep = data.get(\"depth\", 0)\n                tab = \" |\"*dep\n                if pos == 0:\n                    tab = tab[:-1] + \"-\"\n                \n                sel = el.__repr__(**kwargs)\n                sel = wrap(sel, limit, initial_indent=\"\", subsequent_indent=\"  \"*(dep+2) + \" \")\n                out.append(tab + \" \" + \"\\n\".join(sel))\n        \n        self.walk(walker)\n        return \"\\n\" + \"\\n\".join(out)\n    \n    def depth(self):\n        if len(self) > 0:\n            return 1 + max(p.depth() for p in self)\n        else:\n            return 0\n    \n    # Iteration operations\n\n    def walk(self,\n        callback:Callable[[\"Runon\", int, dict], None],\n        depth=0,\n        visible_only=False,\n        parent=None,\n        alpha=1,\n        idx=None,\n        _selector=None,\n        ):\n        if visible_only and not self._visible:\n            return\n        \n        if parent:\n            self._parent = parent\n        \n        alpha = self._alpha * alpha\n        \n        if len(self) > 0:\n            utag = \"_\".join([str(i) for i in idx]) if idx else None\n            if utag is None and parent is None:\n                utag = \"ROOT\"\n            if _selector is None or _selector == -1:\n                callback(self, -1, dict(depth=depth, alpha=alpha, idx=idx, utag=utag))\n            \n            for pidx, el in enumerate(self._els):\n                idxs = [*idx] if idx else []\n                idxs.append(pidx)\n                el.walk(callback, depth=depth+1, visible_only=visible_only,\n                    parent=self, alpha=alpha, idx=idxs, _selector=_selector)\n            \n            utag = \"_\".join([str(i) for i in idx]) if idx else None\n            if utag is None and parent is None:\n                utag = \"ROOT\"\n            if _selector is None or _selector == +1:\n                callback(self, 1, dict(depth=depth, alpha=alpha, idx=idx, utag=utag))\n        else:\n            utag = \"_\".join([str(i) for i in idx]) if idx else None\n            if utag is None and parent is None:\n                utag = \"ROOT\"\n            \n            res = callback(self, 0, dict(\n                depth=depth, alpha=alpha, idx=idx, utag=utag))\n            \n            if res is not None:\n                if parent is None:\n                    return res\n                else:\n                    parent[idx[-1]] = res\n        \n        return self\n    \n    def prewalk(self, callback):\n        return self.walk(callback, _selector=-1)\n    \n    def postwalk(self, callback):\n        return self.walk(callback, _selector=+1)\n    \n    def parent(self, noexist_ok=False):\n        if self._parent:\n            return self._parent\n        else:\n            if not noexist_ok:\n                print(\"no parent set\")\n            return None\n        \n    def match(self, regex, cb=None, partial=False):\n        matches = []\n        rek = re.compile(regex)\n\n        def walker(el, _, __):\n            p = el.path(self)\n            if partial:\n                m = rek.match(p)\n            else:\n                m = rek.fullmatch(p)\n            \n            if m:\n                if cb:\n                    cb(el)\n                else:\n                    matches.append(el)\n            \n        self.prewalk(walker)\n        \n        if not cb:\n            return matches\n        else:\n            return self\n\n    def map(self, fn, range=None):\n        els = self._els[range] if range is not None else self._els\n        for idx, p in enumerate(els):\n            res = self._call_idx_fn(fn, idx, p)\n            if res:\n                self._els[idx] = res\n        return self\n    \n    def mape(self, fn):\n        total = len(self._els)\n        for idx, p in enumerate(self._els):\n            res = fn(idx/(total-1), p)\n            if res:\n                self._els[idx] = res\n        return self\n    \n    def filter(self, fn):\n        to_delete = []\n        for idx, p in enumerate(self._els):\n            if isinstance(fn, str):\n                res = p.tag() == fn\n            else:\n                res = self._call_idx_fn(fn, idx, p)\n            if res == False:\n                to_delete.append(idx)\n        to_delete = sorted(to_delete, reverse=True)\n        for idx in to_delete:\n            del self._els[idx]\n        return self\n    \n    def remove(self, fn):\n        to_delete = []\n        for idx, p in enumerate(self._els):\n            if isinstance(fn, str):\n                res = p.tag() == fn\n            else:\n                res = self._call_idx_fn(fn, idx, p)\n            if res == True:\n                to_delete.append(idx)\n        to_delete = sorted(to_delete, reverse=True)\n        for idx in to_delete:\n            del self._els[idx]\n        return self\n    \n    def mapv(self, fn):\n        if len(self) == 0:\n            if self.val_present():\n                print(\"! no els to mapv\")\n            return self\n\n        idx = 0\n        def walker(el, pos, _):\n            nonlocal idx\n            if pos != 0: return\n            \n            res = self._call_idx_fn(fn, idx, el)\n            idx += 1\n            return res\n        \n        return self.walk(walker)\n    \n    def mapvrc(self, fn:Callable[[int, int, \"Runon\"], \"Runon\"]):\n        \"\"\"\n        (map)-(v)alues with (r)ow-and-(c)olumn\n        __only works with spread/stack structure__\n        \"\"\"\n        def walker(p, pos, data:dict):\n            if pos == 0:\n                r, c = data.get(\"idx\", (-1, -1))\n                return fn(r, c, p)\n\n        return self.walk(walker)\n    \n    def mapvch(self, fn:Callable[[bool, \"Runon\"], \"Runon\"]):\n        \"\"\"\n        (map)-(v)alues (ch)eckerboard style\n        \"\"\"\n        return self.mapvrc(lambda r, c, p: fn(not((not r%2 and not c%2) or (r%2 and c%2)), p))\n    \n    def filterv(self, fn):\n        idx = 0\n        def walker(el, pos, data):\n            nonlocal idx\n            \n            if pos == 0:\n                res = self._call_idx_fn(fn, idx, el)\n                if not res:\n                    el.data(_walk_delete=True)\n                idx += 1\n                return None\n            elif pos == 1:\n                el.filter(lambda p: not p.data(\"_walk_delete\"))\n        \n        return self.walk(walker)\n    \n    def delete(self):\n        self._els = []\n        self.reset_val()\n        return self\n    \n    def deblank(self):\n        return self.filterv(lambda p: p.val_present())\n    \n    removeBlanks = deblank\n    \n    def interpose(self, el_or_fn):\n        new_els = []\n        for idx, el in enumerate(self._els):\n            if idx > 0:\n                if callable(el_or_fn):\n                    new_els.append(el_or_fn(idx-1))\n                else:\n                    new_els.append(el_or_fn.copy())\n            new_els.append(el)\n        self._els = new_els\n        return self\n    \n    def split(self, fn, split=0):\n        out = type(self)()\n        curr = type(self)()\n\n        for el in self._els:\n            do_split = False\n            if callable(fn):\n                do_split = fn(el)\n            else:\n                if el._val == fn:\n                    do_split = True\n            \n            if do_split:\n                if split == -1:\n                    curr.append(el)\n                out.append(curr)\n                curr = type(self)()\n                if split == 1:\n                    curr.append(el)\n            else:\n                curr.append(el)\n        \n        out.append(curr)\n        self._els = out._els\n        return self\n    \n    def enumerate(self, enumerable, enumerator):\n        es = list(enumerable)\n        length = len(es)\n\n        if length == 0:\n            return self\n\n        if isinstance(enumerable, dict):\n            for idx, k in enumerate(enumerable.keys()):\n                item = enumerable[k]\n                if idx == 0 and len(enumerable) == 1:\n                    e = 0.5\n                else:\n                    e = idx / (length-1)\n                result = enumerator(RunonEnumerable(idx, item, e, length, k, self))\n                if result != self:\n                    self.append(result)\n        else:\n            for idx, item in enumerate(es):\n                if idx == 0 and length == 1:\n                    e = 0.5\n                else:\n                    e = idx / (length-1)\n                \n                result = enumerator(RunonEnumerable(idx, item, e, length, idx, self))\n                if result != self:\n                    self.append(result)\n        return self\n    \n    # Hierarchical Operations\n\n    def collapse(self, deblank=True):\n        \"\"\"AKA `flatten` in some programming contexts\"\"\"\n        els = []\n        def walk(el, pos, data):\n            if pos == 0 and (el.val_present() or not deblank):\n                els.append(el)\n        \n        self.walk(walk)\n        self._els = els\n        return self\n    \n    def collapseonce(self, deblank=True):\n        \"\"\"Same as collapse, except only collapses one-level\"\"\"\n        els = []\n\n        for el in self._els:\n            els.extend(el._els)\n\n        self._els = els\n        return self\n    \n    def sum(self):\n        out = []\n        if self.val_present():\n            out.append(self._val)\n        \n        r = self.copy().collapse()\n        for el in r._els:\n            out.append(el._val)\n        return out\n    \n    def reverse(self, recursive=False, winding=True):\n        \"\"\"in-place element reversal\"\"\"\n        self._els = list(reversed(self._els))\n        if recursive:\n            for el in self._els:\n                el.reverse(recursive=True, winding=winding)\n        return self\n    \n    def shuffle(self, seed=0):\n        \"in-place shuffle\"\n        r = Random()\n        r.seed(seed)\n        r.shuffle(self._els)\n        return self\n    \n    def copy_val(self, val):\n        if hasattr(val, \"copy\"):\n            return val.copy()\n        else:\n            return val\n    \n    def copy(self, deep=True, with_data=True):\n        \"\"\"with_data is deprecated\"\"\"\n        val_copy = self.copy_val(self._val)\n\n        _copy = type(self)(val_copy)\n        copied = False\n        \n        if deep:\n            try:\n                _copy._data = deepcopy(self._data)\n                _copy._attrs = deepcopy(self._attrs)\n                copied = True\n            except TypeError:\n                pass\n        \n        if not copied:\n            _copy._data = self._data.copy()\n            _copy._attrs = self._attrs.copy()\n        \n        _copy._tag = self._tag\n\n        # kind of a hack but necessary\n        if hasattr(self, \"_stst\"):\n            _copy._stst = self._stst\n        \n        for el in self._els:\n            _copy.append(el.copy())\n        \n        return _copy\n    \n    def index(self, idx, fn=None):\n        parent = self\n        lidx = idx\n\n        try:\n            p = self\n            for x in idx:\n                if len(p) > 0:\n                    parent = p\n                    lidx = x\n                    p = p[x]\n                else:\n                    res = p.index(x, fn)\n                    if not fn:\n                        return res\n                    else:\n                        return self\n        except TypeError as e:\n            try:\n                p = self[idx]\n            except IndexError:\n                return self\n\n        if fn:\n            res = self._call_idx_fn(fn, lidx, p)\n            if res is not None:\n                parent[lidx] = res\n        else:\n            return parent[lidx]\n        return self\n    \n    def indices(self, idxs, fn=None):\n        out = []\n        for idx in idxs:\n            out.append(self.index(idx, fn))\n        if fn is None:\n            return out\n        return self\n    \n    def î(self, idx, fn=None):\n        return self.index(idx, fn)\n\n    def ï(self, idxs, fn=None):\n        return self.indices(idxs, fn)\n\n    def find(self,\n        finder_fn,\n        fn=None,\n        index=None,\n        find_one=False,\n        ):\n        matches = []\n        found_one = []\n\n        def finder(p, pos, data):\n            if len(found_one) > 0:\n                return\n            #if limit and len(matches) > limit:\n            #    return\n\n            found = False\n            if pos <= 0 and data[\"depth\"] > 0:\n                if isinstance(finder_fn, str):\n                    found = p.tag() == finder_fn\n                elif callable(finder_fn):\n                    found = finder_fn(p)\n                else:\n                    found = all(p.data(k) == v for k, v in finder_fn.items())\n            \n            if found:\n                matches.append([p, data[\"depth\"]])\n                if find_one:\n                    found_one.append(True)\n\n        self.walk(finder)\n\n        #matches = list(reversed(sorted(matches, key=lambda m: m.depth())))\n\n        matches = list([m[0] for m in sorted(matches, key=lambda m: m[1])])\n\n        narrowed = []\n        if index is not None:\n            for idx, match in enumerate(matches):\n                if isinstance(index, int):\n                    if idx == index:\n                        narrowed.append([idx, match])\n                else:\n                    if idx in index:\n                        narrowed.append([idx, match])\n        else:\n            for idx, match in enumerate(matches):\n                narrowed.append([idx, match])\n        \n        if fn:\n            for idx, match in narrowed:\n                self._call_idx_fn(fn, idx, match)\n\n        if fn:\n            return self\n        else:\n            return [m for (_, m) in narrowed]\n    \n    def find_(self, finder_fn=None, fn=None, index=0, none_ok=0, find_one=False, **kwargs):\n        if len(kwargs) > 0 and finder_fn is None:\n            finder_fn = kwargs\n\n        if isinstance(finder_fn, str):\n            if \"+\" in finder_fn:\n                finders = finder_fn.split(\"+\")\n                parts = []\n                for finder in finders:\n                    parts.append(self.find_(finder, none_ok=1))\n                return type(self)([p for p in parts if p])\n            elif \"/\" in finder_fn:\n                o = self\n                for k in finder_fn.split(\"/\"):\n                    if k == \"<\":\n                        o = self.parent()\n                        continue\n                    o = o.find_(k)\n                return o\n\n        res = self.find(finder_fn, fn, index=index, find_one=find_one)\n        if not fn:\n            try:\n                return res[0]\n            except IndexError:\n                if none_ok:\n                    return None\n                raise RunonSearchException(f\"Could not find `{finder_fn}`\")\n        else:\n            return self\n        \n    def replace(self, tag, replacement, limit=None):\n        if isinstance(tag, str):\n            def walker(p, pos, data):\n                if pos in [0, 1]:\n                    if p.tag() == tag:\n                        self.index(data[\"idx\"], replacement)\n            return self.walk(walker)\n        elif callable(tag):\n            def walker(p, pos, data):\n                if pos in [0, 1]:\n                    if tag(p):\n                        self.index(data[\"idx\"], replacement)\n            return self.walk(walker)\n        else:\n            raise Exception(\"not yet supported\")\n        \n    def swap(self, indices, replace_fn):\n        def _replace_fn(p):\n            pc = p.copy()\n            p.delete()\n            p.up()\n            p.append(replace_fn(pc))\n        \n        return self.index(indices, _replace_fn)\n    \n    def partition(self, fn):\n        last = None\n        group = type(self)()\n        out = type(self)()\n        for p in self:\n            v = fn(p)\n            if last == v:\n                group.append(p)\n            else:\n                if len(group) > 0:\n                    out.append(group)\n                    group = type(self)()\n                group.append(p)\n            last = v\n        out.append(group)\n        return out\n    \n    # Data-access methods\n\n    def data(self, key=None, default=None, function_literals=False, **kwargs):\n        \"\"\"Set with kwargs, read with key= & default=\"\"\"\n        if key is None and len(kwargs) > 0:\n            for k, v in kwargs.items():\n                if v == \"delete\":\n                    del self._data[k]\n                else:\n                    if not function_literals and callable(v):\n                        v = self._call_idx_fn(v, k, self)\n                    self._data[k] = v\n            return self\n        elif key is None and kwargs is not None:\n            return self\n        elif key is not None:\n            return self._data.get(key, default)\n        else:\n            return self._data\n    \n    def datafn(self, **kwargs):\n        \"\"\"Set function literals with kwargs\"\"\"\n        return self.data(function_literals=True, **kwargs)\n    \n    def tag(self, value=RunonNoData()):\n        if isinstance(value, RunonNoData):\n            return self._tag\n        else:\n            self._tag = value\n            return self\n    \n    def path(self, root=None):\n        tags = [self.tag()]\n        parent = self.parent(noexist_ok=True)\n        while parent and parent != root:\n            tags.insert(0, parent.tag())\n            parent = parent.parent(noexist_ok=True)\n        return \"/\".join([t for t in tags if t])\n\n    def style(self, style=\"_default\"):\n        if style and style in self._attrs:\n            return self._attrs[style]\n        else:\n            return self._attrs.get(\"_default\", {})\n    \n    def styles(self):\n        all = {}\n        for k, _ in self._attrs.items():\n            style = self.style(k)\n            if k == \"_default\":\n                all[\"default\"] = style\n            else:\n                all[k] = style\n        return all\n    \n    @property # deprecated / backwards-compatibility\n    def attrs(self):\n        return self.styles()\n    \n    def normalize_attr_value(self, k, v):\n        \"\"\"subclass hook\"\"\"\n        return v\n\n    def attr(self,\n        tag=None,\n        field=None,\n        recursive=True,\n        **kwargs\n        ):\n\n        if field is None and len(kwargs) == 0:\n            field = tag\n            tag = None\n\n        if tag is None:\n            if self._tmp_attr_tag is not None:\n                tag = self._tmp_attr_tag\n            else:\n                tag = \"_default\"\n        \n        if tag == \"default\":\n            tag = \"_default\"\n        \n        if field: # getting, not setting\n            return self._attrs.get(tag, {}).get(field)\n\n        attrs = self._attrs.get(tag, {})\n        for k, v in kwargs.items():\n            attrs[k] = self.normalize_attr_value(k, v)\n        \n        self._attrs[tag] = attrs\n\n        if recursive:\n            for el in self._els:\n                el.attr(tag=tag, field=None, recursive=True, **kwargs)\n        \n        return self\n    \n    def cast(self, _class, *args):\n        \"\"\"Quickly cast to a (different) subclass.\"\"\"\n        res = _class(self, *args)\n        res._attrs = deepcopy(self._attrs)\n        return res\n    \n    def lattr(self, tag, fn):\n        \"\"\"temporarily change default tag to something other than 'default'\"\"\"\n        self._tmp_attr_tag = tag\n        fn(self)\n        self._tmp_attr_tag = None\n        return self\n    \n    def _get_set_prop(self, prop, v, castfn=None):\n        if v is None:\n            return getattr(self, prop)\n\n        _v = v\n        if callable(v):\n            _v = v(self)\n        \n        if castfn is not None:\n            _v = castfn(_v)\n\n        setattr(self, prop, _v)\n        return self\n    \n    def visible(self, v=None):\n        return self._get_set_prop(\"_visible\", v, bool)\n    \n    def alpha(self, v=None):\n        return self._get_set_prop(\"_alpha\", v, float)\n    \n    def hide(self, *indices):\n        if len(indices) > 0:\n            for idx in indices:\n                self.index(idx, lambda p: p.visible(False))\n        else:\n            self.visible(False)\n        \n        if self.val_present():\n            self.visible(False)\n        \n        return self\n    \n    def __neg__(self):\n        return self.hide()\n    \n    # Logic Operations\n\n    def cond(self, condition,\n        if_true:Callable[[\"Runon\"], None], \n        if_false:Callable[[\"Runon\"], None]=None\n        ):\n        if callable(condition):\n            condition = condition(self)\n\n        if condition:\n            if callable(if_true):\n                if_true(self)\n            else:\n                #self.gs(if_true)\n                pass # TODO?\n        else:\n            if if_false is not None:\n                if callable(if_false):\n                    if_false(self)\n                else:\n                    #self.gs(if_false)\n                    pass # TODO?\n        return self\n    \n    def attempt(self, exception_class, try_fn, except_fn):\n        try:\n            try_fn(self)\n        except exception_class:\n            except_fn(self)\n    \n    # Chaining\n\n    def chain(self,\n        fn:Callable[[\"Runon\"], None],\n        *args\n        ):\n        \"\"\"\n        For simple take-one callback functions in a chain\n        \"\"\"\n        if fn:\n            if isinstance(fn, Chainable):\n                res = fn.func(self, *args)\n                if res:\n                    return res\n                return self\n            \n            try:\n                if isinstance(fn[0], Chainable):\n                    r = self\n                    for f in fn:\n                        r = r.chain(f, *args)\n                    return r\n            except TypeError:\n                pass\n\n            try:\n                fn, metadata = fn\n            except TypeError:\n                metadata = {}\n            \n            # So you can pass in a function\n            # without calling it (if it has no args)\n            # TODO what happens w/ no args but kwargs?\n            ac = _arg_count(fn)\n            if ac == 0:\n                fn = fn()\n\n            res = fn(self, *args)\n            if \"returns\" in metadata:\n                return res\n            elif isinstance(res, Runon):\n                return res\n            elif res:\n                return res\n        return self\n    \n    ch = chain\n\n    def __or__(self, other):\n        return self.chain(other)\n\n    def __ror__(self, other):\n        return self.chain(other)\n    \n    def __truediv__(self, other):\n        return self.mapv(other)\n    \n    def __sub__(self, other):\n        \"\"\"noop\"\"\"\n        return self\n\n    def up(self):\n        \"\"\"up one level of hierarchy\"\"\"\n        copy = self.copy()\n\n        self.reset_val()\n\n        self._els = [copy]\n        return self\n    \n    ups = up\n\n    def down(self):\n        \"\"\"down one level of hierarchy — unimplemented by Runon\"\"\"\n        return self\n    \n    def replicate(self, cells, mod=None):\n        return (type(self)().enumerate(cells, lambda x: self.copy().align(x.el).ch(partial(mod, x.el) if mod else None)))\n\n    def layer(self, *layers):\n        if len(layers) == 1 and isinstance(layers[0], int):\n            layers = [1]*layers[0]\n        \n        els = []\n\n        for layer in layers:\n            try:\n                c = layer[0]\n                for x in range(0, c):\n                    els.append(layer[1](x, self.copy()))\n            except TypeError:\n                if callable(layer):\n                    els.append(layer(self.copy()))\n                elif isinstance(layer, Chainable):\n                    els.append(layer.func(self.copy()))\n                else:\n                    els.append(self.copy())\n        \n        self.reset_val()\n        self._els = els\n        return self\n\n    def layerv(self, *layers):\n        if self.val_present():\n            if len(layers) == 1 and isinstance(layers[0], int):\n                layers = [1]*layers[0]\n            \n            els = []\n            for layer in layers:\n                if callable(layer):\n                    els.append(layer(self.copy()))\n                elif isinstance(layer, Chainable):\n                    els.append(layer.func(self.copy()))\n                else:\n                    els.append(self.copy())\n            \n            self.reset_val()\n            self.extend(els)\n        else:\n            for el in self._els:\n                el.layerv(*layers)\n        \n        return self\n    \n    def overwrite(self, fn):\n        self.layer(fn)\n        return self[0]\n    \n    # Utils\n\n    def declare(self, *whatever):\n        # TODO do something with what's declared somehow?\n        return self\n\n    def print(self, *args, **kwargs):\n        if len(args) == 0:\n            print(self.tree(**kwargs))\n            return self\n\n        out = []\n        for a in args:\n            if callable(a):\n                out.append(str(a(self)))\n            else:\n                out.append(str(a))\n        print(\" \".join(out))\n        return self\n    \n    def pprint(self, *args):\n        if len(args) == 0:\n            print(self.tree())\n            return self\n        \n        from pprint import pprint\n        for a in args:\n            if callable(a):\n                pprint(a(self))\n            else:\n                pprint(a)\n        return self\n    \n    def printh(self):\n        \"\"\"print hierarchy, no values\"\"\"\n        print(self.tree(v=False))\n        return self\n    \n    def printdata(self, field):\n        print(self.data(field))\n        return self\n    \n    def noop(self, *args, **kwargs):\n        \"\"\"Does nothing\"\"\"\n        return self\n    \n    def null(self):\n        \"\"\"For chaining; return an empty instead of this pen\"\"\"\n        self.reset_val()\n        self._els = []\n        return self\n    \n    def sleep(self, time):\n        \"\"\"Sleep call within the chain (if you want to measure something)\"\"\"\n        sleep(time)\n        return self\n    \n    # Aliases\n\n    pmap = mapv"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/runon/scaffold.py",
    "content": "from coldtype.runon import Runon\nfrom coldtype.geometry import Rect\nfrom coldtype.grid import Grid\nfrom coldtype.color import hsl, bw\nfrom coldtype.random import random_series\nfrom collections import defaultdict\n\nimport re\n\n_view_rs1 = None\n\nclass Scaffold(Runon):\n    @staticmethod\n    def AspectGrid(r:Rect, x:int, y:int, align:str=\"C\"):\n        s = Scaffold(r.fit_aspect(x, y, align))\n        return s.numeric_grid(x, y)\n\n    def __init__(self, *val, warn_float=True):\n        self.warn_float = warn_float\n        \n        super().__init__(*val)\n    \n    def find_(self, finder_fn=None, fn=None, index=0, none_ok=0, find_one=False, **kwargs):\n        if isinstance(finder_fn, str):\n            def to_xy(xy):\n                return [int(n) for n in xy.split(\"|\")]\n            \n            def wrap(xy):\n                x, y = to_xy(xy)\n                w = len(self.cols())\n                h = len(self.rows())\n                if x < 0:\n                    x = w + x\n                if y < 0:\n                    y = h + y\n                return f\"{x}|{y}\"\n            \n            if \"*\" in finder_fn:\n                start, extend = finder_fn.split(\"*\")\n                start = wrap(start)\n                start = to_xy(start)\n                extend = to_xy(extend)\n                x, y = start\n                ex, ey = extend\n                end = [x+(ex-1), y+(ey-1)]\n                \n                if ex == 0: end[0] = start[0]\n                elif ex < 0: end[0] = x+(ex+1)\n                \n                if ey == 0: end[1] = start[1]\n                elif ey < 0: end[1] = y+(ey+1)\n                \n                finder_fn = f\"{start[0]}|{start[1]}+{end[0]}|{end[1]}\"\n            \n            elif \"-\" in finder_fn:\n                finder_fn = wrap(finder_fn)\n        \n        return super().find_(finder_fn=finder_fn, fn=fn, index=index, none_ok=none_ok, find_one=find_one, **kwargs)\n\n    def sum(self):\n        if self.val_present():\n            return self._val\n        \n        r = None\n        for el in self._els:\n            if r:\n                rr = el.rect\n                if rr.nonzero():\n                    r = r.union(rr)\n            else:\n                rr = el.rect\n                if rr.nonzero():\n                    r = rr\n        if r is not None:\n            return r\n        else:\n            return Rect(0,0,0,0)\n\n    @property\n    def rect(self) -> Rect:\n        return self.sum()\n    \n    r = rect\n\n    def _extend_with_tags(self, rects, tags):\n        for idx, r in enumerate(rects):\n            el = Scaffold(r, warn_float=self.warn_float)\n            try:\n                el.tag(tags[idx])\n            except IndexError:\n                pass\n            self.append(el)\n\n    def divide(self, amt, edge, tags=[], forcePixel=False):\n        if self.val_present():\n            self._extend_with_tags(\n                self.r.divide(amt, edge, forcePixel), tags)\n            self._val = None\n        else:\n            for el in self._els:\n                el.divide(amt, edge, tags=tags, forcePixel=forcePixel)\n        return self\n    \n    def subdivide(self, amt, edge, tags=[]):\n        if self.val_present():\n            self._extend_with_tags(\n                self.r.subdivide(amt, edge), tags)\n            self._val = None\n        else:\n            for el in self._els:\n                el.subdivide(amt, edge, tags)\n        return self\n    \n    def annotate_rings(self):\n        grid_data = self.data(\"grid\")\n        columns = grid_data.get(\"columns\")\n        rows = grid_data.get(\"rows\")\n\n        def rectangular_rings(xs, ys):\n            center_x, center_y = xs // 2, ys // 2\n            max_radius = max(center_x, center_y)\n            rings = []\n\n            for r in range(max_radius + 1):\n                ring = [\n                    self[f\"{x}|{y}\"].data(ring=r, ring_e=r/max_radius)\n                    for x in range(center_x - r, center_x + r + 1)\n                    for y in range(center_y - r, center_y + r + 1)\n                    if (\n                        (x == center_x - r or x == center_x + r or y == center_y - r or y == center_y + r)\n                        and 0 <= x < xs and 0 <= y < ys)]\n                if ring:\n                    rings.append(ring)\n            return rings\n\n        return rectangular_rings(columns, rows)\n    \n    def numeric_grid(self, columns=2, rows=None, gap=None, column_gap=0, row_gap=0, start_1=False, start_bottom=True, annotate_rings=False\n        ):\n        if rows is None:\n            rows = columns\n        if gap is not None:\n            column_gap = gap\n            row_gap = gap\n        \n        self.data(grid=dict(columns=columns, rows=rows))\n\n        names = []\n\n        if column_gap == 0 and row_gap == 0:\n            for ridx, row in enumerate(range(0, rows)):\n                row_names = []\n                for cidx, col in enumerate(range(0, columns)):\n                    row_names.append(f\"{cidx}|{ridx}\")\n                names.append(\" \".join(row_names))\n            \n            if start_bottom:\n                names = list(reversed(names))\n            \n            self.cssgrid((\"a \" * columns).strip(), (\"a \" * rows).strip(), \" / \".join(names))\n        else:\n            _cols = []\n            _rows = []\n            for ridx, row in enumerate(range(0, rows)):\n                _rows.append(\"a\")\n                _cols = []\n                row_names = []\n                for cidx, col in enumerate(range(0, columns)):\n                    _cols.append(\"a\")\n                    row_names.append(f\"{cidx}|{ridx}\")\n                    if cidx != columns-1:\n                        _cols.append(str(column_gap))\n                        row_names.append(f\"cg.{cidx}|{ridx}\")\n                \n                names.append(\" \".join(row_names))\n                if ridx != rows-1:\n                    _rows.append(str(row_gap))\n                    row_names = []\n                    for cidx, col in enumerate(range(0, columns)):\n                        row_names.append(f\"rg.{cidx}|{ridx}\")\n                        if cidx != columns-1:\n                            row_names.append(f\"rcg.{cidx}|{ridx}\")\n                    names.append(\" \".join(row_names))\n\n            if start_bottom:\n                names = list(reversed(names))\n            \n            self.cssgrid(\" \".join(_cols).strip(), \" \".join(_rows), \" / \".join(names), forcePixel=True)\n\n        if not hasattr(self, \"_borders\"):\n            self._borders = []\n        \n        first_row = names[0].split(\" \")\n        last_row = names[-1].split(\" \")\n\n        for cidx, _ in enumerate(first_row[:-1]):\n            self._borders.append([self[first_row[cidx]].pne, self[last_row[cidx]].pse])\n        \n        for ridx, row in enumerate(names[:-1]):\n            rs = row.split(\" \")\n            self._borders.append([self[rs[0]].psw, self[rs[-1]].pse])\n        \n        for cell in self:\n            tag = cell.tag()\n            if \".\" not in tag:\n                c, r = [int(x) for x in cell.tag().split(\"|\")]\n                ch = not((not r%2 and not c%2) or (r%2 and c%2))\n                if start_1:\n                    r += 1\n                    c += 1\n                \n                cell.data(row=r, col=c, checker=ch)\n            \n        if annotate_rings:\n            self.annotate_rings()\n        \n        return self\n    \n    def labeled_grid(self, columns=2, rows=2, column_gap=0, row_gap=0, start_1=False, start_bottom=False):\n        from string import ascii_lowercase\n        possible_names = [a for a in ascii_lowercase]\n        possible_names.extend([f\"{a}{a}\" for a in ascii_lowercase])\n        possible_names.extend([f\"{a}{a}{a}\" for a in ascii_lowercase])\n\n        if start_1:\n            inc = 1\n        else:\n            inc = 0\n\n        names = []\n\n        if column_gap == 0 and row_gap == 0:\n            for ridx, row in enumerate(range(0, rows)):\n                row_names = []\n                for cidx, col in enumerate(range(0, columns)):\n                    row_names.append(f\"{possible_names[ridx]}{cidx+inc}\")\n                names.append(\" \".join(row_names))\n            \n            if start_bottom:\n                names = list(reversed(names))\n            \n            self.cssgrid((\"a \" * columns).strip(), (\"a \" * rows).strip(), \" / \".join(names))\n        else:\n            _cols = []\n            _rows = []\n            for ridx, row in enumerate(range(0, rows)):\n                _rows.append(\"a\")\n                _cols = []\n                row_names = []\n                for cidx, col in enumerate(range(0, columns)):\n                    _cols.append(\"a\")\n                    row_names.append(f\"{ascii_lowercase[ridx]}{cidx+inc}\")\n                    if cidx != columns-1:\n                        _cols.append(str(column_gap))\n                        row_names.append(f\"cg.{ascii_lowercase[ridx]}{cidx+inc}\")\n                \n                names.append(\" \".join(row_names))\n                if ridx != rows-1:\n                    _rows.append(str(row_gap))\n                    row_names = []\n                    for cidx, col in enumerate(range(0, columns)):\n                        row_names.append(f\"rg.{ascii_lowercase[ridx]}{cidx+inc}\")\n                        if cidx != columns-1:\n                            row_names.append(f\"rcg.{ascii_lowercase[ridx]}{cidx+inc}\")\n                    names.append(\" \".join(row_names))\n\n            if start_bottom:\n                names = list(reversed(names))\n            \n            self.cssgrid(\" \".join(_cols).strip(), \" \".join(_rows), \" / \".join(names))\n\n        if not hasattr(self, \"_borders\"):\n            self._borders = []\n        \n        first_row = names[0].split(\" \")\n        last_row = names[-1].split(\" \")\n\n        for cidx, _ in enumerate(first_row[:-1]):\n            self._borders.append([self[first_row[cidx]].pne, self[last_row[cidx]].pse])\n        \n        for ridx, row in enumerate(names[:-1]):\n            rs = row.split(\" \")\n            self._borders.append([self[rs[0]].psw, self[rs[-1]].pse])\n        \n        for cell in self:\n            tag = cell.tag()\n            if \".\" not in tag:\n                _r = re.search(r\"[a-z]{1,3}\", cell.tag())[0]\n                _c = re.search(r\"[0-9]{1,3}\", cell.tag())[0]\n                #_r, _c = list(cell.tag())\n                r = possible_names.index(_r)\n                c = int(_c)\n                ch = not((not r%2 and not c%2) or (r%2 and c%2))\n                if start_1:\n                    r += 1\n                    c += 1\n                \n                cell.data(row=r, col=c, checker=ch)\n        \n        return self\n    \n    def cells(self):\n        return self.copy().filter(lambda x: \".\" not in x.tag())\n    \n    def gaps(self):\n        return self.copy().filter(lambda x: \".\" in x.tag())\n    \n    def rows(self):\n        rows = defaultdict(list)\n        for cell in self:\n            row = cell.data(\"row\")\n            if row is not None:\n                rows[row].append(cell.copy())\n        return list(rows.values())\n\n    def cols(self):\n        cols = defaultdict(list)\n        for cell in self:\n            col = cell.data(\"col\")\n            if col is not None:\n                cols[col].append(cell.copy())\n        return list(cols.values())\n    \n    def grid(self, columns=2, rows=None, tags=[]):\n        if rows is None:\n            rows = columns\n\n        if self.val_present():\n            self._extend_with_tags(\n                self.r.grid(columns, rows), tags)\n            \n            if not hasattr(self, \"_borders\"):\n                self._borders = []\n            \n            for _x in range(0, columns-1):\n                self._borders.append([\n                    self[_x].ee.pn,\n                    self[_x].ee.intersection(self.r.es)])\n            \n            for _y in range(0, rows-1):\n                self._borders.append([\n                    self[_y*columns].psw,\n                    self[_y*columns].es.intersection(self.r.ee)])\n            \n            self._val = None\n        else:\n            for el in self._els:\n                el.grid(columns, rows, tags)\n        return self\n    \n    def cssgridmod(self, mods, **kwargs):\n        for k, v in mods.items():\n            for m in self.match(k):\n                m.cssgrid(*v)\n\n        for k, v in kwargs.items():\n            self[k].cssgrid(*v)\n        \n        return self\n    \n    def cssgrid(self, cols, rows, ascii, mods={}, forcePixel=False, **kwargs):\n        if self.val_present():\n            if not hasattr(self, \"_borders\"):\n                self._borders = []\n\n            r = self.r\n\n            if callable(cols):\n                cols = cols(self)\n            if callable(rows):\n                rows = rows(self)\n\n            g = Grid(self.r, cols, rows, ascii, warn_float=self.warn_float, forcePixel=forcePixel)\n            for k, v in g.keyed.items():\n                if v.w > r.w or v.h > r.h or v.x < 0 or v.y < 0 or v.w < 0 or v.h < 0:\n                    v = Rect(0, 0, 0, 0)\n                self.append(Scaffold(v, warn_float=self.warn_float).tag(k))\n            \n            self._val = None\n            self._borders.extend(g.borders)\n        \n        self.cssgridmod(mods, **kwargs)\n        \n        return self\n    \n    def borders(self):\n        if hasattr(self, \"_borders\"):\n            from coldtype.runon.path import P\n            return (P().enumerate(self._borders, lambda x: P().line(x.el).fssw(-1, 0, 1)))\n    \n    def cssborders(self, regular=None, bold=None):\n        if hasattr(self, \"_borders\"):\n            from coldtype.runon.path import P\n            out = P()\n            for b in sorted(self._borders, key=lambda b: b[2]):\n                if regular == -1 and not b[2]:\n                    continue\n                elif bold == -1 and b[2]:\n                    continue\n                \n                out.append(P()\n                    .line(b[0].edge(b[1]))\n                    .fssw(-1, 0, 4 if b[2] else 2)\n                    .ch(bold if b[2] else regular))\n            return out\n    \n    def sort(self, attr=\"x\", reverse=False):\n        if self.depth() == 1:\n            self._els = sorted(self._els, key=lambda el: getattr(el.r, attr), reverse=reverse)\n        return self\n    \n    def view(self, fontSize=22, fill=False, stroke=True, vectors=False):\n        global _view_rs1\n        if _view_rs1 is None:\n            _view_rs1 = random_series()\n\n        from coldtype.runon.path import P\n        from coldtype.text import Style, StSt, Font\n\n        out = P()\n        ridx = 0\n\n        def walker(el, pos, data):\n            nonlocal ridx\n            if pos == 0:\n                out.append(P(\n                    P(el.r).f(hsl(_view_rs1[ridx], 1)).alpha(0.1) if fill else None,\n                    P(el.r.inset(0)).fssw(-1, bw(0, 0.2), 1) if stroke else None,\n                    P().text(el.tag() or (\"u:\" + data[\"utag\"])\n                        , Style(\"Monaco\", fontSize, load_font=0, fill=bw(0, 0.5))\n                        , el.r.inset(7, 10)) if not vectors else\n                            StSt(el.tag(), Font.JBMono(), fontSize)\n                                .scaleToRect(el.r, shrink_only=True)\n                                .align(el.r.inset(2), \"SW\")))\n                ridx += 1\n        \n        self.postwalk(walker)\n        return out\n    \n    # @property\n    # def ne(self): return self.r.pne\n    # @property\n    # def nw(self): return self.r.pnw\n    # @property\n    # def sw(self): return self.r.psw\n    # @property\n    # def se(self): return self.r.pse\n    # @property\n    # def n(self): return self.r.pn\n    # @property\n    # def s(self): return self.r.ps\n    # @property\n    # def e(self): return self.r.pe\n    # @property\n    # def w(self): return self.r.pw\n\n    @property\n    def pne(self): return self.r.pne\n    @property\n    def pnw(self): return self.r.pnw\n    @property\n    def psw(self): return self.r.psw\n    @property\n    def pse(self): return self.r.pse\n    @property\n    def pn(self): return self.r.pn\n    @property\n    def ps(self): return self.r.ps\n    @property\n    def pe(self): return self.r.pe\n    @property\n    def pw(self): return self.r.pw\n    @property\n    def pc(self): return self.r.pc\n    \n    @property\n    def en(self): return self.r.en\n    @property\n    def es(self): return self.r.es\n    @property\n    def ee(self): return self.r.ee\n    @property\n    def ew(self): return self.r.ew\n\n    def joinp(self, regex):\n        from coldtype.runon.path import P\n        return P().enumerate(self.match(regex), lambda x: P(x.el.r))\n    \n    def scale(self, scale):\n        def walker(el, pos, _):\n            if pos == 0:\n                el._val = el._val.scale(scale, scale)\n        \n        self.walk(walker)\n        return self"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/skiashim.py",
    "content": "try:\n    import skia\n    SKIA_87 = int(skia.__version__.split(\".\")[0]) <= 87\nexcept ImportError:\n    skia = None\n    SKIA_87 = False\n\ndef image_makeShader(image, matrix):\n    if SKIA_87:\n        return image.makeShader(skia.TileMode.kRepeat, skia.TileMode.kRepeat, matrix)\n    else:\n        return image.makeShader(skia.TileMode.kRepeat, skia.TileMode.kRepeat, skia.SamplingOptions(), matrix)\n\n\ndef canvas_drawImage(canvas, image, x, y, paint=None):\n    if SKIA_87:\n        canvas.drawImage(image, x, y, paint)\n    else:\n        so = skia.SamplingOptions()\n        #so = skia.SamplingOptions(skia.FilterMode.kLinear, skia.MipmapMode.kLinear)\n        so = skia.SamplingOptions(skia.CubicResampler.CatmullRom())\n        #so = skia.SamplingOptions(skia.CubicResampler.Mitchell())\n        canvas.drawImage(image, x, y, so, paint)\n\n\ndef imageFilters_Blur(xblur, yblur):\n    if SKIA_87:\n        return skia.BlurImageFilter.Make(xblur, yblur)\n    else:\n        return skia.ImageFilters.Blur(xblur, yblur)\n\n\ndef paint_withFilterQualityHigh():\n    if SKIA_87:\n        return skia.Paint(AntiAlias=True, FilterQuality=skia.FilterQuality.kHigh_FilterQuality)\n    else:\n        #SamplingOptions=skia.SamplingOptions(skia.CubicResampler.Mitchell())\n        return skia.Paint(AntiAlias=True)\n    \n\ndef image_resize(img, width, height):\n    if SKIA_87:\n        return img.resize(width, height)\n    else:\n        so = skia.SamplingOptions(skia.CubicResampler.CatmullRom())\n        #so = skia.SamplingOptions()\n        return img.resize(width, height, so)\n\n\ndef make_improved_noise(e, xo, yo, xs, ys, x, y, scale, base):\n    if SKIA_87:\n        noise = skia.PerlinNoiseShader.MakeImprovedNoise(x, y, scale, base)\n    else:\n        noise = skia.PerlinNoiseShader.MakeTurbulence(x, y, scale, base)\n    matrix = skia.Matrix()\n    matrix.setTranslate(e*xo, e*yo)\n    #matrix.setRotate(45, 0, 0)\n    matrix.setScaleX(xs)\n    matrix.setScaleY(ys)\n    return noise.makeWithLocalMatrix(matrix)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/test.py",
    "content": "import pytest\nfrom coldtype import *\nfrom functools import partial\nfrom random import Random\nfrom pprint import pprint\n\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\nmutator = Font.Cacheable(\"assets/MutatorSans.ttf\")\nrecmono = Font.Cacheable(\"assets/RecMono-CasualItalic.ttf\")\n\nStyle.RegisterShorthandPrefix(\"≈\", \"~/Type/fonts/fonts\")\n\n\ndef add_grid(render, result):\n    return P([\n        P(result),\n        P().gridlines(render.rect).s(0, 0.1).sw(1).f(None)\n    ])\n\n\ndef show_error(r, txt):\n    return StyledString(txt.upper(), Style(mutator, 100)).pen().align(r)\n\n\nclass test(renderable):\n    def __init__(self, rect=(800, 200), bg=hsl(0.17, 0.8, 0.7, 0.2), post_preview=add_grid, **kwargs):\n        if isinstance(rect, int):\n            rect = (800, rect)\n        \n        super().__init__(rect=rect, bg=bg, post_preview=post_preview, **kwargs)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/__init__.py",
    "content": "from coldtype.geometry.rect import Rect\nfrom coldtype.text.reader import Style, StyledString, SegmentedString, normalize_font_path, Font, FontNotFoundException\nfrom coldtype.text.composer import Slug, Lockup, Graf, GrafStyle, T2L, Composer, StSt, Glyphwise, Glyphwise2, GlyphwiseGlyph\n#from coldtype.text.richtext import RichText"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/colr/brsurface.py",
    "content": "from contextlib import contextmanager\nfrom fontTools.misc.arrayTools import calcBounds\nfrom fontTools.misc.transform import Identity\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom fontTools.pens.transformPen import TransformPen\nfrom blackrenderer.backends.base import Canvas, Surface\n\nclass BRPathCollectorRecordingPen(RecordingPen):\n    def annotate(self, method, data):\n        self.method = method\n        self.data = data\n    \n    def __repr__(self):\n        return f\"PathCollectorRecordingPen({self.method}{list(self.data.keys())})\"\n\n\nclass BRPathCollectorCanvas(Canvas):\n    def __init__(self):\n        self.init()\n\n    def init(self):\n        self.paths = []\n        self.currentTransform = Identity\n\n    def _addPath(self, path, method, data):\n        if self.currentTransform != Identity:\n            path = transformPath(path, self.currentTransform)\n        path.annotate(method, data)\n        self.paths.append(path)\n\n    def newPath(self):\n        return BRPathCollectorRecordingPen()\n\n    @contextmanager\n    def savedState(self):\n        savedTransform = self.currentTransform\n        yield\n        self.currentTransform = savedTransform\n\n    @contextmanager\n    def compositeMode(self, compositeMode):\n        yield\n\n    def transform(self, transform):\n        self.currentTransform = self.currentTransform.transform(transform)\n\n    def clipPath(self, path):\n        self._addPath(path, \"clipPath\", dict())\n\n    def drawPathSolid(self, path, color):\n        self._addPath(path, \"drawPathSolid\", dict(color=color))\n\n    def drawPathLinearGradient(\n        self, path, colorLine, pt1, pt2, extendMode, gradientTransform\n    ):\n        self._addPath(path, \"drawPathLinearGradient\", dict(\n            colorLine=colorLine,\n            pt1=pt1,\n            pt2=pt2,\n            extendMode=extendMode,\n            gradientTransform=gradientTransform,\n        ))\n\n    def drawPathRadialGradient(\n        self,\n        path,\n        colorLine,\n        startCenter,\n        startRadius,\n        endCenter,\n        endRadius,\n        extendMode,\n        gradientTransform,\n    ):\n        self._addPath(path, \"drawPathRadialGradient\", dict(\n            colorLine=colorLine,\n            startCenter=startCenter,\n            startRadius=startRadius,\n            endCenter=endCenter,\n            endRadius=endRadius,\n            extendMode=extendMode,\n            gradientTransform=gradientTransform,\n        ))\n\n    def drawPathSweepGradient(\n        self,\n        path,\n        colorLine,\n        center,\n        startAngle,\n        endAngle,\n        extendMode,\n        gradientTransform,\n    ):\n        self._addPath(path, \"drawPathSweepGradient\", dict(\n            colorLine=colorLine,\n            center=center,\n            startAngle=startAngle,\n            endAngle=endAngle,\n            extendMode=extendMode,\n            gradientTransform=gradientTransform,\n        ))\n\n\nclass BRPathCollectorSurface(Surface):\n    fileExtension = None\n\n    def __init__(self):\n        self.paths = None\n        pass\n\n    @contextmanager\n    def canvas(self, boundingBox):\n        canvas = BRPathCollectorCanvas()\n        yield canvas\n        self.paths = canvas.paths\n\n    def saveImage(self, path):\n        raise Exception(\"PathCollectorSurface cannot be saved\")\n\n\ndef transformPath(path, transform):\n    transformedPath = RecordingPen()\n    tpen = TransformPen(transformedPath, transform)\n    path.replay(tpen)\n    # to keep the path ref the same\n    path.value = transformedPath.value\n    return path\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/colr/skia.py",
    "content": "import skia\nfrom blackrenderer.backends.skia import _unpackColorLine, _extendModeMap\n\nclass SkiaShaders():\n    @staticmethod\n    def drawPathLinearGradient(colorLine, pt1, pt2, extendMode, gradientTransform) -> skia.GradientShader:\n        matrix = skia.Matrix()\n        matrix.setAffine(gradientTransform)\n        colors, stops = _unpackColorLine(colorLine)\n        return skia.GradientShader.MakeLinear(\n            points=[pt1, pt2],\n            colors=colors,\n            positions=stops,\n            mode=_extendModeMap[extendMode],\n            localMatrix=matrix,\n        )\n    \n    @staticmethod\n    def drawPathSweepGradient(\n        colorLine,\n        center,\n        startAngle,\n        endAngle,\n        extendMode,\n        gradientTransform,\n    ):\n        # The following is needed to please the Skia shader, but it's a bit fuzzy\n        # to me how this affects the spec. Translated from:\n        # https://source.chromium.org/chromium/chromium/src/+/master:third_party/skia/src/ports/SkFontHost_FreeType_common.cpp;l=673-686\n        startAngle %= 360\n        endAngle %= 360\n        if startAngle >= endAngle:\n            endAngle += 360\n        matrix = skia.Matrix()\n        matrix.setAffine(gradientTransform)\n        colors, stops = _unpackColorLine(colorLine)\n        return skia.GradientShader.MakeSweep(\n            cx=center[0],\n            cy=center[1],\n            colors=colors,\n            positions=stops,\n            mode=_extendModeMap[extendMode],\n            startAngle=startAngle,\n            endAngle=endAngle,\n            localMatrix=matrix,\n        )\n    \n    @staticmethod\n    def drawPathRadialGradient(\n        colorLine,\n        startCenter,\n        startRadius,\n        endCenter,\n        endRadius,\n        extendMode,\n        gradientTransform,\n    ):\n        matrix = skia.Matrix()\n        matrix.setAffine(gradientTransform)\n        colors, stops = _unpackColorLine(colorLine)\n        return skia.GradientShader.MakeTwoPointConical(\n            start=startCenter,\n            startRadius=startRadius,\n            end=endCenter,\n            endRadius=endRadius,\n            colors=colors,\n            positions=stops,\n            mode=_extendModeMap[extendMode],\n            localMatrix=matrix,\n        )"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/composer.py",
    "content": "from coldtype.runon.path import P\nfrom coldtype.geometry import Rect, Point\n\nfrom coldtype.text.shaper import segment\nfrom coldtype.text.reader import Style, StyledString, FittableMixin, Font, SegmentedString\n\nfrom collections import namedtuple\nfrom typing import Callable, Any\n\n\nclass GrafStyle():\n    def __init__(self, leading=10, x=\"centerx\", xp=0, width=0, **kwargs):\n        self.leading = kwargs.get(\"l\", leading)\n        self.x = x\n        self.xp = xp\n        self.width = width\n\n\nclass Graf():\n    def __init__(self, lines, container, style=None, no_frames=False, **kwargs):\n        if isinstance(container, Rect):\n            self.container = P().rect(container)\n        else:\n            self.container = container\n        if style and isinstance(style, GrafStyle):\n            self.style = style\n        elif style and isinstance(style, int):\n            self.style = GrafStyle(leading=style)\n        else:\n            self.style = GrafStyle(**kwargs)\n        \n        self.no_frames = no_frames\n        self.lines = lines\n    \n    def lineRects(self):\n        # which came first, the height or the width???\n        rects = []\n        leadings = []\n        box = self.container.ambit()\n        leftover = box\n        for l in self.lines:\n            box, leftover = leftover.divide(l.height(), \"maxy\", forcePixel=True)\n            if self.style.leading < 0:\n                # need to add pixels back to leftover\n                leftover.h += abs(self.style.leading)\n            else:\n                leading, leftover = leftover.divide(self.style.leading, \"maxy\", forcePixel=True)\n                leadings.append(leading)\n            rects.append(box)\n        return rects\n    \n    def width(self):\n        if self.style.width > 0:\n            return self.style.width\n        else:\n            return max([l.width() for l in self.lines])\n\n    def fit(self, width=None):\n        rects = self.lineRects()\n        for idx, l in enumerate(self.lines):\n            if width:\n                fw = width\n            else:\n                fw = rects[idx].w - self.style.xp\n            l.fit(fw)\n        return self\n    \n    def pens(self):\n        rects = self.lineRects()\n        pens = P()\n        for idx, l in enumerate(self.lines):\n            r = rects[idx]\n            dps = l.pens().translate(r.x, r.y) # r.x\n            if not self.no_frames:\n                dps.data(frame=Rect(r.x, r.y, r.w, r.h))\n            pens.append(dps)\n        return pens\n\n\nclass Lockup(FittableMixin):\n    def __init__(self, slugs, preserveLetters=True, nestSlugs=True):\n        self.slugs = slugs\n        self.preserveLetters = preserveLetters\n        self.nestSlugs = nestSlugs\n    \n    def __repr__(self):\n        return f\"<Lockup:{self.slugs}>\"\n    \n    def width(self):\n        return sum([s.width() for s in self.slugs])\n    \n    def height(self):\n        return max([s.height() for s in self.slugs])\n    \n    def textContent(self):\n        return \"/\".join([s.textContent() for s in self.slugs])\n\n    def shrink(self):\n        adjusted = False\n        for s in self.slugs:\n            adjusted = s.shrink() or adjusted\n        return adjusted\n\n    def pens(self):\n        pens = []\n        x_off = 0\n        for s in self.slugs:\n            try:\n                x_off += s.margin[0]\n            except:\n                pass\n            if self.preserveLetters:\n                dps = s.pens()\n                dps.translate(x_off, 0)\n                if self.nestSlugs:\n                    pens.append(dps)\n                else:\n                    pens.extend(dps._els)\n            else:\n                dps = s.pen()\n                dps.translate(x_off, 0)\n                pens.append(dps)\n            x_off += dps.ambit(tx=0).w\n            try:\n                x_off += s.margin[1]\n                x_off += s.strings[-1].tracking\n            except:\n                pass\n        return P(pens)\n    \n    def pen(self):\n        return self.pens().pen()\n    \n    def TextToLines(text, primary, fallback=None):\n        lines = []\n        for line in text.split(\"\\n\"):\n            lines.append(Lockup([Slug(line, primary, fallback)]))\n        return lines\n    \n    def SlugsToLines(slugs):\n        return [Lockup([slug]) for slug in slugs]\n\n\ndef T2L(text, primary, fallback=None):\n    return Lockup.TextToLines(text, primary, fallback)\n\n\nclass Slug(SegmentedString):\n    def __init__(self, text, primary, fallback=None, print_segments=False):\n        self.text = text\n        self.primary = primary\n        self.fallback = fallback\n        self.strings = []\n        self.print_segments = print_segments\n        self.tag()\n    \n    def tag(self):\n        if self.fallback:\n            segments = segment(self.text, \"LATIN\", print_characters=self.print_segments)\n            if self.print_segments:\n                print(\">>>\", segments)\n            self.strings = [StyledString(s[1], self.fallback if \"LATIN\" in s[0] else self.primary) for s in segments]\n        else:\n            self.strings = [StyledString(self.text, self.primary)]\n    \n    def pen(self):\n        return self.pens().pen()\n    \n    def LineSlugs(text, primary, fallback=None):\n        lines = []\n        for line in text.split(\"\\n\"):\n            lines.append(Slug(line, primary, fallback))\n        return lines\n\n\nclass Composer():\n    \"\"\"\n    For multiline text lockups\n    \"\"\"\n    def __init__(self, rect:Rect, text:str, style:Style, leading=10, fit=None):\n        lockups = Slug.LineSlugs(text, style)\n        self.rect = rect\n        self.graf = Graf(lockups, self.rect, leading=leading)\n        if fit is not None:\n            self.graf.fit(fit)\n    \n    def pens(self):\n        \"\"\"\n        Structured representation of the multi-line text\n        \n        In the result, each line will be a `P`, then within those lines, each glyph/ligature for that line will be an individual `P`\n        \"\"\"\n        return self.graf.pens()\n    \n    def pen(self):\n        \"\"\"\n        Entire multiline text as a single vector\n        \"\"\"\n        return self.graf.pens().pen()\n\n\ndef StSt(text,\n    font,\n    font_size=24,\n    rect=Rect(1080, 1080),\n    strip=False,\n    multiline=False,\n    lead=True,\n    #xa=\"mdx\",\n    **kwargs) -> P:\n    \"\"\"Set a line of text with a single Style object,\n    passed either with it’s constituent parts (i.e. kwargs)\n    or as an actual `Style` object.\n\n    #### Examples:\n    \n    ```python\n    @renderable()\n    def stst_1(r):\n        # here the styling arguments are \"flat\"\n        return (StSt(\"COLDTYPE\", Font.ColdObvi(), 100, wdth=0)\n            .align(r))\n    ```\n    \n    ```python\n    @renderable()\n    def stst_2(r):\n        # here the styling arguments are encapsulated in the Style object\n        return (StSt(\"COLDTYPE\", Style(Font.ColdObvi(), 100, wdth=1))\n            .align(r))\n    ```\n    \"\"\"\n\n    if not isinstance(text, str):\n        text = \"\\n\".join(text)\n    else:\n        if strip:\n            text = text.strip()\n    \n    styles = []\n\n    if isinstance(font, Style):\n        style = font\n    elif isinstance(font, dict):\n        style = Style(**{**font, **kwargs})\n    elif isinstance(font, list) and isinstance(font[0], Style):\n       style = font[0]\n       styles = font\n    else:\n        style = Style(font, font_size, **kwargs)\n    \n    fit = kwargs.get(\"fit\", None)\n    leading = kwargs.get(\"leading\", 10)\n\n    if \"\\n\" in text:\n        lines = P()\n        for idx, l in enumerate(text.split(\"\\n\")):\n            if styles:\n                _style = styles[idx]\n            else:\n                _style = style\n            lines.append(StSt(l, _style, rect=rect, strip=strip, **{**kwargs, **dict(multline=False)}))\n        \n        if not lead:\n            return lines\n        else:\n            return lines.stack(leading)\n    else:\n        if style.fallback:\n            lockup = Slug(text, style, style.fallback)\n            if fit:\n                lockup.fit(fit)\n            lockup = lockup.pens(flat=False)\n        else:\n            lockup = StyledString(text, style)\n            if fit:\n                lockup.fit(fit)\n            lockup = lockup.pens()\n        \n        if multiline:\n            return P([lockup])\n\n        #lockup._stst_style = style\n        return lockup\n\nfrom dataclasses import dataclass\n\n@dataclass\nclass GlyphwiseGlyph():\n    i: int\n    c: str\n    e: float\n    l: int\n    li: int\n\n\ndef Glyphwise2(txt:str, styler\n    , multiline=False\n    , tx=0\n    , ty=0\n    , start=0\n    , line=0) -> P:\n    \"\"\"\n    Experimental Glyphwise alternative;\n    hopefully supports ligatured and RTL\n    scripts\n    \"\"\"\n\n    if \"\\n\" in txt:\n        txt = txt.split(\"\\n\")\n\n    if multiline and isinstance(txt, str):\n        txt = [txt]\n    \n    if not isinstance(txt, str):\n        count = 0\n        out = P()\n        for lidx, line in enumerate(txt):\n            res = Glyphwise2(line, styler, tx=tx, ty=ty, start=count, line=lidx)\n            count += len(res)\n            out.append(res)\n        out.stack(10)\n        return out\n\n    g0 = GlyphwiseGlyph(-1, None, 0, line, 0)\n    initial = StSt(txt, styler(g0))\n    glyphs = [p.data(\"glyphName\") for p in initial]\n    \n    out = P()\n    mods = P()\n\n    for idx, glyph in enumerate(glyphs):\n        styling = styler(GlyphwiseGlyph(start+idx, glyph, idx/len(glyphs), line, idx))\n        if isinstance(styling, Style):\n            res = StSt(txt, styling)[idx]\n            out.append(res.zero())\n        else:\n            res1 = StSt(txt, styling[0])[idx]\n            res2 = StSt(txt, styling[0].mod(**styling[1]))[idx]\n            out.append(res1.zero())\n            mods.append(res2.zero())\n    \n    out.spread(0)\n\n    if len(mods) > 0:\n        for idx, o in enumerate(out):\n            out[idx] = mods[idx].align(o, tx=tx, ty=ty).data(frame=o.ambit(tx=0))\n    \n    return out\n\n\n# def Glyphwise(st:str\n#     , styler:Callable[[GlyphwiseGlyph], Style | list[Style | dict[str, Any]]]\n#     , start:int=0\n#     , line:int=0\n#     , multiline=False) -> P:\ndef Glyphwise(st:str\n    , styler\n    , start:int=0\n    , line:int=0\n    , multiline=False) -> P:\n    \"\"\"\n    Build text by applying unique style to each glyph.\n\n    Style is determined by a `styler` function (usually a lambda)\n    that is given a `GlyphwiseGlyph` containing information about\n    the glyph and its position (index, etc.); styler function\n    must return a Style object to be used for styling\n\n    #### Examples:\n    \n    ```python\n    @renderable()\n    def glyphwise(r):\n        return (Glyphwise(\"COLDTYPE\", lambda x:\n            Style(Font.ColdObvi(), 200, wdth=x.e))\n            .align(r))\n    ```\n    \"\"\"\n    # TODO possible to have an implementation\n    # aware of a non-1-to-1 mapping of characters\n    # to glyphs? seems very difficult if not impossible,\n    # since it requires mapping the string to glyphs\n    # and then somehow mapping the glyphs back to the\n    # equivalent string (?) in order to get the proper\n    # kerning information for the sub-strings —\n    # it maybe possible to pass glyph-id's directly\n    # to harfbuzz, which would solve the problem,\n    # though that does seem kind of hard to believe\n\n    #glyphs = StyledString(st, styler(0, st[0])).glyphs\n    #print(glyphs)\n    #print([g.name for g in glyphs])\n\n    def except_reverse():\n        raise Exception(\"r=1 not possible in a Glyphwise; please use a .reversePens() after the Glyphwise constructor\")\n\n    def run_styler(g):\n        styles = styler(g)\n        if isinstance(styles, Style):\n            if styles.reverse:\n                except_reverse()\n            return styles, None\n        else:\n            if isinstance(styles[1], dict):\n                if styles[0].reverse:\n                    except_reverse()\n                return styles[0], styles[0].mod(**styles[1])\n            else:\n                if styles[0].reverse:\n                    except_reverse()\n                return styles\n\n    if len(st) == 1:\n        return StSt(st,\n            run_styler(\n                GlyphwiseGlyph(0, st, 0, line, 0))[0], strip=False)\n\n    try:\n        lines = st.split(\"\\n\")\n        if len(lines) > 1 or multiline:\n            gs = []\n            start = 0\n            for lidx, l in enumerate(lines):\n                gs.append(Glyphwise(l, styler, start=start, line=lidx))\n                start += len(l)\n            return P(gs).stack()\n    except AttributeError:\n        pass\n\n    def kx(dps, idx):\n        return dps[idx].ambit().x\n    \n    def krn(off, on, idx):\n        return kx(off, idx) - kx(on, idx)\n\n    dps = P()\n    prev = 0\n    tracks = []\n\n    for idx, c in enumerate(st):\n        #c = gi.name\n        test = c\n        target = 0\n        tcount = 1\n        if idx < len(st) - 1:\n            test = [test, st[idx+1]]\n            tcount += 1\n        if idx > 0:\n            test = [st[idx-1], test]\n            target = 1\n            tcount += 1\n        if isinstance(test, str):\n            test = [test]\n        \n        e = idx / (len(st)-1)\n        gg = GlyphwiseGlyph(idx+start, c, e, line, idx)\n\n        skon, skon_tweak = run_styler(gg)\n        skoff = skon.mod(kern=0, kern_pairs={}, kp={}, tu=0)\n\n        #test_list = [t for sublist in test for t in sublist]\n        #print(test_list)\n        test_str = \"\".join([t if isinstance(t, str) else \"\".join(t) for t in test])\n        #print(c, test_str, target, test, tcount)\n\n        tkon = StSt(test_str, skon.mod(no_shapes=True), strip=False)\n        if skon_tweak is None:\n            tkoff = StSt(test_str, skoff, strip=False)\n            tkoff_tweak = None\n        else:\n            tkoff = StSt(test_str, skoff.mod(no_shapes=True), strip=False)\n            skoff_tweak = skon_tweak.mod(kern=0, kern_pairs={}, kp={}, tu=0)\n            tkoff_tweak = StSt(test_str, skoff_tweak, strip=False)\n\n        if idx == 0:\n            if tkoff_tweak:\n                tkoff_frame = tkoff[0].data(\"frame\")\n                tx = skon_tweak.input[\"kwargs\"].get(\"tx\", 0)\n                ty = skon_tweak.input[\"kwargs\"].get(\"ty\", 0)\n                tkoff_glyph = tkoff_tweak[0].align(tkoff_frame, tx=tx, ty=ty)\n                tkoff_glyph.data(frame=tkoff_frame)\n            else:\n                tkoff_glyph = tkoff[0]#.copy(with_data=True)\n            \n            dps.append(tkoff_glyph)\n            prev = krn(tkoff, tkon, 1)\n        if target > 0:\n            _prev = krn(tkoff, tkon, 1)\n            prev_av = (prev+_prev)/2\n\n            if tkoff_tweak:\n                tkoff_frame = tkoff[1].data(\"frame\")\n                tx = skon_tweak.input[\"kwargs\"].get(\"tx\", 0)\n                ty = skon_tweak.input[\"kwargs\"].get(\"ty\", 0)\n                tkoff_glyph = tkoff_tweak[1].align(tkoff_frame, tx=tx, ty=ty)\n                tkoff_glyph.data(frame=tkoff_frame)\n            else:\n                tkoff_glyph = tkoff[1].copy(with_data=True)\n            \n            dps.append(tkoff_glyph.translate(-kx(tkoff, 1), 0))\n            tracks.append(-prev_av)\n\n            if tcount > 2:\n                #print(\"_PREV\", _prev)\n                _next = krn(tkoff, tkon, 2) - _prev #tkoff[0].ambit().w\n                #print(\"next\", _next)\n            else:\n                _next = 0\n            prev = _next\n    \n    #print(tracks)\n    return dps.distribute(\n        tracks=tracks\n    )"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/font.py",
    "content": "import os, re, tempfile, sys\nfrom pathlib import Path\nfrom functools import lru_cache, cached_property\nfrom urllib.request import urlretrieve\nfrom dataclasses import dataclass\n\nfrom coldtype.osutil import on_linux, on_mac, on_windows, run_with_check\n\nfrom fontgoggles.misc.platform import setUseCocoa\nsetUseCocoa(False)\n\nimport fontgoggles.misc.hbShape as hbShape\ntry:\n    hbShape.CLUSTER_LEVEL = hbShape.hb.BufferClusterLevel.DEFAULT\nexcept:\n    print(\"! could not set hbShape.CLUSTER_LEVEL\")\n    pass\n\nfrom fontgoggles.font import getOpener\nfrom fontgoggles.font.baseFont import BaseFont\n\nBLACKRENDER_ALL = False\n\ntry:\n    from blackrenderer.font import BlackRendererFont\n    #from blackrenderer.backends.pathCollector import PathCollectorSurface, PathCollectorRecordingPen\n    from coldtype.text.colr.brsurface import BRPathCollectorSurface, BRPathCollectorRecordingPen\nexcept ImportError:\n    BlackRendererFont = None\n    pass\n\n_prefixes = [\n    [\"¬\", \"~/Library/Fonts\"],\n    [\"\", \"/Library/Fonts\"]\n]\n\nALL_FONT_DIRS = []\n\nif on_mac():\n    ALL_FONT_DIRS = [\n        \".\",\n        \"/System/Library/Fonts\",\n        \"/Library/Fonts\",\n        \"~/Library/Fonts\",\n    ]\n\nelif on_windows():\n    ALL_FONT_DIRS = [\n        \".\",\n        \"C:/Windows/Fonts\",\n    ]\n\n    localappdata = os.environ.get(\"LOCALAPPDATA\")\n    if localappdata:\n        ALL_FONT_DIRS.append(str(Path(localappdata) / \"Microsoft/Windows/Fonts/\"))\n\nelif on_linux():\n    ALL_FONT_DIRS = [\n        \".\",\n        \"/usr/share/fonts\",\n        \"~/.local/share/fonts\",\n        \"~/.fonts\",\n    ]\n    pass\n\nFONT_FIND_DEPTH = int(os.environ.get(\"COLDTYPE_FONT_FIND_DEPTH\", 3))\n\nclass FontNotFoundException(Exception):\n    pass\n\ndef normalize_font_prefix(path_string):\n    for prefix, expansion in _prefixes:\n        path_string = path_string.replace(prefix, expansion)\n    return Path(path_string).expanduser().resolve()\n\ndef normalize_font_path(font, nonexist_ok=False):\n    global _prefixes\n    literal = normalize_font_prefix(str(font))\n    ufo = literal.suffix == \".ufo\"\n    if nonexist_ok:\n        return str(literal)\n    if literal.exists() and (not literal.is_dir() or ufo):\n        return str(literal)\n    else:\n        raise FontNotFoundException(literal)\n\nFontCache = {}\nFontmakeCache = {}\n\n\n@dataclass\nclass FontMetrics:\n    _cap:float = 750\n    _asc:float = 1000\n    _dsc:float = -250\n    upem:float = 1000\n\n    @property\n    def cap(self):\n        return self._cap if self._cap > 0 else self._asc if self._asc > 0 else 750\n    \n    @property\n    def asc(self):\n        return self._asc if self._asc > 0 else self._cap if self._cap > 0 else 750\n    \n    @property\n    def dsc(self):\n        return self._dsc if self._dsc < 0 else -250\n\n\nclass Font():\n    # TODO support glyphs?\n    def __init__(self, path,\n        number=0,\n        cacheable=False,\n        suffix=None,\n        delete_tmp=False,\n        black=False,\n        system_name=None,\n        ):\n        tmp = None\n        if isinstance(path, str) and path.startswith(\"http\"):\n            url = Path(path)\n            sfx = url.suffix\n            if not sfx:\n                sfx = suffix\n            with tempfile.NamedTemporaryFile(prefix=\"coldtype_download_temp\", suffix=\".\"+sfx, delete=False) as tmp:\n                urlretrieve(path, tmp.name)\n                path = tmp.name\n                tmp = tmp\n        \n        self.path = Path(normalize_font_path(path))\n        numFonts, opener, getSortInfo = getOpener(self.path)\n        self.font:BaseFont = opener(self.path, number)\n        self.font.cocoa = False\n        self.cacheable = cacheable\n        self._loaded = False\n        self.load()\n\n        self.system_name = system_name\n\n        self._colr = self.font.ttFont.get(\"COLR\")\n        self._colrv1 = (self._colr is not None\n            #and self._colr.version == 1\n            and BlackRendererFont is not None)\n\n        if self._colrv1 or BLACKRENDER_ALL or black:\n            self._brFont = BlackRendererFont(self.path, fontNumber=number)\n        else:\n            self._brFont = None\n\n        self._variations = self.font.ttFont.get(\"fvar\")\n        self._instances = None\n\n        if tmp and delete_tmp:\n            os.unlink(tmp.name)\n    \n    def __repr__(self):\n        return f\"<Font:{self.path}>\"\n\n    def load(self):\n        if self._loaded:\n            return self\n        else:\n            from coldtype.helpers import run_coroutine_sync\n            run_coroutine_sync(self.font.load(sys.stderr.write))\n            self._loaded = True\n            return self\n    \n    def variations(self):\n        axes = {}\n        if self._variations:\n            fvar = self._variations\n            for axis in fvar.axes:\n                axes[axis.axisTag] = (axis.__dict__)\n        return axes\n    \n    def features(self):\n        return {*self.font.featuresGPOS, *self.font.featuresGSUB}\n    \n    @cached_property\n    def metrics(self) -> FontMetrics:\n        upem = self.font.ttFont[\"head\"].unitsPerEm\n\n        try:\n            if \"OS/2\" in self.font.ttFont:\n                os2 = self.font.ttFont[\"OS/2\"]\n                return FontMetrics(\n                    os2.sCapHeight if hasattr(os2, \"sCapHeight\") else 750,\n                    os2.sTypoAscender if hasattr(os2, \"sTypoAscender\") else 750,\n                    -os2.sTypoDescender if hasattr(os2, \"sTypoDescender\") else 250,\n                    upem)\n            \n            # TODO does this every happen?\n            elif hasattr(self.font, \"info\"):\n                return FontMetrics(\n                    self.font.info.capHeight,\n                    self.font.info.ascender,\n                    -self.font.info.descender,\n                    upem)\n            \n            # TODO also does this ever happen?\n            elif hasattr(self.font, \"defaultInfo\"):\n                return FontMetrics(\n                    self.font.defaultInfo.capHeight,\n                    self.font.defaultInfo.ascender,\n                    -self.font.defaultInfo.descender,\n                    upem)\n        \n        except AttributeError:\n            return FontMetrics(upem=upem)\n    \n    def instances(self, scaled=True, search:re.Pattern=None):\n        if self._variations is None:\n            return None\n        \n        if self._instances is None:\n            self._instances = {}\n            for x in self._variations.instances:\n                name_id = x.subfamilyNameID\n                name_record = self.font.ttFont[\"name\"].getDebugName(name_id)\n                self._instances[name_record] = x.coordinates\n        \n        if scaled:\n            axes = self.variations()\n            def scale(cs):\n                out = {}\n                for k, v in cs.items():\n                    axis = axes[k]\n                    out[k] = (v - axis[\"minValue\"]) / (axis[\"maxValue\"] - axis[\"minValue\"])\n                return out\n            return {k:scale(v) for k, v in self._instances.items()}\n        \n        if search is not None:\n            keys = self._instances.keys()\n            matches = [key for key in keys if re.search(search, key, re.IGNORECASE)]\n            if len(matches) > 0:\n                return self._instances[matches[0]]\n            else:\n                print(f\"No instance keys matching: {search} :for {self.path.stem}\")\n                return None\n\n        return self._instances\n    \n    def filename_stem(self, respacer=\"-\"):\n        if self.system_name is not None:\n            return self.system_name.replace(\" \", respacer)\n        else:\n            try:\n                return self.names()[0].replace(\" \", respacer)\n            except:\n                return self.path.stem\n    \n    def filename(self, respacer=\"-\"):\n        return f\"{self.filename_stem(respacer)}{self.path.suffix}\"\n    \n    def getName(self, nameID) -> str|None:\n        for record in self.font.ttFont['name'].names:\n            if record.nameID == nameID:\n                return str(record)\n\n    def names(self):\n        \"\"\"\n        returns name, family\n        \"\"\"\n        try:\n            FONT_SPECIFIER_NAME_ID = 4\n            FONT_SPECIFIER_FAMILY_ID = 1\n            name = \"\"\n            family = \"\"\n\n            def decode(rec):\n                return str(rec)\n                # TODO should this be necessary?\n                try:\n                    return rec.string.decode(\"utf-8\")\n                except UnicodeDecodeError:\n                    return rec.string.decode(\"utf-16-be\")\n\n            for record in self.font.ttFont['name'].names:\n                if record.nameID == FONT_SPECIFIER_NAME_ID and not name:\n                    name = decode(record)\n                    if name.endswith(\" None\"):\n                        name = re.sub(r\"\\sNone$\", \"\", name)\n                elif record.nameID == FONT_SPECIFIER_FAMILY_ID and not family:\n                    family = decode(record)\n                if name and family:\n                    break\n            \n            return name, family\n        except:\n            return self.path.stem, self.path.stem\n    \n    def chars(self) -> list[str]:\n        ttf = self.font.ttFont\n        cmap = ttf[\"cmap\"]\n        best = cmap.getBestCmap()\n\n        #for table in font[\"cmap\"].tables:\n        #    print(f\"Platform {table.platformID}, Encoding {table.platEncID}, Format {table.format}\")\n\n        els = []\n\n        if best:\n            all_chars = []\n            cmap = ttf[\"cmap\"]\n            for ch, name in cmap.getBestCmap().items():\n                all_chars.append([chr(ch), name])\n            return all_chars\n        else:\n            symbol_cmap = ttf[\"cmap\"].getcmap(3, 0)\n\n            if symbol_cmap:\n                all_chars = []\n                for codepoint, glyph_name in symbol_cmap.cmap.items():\n                    low_byte = codepoint & 0xFF\n                    char = chr(low_byte)\n                    all_chars.append([char, glyph_name])\n                return all_chars\n    \n    \n    def subset(self, output_path, *args, unicodes=\"U+0000-00FF U+2B22 U+201C U+201D U+201D\", features={}):\n        _args = [\n            \"pyftsubset\", str(self.path),\n            f\"--output-file={str(output_path)}\",\n            f\"--unicodes={unicodes}\",\n            \"--ignore-missing-unicodes\",\n            \"--ignore-missing-glyphs\",\n            \"--notdef-outline\",\n            \"--notdef-glyph\",\n        ]\n        \n        add_features = []\n        subtract_features = []\n\n        for k, v in features.items():\n            if v:\n                add_features.append(k)\n            else:\n                subtract_features.append(k)\n        \n        print(add_features, subtract_features)\n\n        if len(add_features) > 0:\n            _args.append(\"--layout-features+=\"+\",\".join(add_features))\n        if len(subtract_features) > 0:\n            _args.append(\"--layout-features-=\"+\",\".join(subtract_features))\n\n        _args.extend(args)\n        print(\">>\", _args, \"<<\")\n        run_with_check(_args)\n        return Font(str(output_path))\n    \n    @staticmethod\n    def Cacheable(path, suffix=None, delete_tmp=False, actual_path=None, number=0, system_name=None):\n        \"\"\"use actual_path to override a key path (if the actual path is the result of a networked call)\"\"\"\n        if number > 0:\n            if not actual_path:\n                actual_path = path\n            path = f\"{path}_#{number}\"\n        \n        if path not in FontCache:\n            FontCache[path] = Font(\n                actual_path if actual_path else path,\n                cacheable=True,\n                suffix=suffix,\n                delete_tmp=delete_tmp,\n                number=number,\n                system_name=system_name).load()\n        return FontCache[path]\n    \n    @staticmethod\n    def GDrive(id, suffix, delete=True):\n        dwnl = f\"https://drive.google.com/uc?id={id}&export=download\"\n        return Font.Cacheable(dwnl, suffix=suffix, delete_tmp=delete)\n    \n    @staticmethod\n    def UnzipURL(url, font_name, path, index=0) -> \"Font\":\n        import requests, zipfile, io\n\n        stem = Path(url).stem\n        font_name_short = font_name.replace(\" \", \"\")\n        font_cache_key = f\"DownloadedFont_{font_name_short}_{index}\"\n        \n        if font_cache_key in FontCache:\n            return FontCache[font_cache_key]\n\n        folder = Path(f\"_DownloadedFonts\")\n        folder.mkdir(exist_ok=True, parents=True)\n\n        r = requests.get(url)\n        if not r.ok:\n            raise FontNotFoundException(\"URL did not resolve\")\n        \n        z = zipfile.ZipFile(io.BytesIO(r.content))\n        z.extractall(folder)\n\n        font_path = folder / stem / path / font_name\n        return Font.Cacheable(font_cache_key, actual_path=font_path)\n    \n    # Google broke this\n    # @staticmethod\n    # def GoogleFont(font_name, index=0) -> \"Font\":\n    #     import requests, zipfile, io\n\n    #     font_name_short = font_name.replace(\" \", \"\")\n    #     font_cache_key = f\"GoogleFont_{font_name_short}_{index}\"\n    #     if font_cache_key in FontCache:\n    #         return FontCache[font_cache_key]\n\n    #     url = f\"https://fonts.google.com/download?family={font_name}\"\n    #     folder = Path(f\"_GoogleFonts/{font_name_short}\")\n    #     folder.mkdir(exist_ok=True, parents=True)\n\n    #     r = requests.get(url)\n    #     if not r.ok:\n    #         raise FontNotFoundException(\"GoogleFont URL did not resolve\")\n        \n    #     z = zipfile.ZipFile(io.BytesIO(r.content))\n    #     z.extractall(folder)\n        \n    #     font_path = list(folder.glob(\"*.ttf\"))[index]\n    #     return Font.Cacheable(font_cache_key, actual_path=font_path)\n    \n    def Download(url) -> \"Font\":\n        import requests\n\n        font_name = Path(url).name\n        \n        font_cache_key = f\"Download_{font_name}\"\n        if font_cache_key in FontCache:\n            return FontCache[font_cache_key]\n\n        folder = Path(f\"_DownloadedFonts\")\n        folder.mkdir(exist_ok=True, parents=True)\n        font_path = folder / font_name\n\n        r = requests.get(url)\n        if not r.ok:\n            raise FontNotFoundException(\"URL did not resolve\")\n        \n        font_path.write_bytes(r.content)\n        return Font.Cacheable(font_cache_key, actual_path=font_path)\n    \n    def _ListDir(dir, regex, regex_dir, log=False, depth=0, max_depth=FONT_FIND_DEPTH, bail=False):\n        if dir.name in [\".git\", \"venv\", \".venv\"]:\n            return\n        \n        results = []\n\n        try:\n            for p in dir.iterdir():\n                #if len(results) > 0:\n                #    print(\"SKIP\")\n                #    return results[0]\n\n                if p.is_dir() and depth < max_depth and p.suffix != \".ufo\":\n                    try:\n                        res = Font._ListDir(p, regex, regex_dir, log, depth=depth+1, bail=bail, max_depth=max_depth)\n                        if res:\n                            results.extend(res)\n                            if bail:\n                                return [results[0]]\n                    except PermissionError:\n                        pass\n                else:\n                    if regex_dir and not re.search(regex_dir, str(p.parent), re.IGNORECASE):\n                        continue\n                    if re.search(regex, p.name, re.IGNORECASE):\n                        if p.suffix in [\".otf\", \".ttf\", \".ttc\", \".ufo\", \".woff\", \".woff2\"]:\n                            results.append(p)\n                            if bail:\n                                return [p]\n        except FileNotFoundError:\n            pass\n        \n        return results\n\n    @lru_cache()\n    def List(regex, regex_dir=None, log=False, font_dir=None, expand=False, max_depth=FONT_FIND_DEPTH, bail=False):\n        results = []\n\n        if \"/\" in regex and regex_dir is None:\n            regex_dir, regex = regex.rsplit(\"/\", 1)\n            print(\">>>\", regex_dir, regex)\n        \n        font_dirs = ALL_FONT_DIRS\n        if font_dir is not None:\n            font_dirs = [font_dir]\n        \n        for dir in font_dirs:\n            if bail and results: return [results[0]]\n\n            dir = normalize_font_prefix(dir)\n            list_dir_results = Font._ListDir(Path(dir), regex, regex_dir, log, depth=0, max_depth=max_depth, bail=bail)\n            results.extend(list_dir_results)\n        \n        results = sorted(results, key=lambda p: p.stem)\n        if expand:\n            return [Font.Cacheable(p, system_name=p.stem) for p in results]\n        return results\n    \n    @staticmethod\n    def ListAll(regex, log=False, font_dir=None, expand=True, max_depth=FONT_FIND_DEPTH, bail=False) -> list[\"Font\"]:\n        results = Font.List(regex, expand=True, max_depth=max_depth)\n        paths = set([r.path for r in results])\n\n        library_results = Font.LibraryList(regex, expand=True)\n        for l in library_results:\n            if l.path not in paths:\n                results.append(l)\n        \n        return results #sorted(results, key=lambda p: p.system_name)\n\n    @staticmethod\n    def Find(regex, regex_dir=None, index=0, font_dir=None, number=0, max_depth=FONT_FIND_DEPTH, bail=False):\n        if isinstance(regex, Font):\n            return regex\n        \n        parts = regex.split(\"@\")\n        if len(parts) > 1:\n            index = int(parts[1])\n            regex = parts[0]\n\n        if Path(normalize_font_prefix(regex)).expanduser().exists():\n            return Font.Cacheable(regex, number=number)\n        \n        found = Font.List(regex, regex_dir, font_dir=font_dir, max_depth=max_depth, bail=bail)\n        if len(found) == 0:\n            raise FontNotFoundException(regex)\n\n        try:\n            return Font.Cacheable(found[index], number=number)\n        except IndexError:\n            print(f\"> Could not get @{index}, returning 0 instead\")\n            return Font.Cacheable(found[0], number=number)\n        except Exception as e:\n            #print(\">\", e)\n            raise FontNotFoundException(regex)\n    \n    @staticmethod\n    def LibraryList(regex, print_list=False, expand=False, copy_to=None):\n        \"\"\"pass a compiled re (i.e. re.compile to _not_ ignore case)\"\"\"\n        regex_dir = None\n\n        try:\n            regex.match(\"asdf\")\n        except AttributeError:\n            if \"/\" in regex:\n                regex_dir, regex = regex.rsplit(\"/\", 1)\n            regex = re.compile(f\".*{regex}.*\", re.IGNORECASE)\n\n        if on_mac():\n            import AppKit, CoreText\n            fonts = [x for x in list(AppKit.NSFontManager.sharedFontManager().availableFonts()) if not x.startswith(\".\")]\n            fonts = list(sorted(fonts, key=lambda x: len(x)))\n            fonts = [x for x in fonts if re.search(regex, x)]\n            if print_list:\n                print(\"---\")\n                print(\"Font Matches\")\n                for f in fonts:\n                    print(\" >\", f)\n            \n            if expand or copy_to:\n                expanded = []\n                for f in fonts:\n                    font = AppKit.NSFont.fontWithName_size_(f, 100)\n                    path = Path(CoreText.CTFontDescriptorCopyAttribute(font.fontDescriptor(), CoreText.kCTFontURLAttribute).path())\n                    if not regex_dir or re.search(regex_dir, str(path)):\n                        cacheable = Font.Cacheable(path, system_name=f)\n                        expanded.append(cacheable)\n\n                        if copy_to:\n                            cacheable.copy_to(copy_to)\n                    \n                return expanded\n            return fonts\n        else:\n            raise Exception(\"Library not supported on this OS\")\n    \n    @staticmethod\n    def LibraryFind(regex, print_list=False) -> \"Font\":\n        matches = Font.LibraryList(regex, print_list=print_list)\n        if len(matches) > 0:\n            if on_mac():\n                import AppKit, CoreText\n                try:\n                    font = AppKit.NSFont.fontWithName_size_(matches[0], 100)\n                    path = Path(CoreText.CTFontDescriptorCopyAttribute(font.fontDescriptor(), CoreText.kCTFontURLAttribute).path())\n                    return Font.Cacheable(path)\n                except:\n                    print(\"FAILED SYSTEM LOOKUP\", matches[0])\n                    raise FontNotFoundException(regex)\n    \n    @staticmethod\n    def LibraryGet(regex, directory=\"~/Desktop\", print_list=False):\n        found = Font.LibraryFind(regex)\n        destination = Path(directory).expanduser().absolute() / f\"{str(regex)}{found.path.suffix}\"\n        found.copy_to(destination)\n        return Font.Cacheable(destination)\n\n    @staticmethod\n    def Fontmake(source, verbose=False, keep_overlaps=False, cli_args=[]):\n        import tempfile\n        from subprocess import run\n\n        path = Path(source).expanduser()\n        if not path.exists():\n            raise FontNotFoundException(path)\n\n        mtime = path.stat().st_mtime\n\n        if path.suffix == \".designspace\":\n            from fontTools.designspaceLib import DesignSpaceDocument\n            ds = DesignSpaceDocument.fromfile(path)\n            for source in ds.sources:\n                mtime = max(Path(source.path).stat().st_mtime, mtime)\n\n        if path in FontmakeCache:\n            _mtime, _font = FontmakeCache[path]\n            if _mtime == mtime:\n                return _font\n\n        print(f\"fontmake compiling font {path.name}\")\n\n        with tempfile.NamedTemporaryFile(prefix=\"coldtype_fontmake_\", suffix=\".ttf\", delete=False) as tmp:\n            args = [\"fontmake\", path, \"--output-path\", tmp.name]\n            \n            if path.suffix == \".designspace\":\n                args.extend([\"-o\", \"variable\"])\n            \n            if keep_overlaps:\n                args.append(\"--keep-overlaps\")\n            \n            args.extend(cli_args)\n            output = run(args, capture_output=not verbose, check=True)\n        \n        print(f\"/fontmake compiled font {path.name}\")\n        print(tmp.name)\n\n        font = Font(tmp.name)\n        FontmakeCache[path] = [mtime, font] # TODO creation args should also go in cache\n        os.unlink(tmp.name)\n\n        return font\n    \n    def RegisterDir(dir):\n        global ALL_FONT_DIRS\n        if dir not in ALL_FONT_DIRS:\n            ALL_FONT_DIRS.insert(0, dir)\n    \n    def Normalize(font, fallback=True):\n        if isinstance(font, Path):\n            font = str(font)\n        \n        if isinstance(font, str):\n            try:\n                _font = Font.Find(font)\n                _font.load() # necessary?\n                return _font\n            except FontNotFoundException as e:\n                if fallback:\n                    #print(\"font not found:\", font)\n                    return Font.RecursiveMono()\n                else:\n                    raise e\n        elif isinstance(font, Font):\n            return font\n        else: # it's a list of fonts\n            for f in font:\n                try:\n                    return Font.Normalize(f, fallback=False)\n                except FontNotFoundException:\n                    pass\n            if fallback:\n                return Font.RecursiveMono()\n            else:\n                raise FontNotFoundException()\n    \n    def copy_to(self, path:Path, filename_literal=False, return_dst=False):\n        from shutil import copyfile\n        dst = Path(path).expanduser().absolute()\n        if not filename_literal:\n            dst.mkdir(exist_ok=True, parents=True)\n            dst = dst / self.filename()\n        copyfile(self.path, dst)\n        if return_dst: return dst\n        return self\n\n    @staticmethod\n    def ColdtypeObviously():\n        return Font.Cacheable(Path(__file__).parent.parent / \"demo/ColdtypeObviously-VF.ttf\")\n    \n    ColdObvi = ColdtypeObviously\n\n    @staticmethod\n    def MutatorSans():\n        return Font.Cacheable(Path(__file__).parent.parent / \"demo/MutatorSans.ttf\")\n    \n    MuSan = MutatorSans\n    \n    @staticmethod\n    def RecursiveMono():\n        return Font.Cacheable(Path(__file__).parent.parent / \"demo/RecMono-CasualItalic.ttf\")\n    \n    RecMono = RecursiveMono\n\n    @staticmethod\n    def JetBrainsMono():\n        return Font.Cacheable(Path(__file__).parent.parent / \"demo/JetBrainsMono.ttf\")\n    \n    JBMono = JetBrainsMono\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/reader.py",
    "content": "from collections import OrderedDict\nfrom functools import partial\nfrom shutil import copy2\nfrom pathlib import Path\n\nimport unicodedata, math\n\nfrom fontTools.misc.transform import Transform\nfrom fontTools.pens.transformPen import TransformPen\n\nfrom coldtype.osutil import run_with_check\nfrom coldtype.color import normalize_color, rgb\nfrom coldtype.runon.path import P\nfrom coldtype.geometry import Rect\nfrom coldtype.text.font import Font, normalize_font_path, normalize_font_prefix, FontNotFoundException, ALL_FONT_DIRS, _prefixes\n\nfrom typing import Union\n\nfrom fontgoggles.misc.platform import setUseCocoa\nsetUseCocoa(False)\n\nfrom fontgoggles.misc.textInfo import TextInfo\nfrom fontgoggles.font.glyphDrawing import GlyphDrawing\n\nimport uharfbuzz as hb\n\ntry:\n    from blackrenderer.font import BlackRendererFont\n    #from blackrenderer.backends.pathCollector import PathCollectorSurface, PathCollectorRecordingPen\n    from coldtype.text.colr.brsurface import BRPathCollectorSurface, BRPathCollectorRecordingPen\nexcept ImportError:\n    BlackRendererFont = None\n    pass\n\nclass FittableMixin():\n    def textContent(self):\n        print(\"textContent() not overwritten\")\n\n    def fit(self, width):\n        \"\"\"Use various methods (tracking, `wdth` axis, etc. — properties specified in the `Style` object) to fit a piece of text horizontally to a given `width` (warning: not very fast)\"\"\"\n        if isinstance(width, Rect):\n            width = width.w\n        current_width = self.width()\n        tries = 0\n        if current_width > width: # need to shrink\n            while tries < 100000 and current_width > width:\n                adjusted = self.shrink()\n                if adjusted:\n                    tries += 1\n                    current_width = self.width()\n                else:\n                    #print(\">>> TOO BIG :::\", self.textContent())\n                    return self\n        elif current_width < width: # need to expand\n            pass\n        #print(\">>>>>>>>>>>>>>>>>> FINAL TRIES\", tries)\n        return self\n\n\nclass Style():\n    \"\"\"\n    Class for configuring font properties\n\n    #### Keyword arguments\n\n    * `font`: can either be a `coldtype.text.Font` object, a `pathlib.Path`, or a plain string path\n    * `font_size`: standard point-based font-size, expressed as integer\n    * `tracking` (aka `tu`): set the tracking, by default **in font-source-point-size** aka as if the font-size was always 1000; this means tracking is by default done relatively rather than absolutely (aka the relative tracking will not change when you change the font_size)\n    * `trackingMode`: set to 0 to set tracking in a classic font_size-based (defaults to 1, as described just above)\n    * `space`: set this to override the width of the standard space character (useful when setting text on a curve and the space is getting collapsed)\n    * `baselineShift` (aka `bs`): if an integer, shifts glyphs by that amount in y axis; if a list, shifts glyphs at corresponding index in list by that amount in y axis\n    * `xShift` (aka `xs`): if an integer, shifts glyphs by that amount in x axis; if a list, shifts glyphs at corresponding index in list by that amount in x axis\n    * `rotate`: rotate glyphs by degree\n    * `reverse` (aka `r`): reverse the order of the glyphs, so that the left-most glyph is first in when vectorized via `.pens()`\n    * `removeOverlaps` (aka `ro`): automatically use skia-pathops to remove overlaps from the glyphs (useful when using variable ttf fonts)\n    * `lang`: set language directly, to access language-specific alternate characters/rules\n\n    #### Shorthand kwargs\n\n    * `kp` for `kern_pairs` — a dict of glyphName->[left,right] values in font-space\n    * `tl` for `trackingLimit`\n    * `bs` for `baselineShift`\n    * `ch` for `capHeight` — a number in font-space; not specified, read from font; specified as 'x', capHeight is set to xHeight as read from font\n    \"\"\"\n    def RegisterShorthandPrefix(prefix, expansion):\n        global _prefixes\n        _prefixes.append([prefix, str(expansion)])\n\n    def __init__(self,\n        font:Union[Font, str]=None,\n        font_size:int=12,\n        tracking=0,\n        trackingMode=1,\n        postTracking=0,\n        kern_pairs=dict(),\n        space=None,\n        baselineShift=0,\n        xShift=None,\n        rotate=0,\n        reverse=False,\n        removeOverlap=False,\n        q2c=False,\n        lang=None,\n        narrower=None,\n        fallback=None,\n        palette=0,\n        capHeight=None,\n        ascender=None,\n        descender=None,\n        metrics=\"c\",\n        data={},\n        layer=None,\n        liga=True,\n        kern=True,\n        fill=rgb(0, 0.5, 1),\n        stroke=None,\n        strokeWidth=0,\n        instance=None,\n        variations=dict(),\n        variationLimits=dict(),\n        trackingLimit=0,\n        scaleVariations=True,\n        rollVariations=False,\n        mods=None,\n        features=dict(),\n        increments=dict(),\n        varyFontSize=False,\n        preventHwid=False,\n        fitHeight=None,\n        meta=dict(),\n        no_shapes=False,\n        show_frames=False,\n        load_font=True, # should we attempt to load the font?\n        tag=None, # way to differentiate in __eq__\n        annotate=False,\n        case=None,\n        cluster=False,\n        **kwargs\n        ):\n\n        self.input = locals()\n        self.input[\"self\"] = None\n\n        if load_font:\n            self.font = Font.Normalize(font)\n        else:\n            self.font = font\n\n        self.meta = meta\n        self.case = case\n\n        self.cluster = cluster\n        self.fallback = fallback\n        self.narrower = narrower\n        self.layer = layer\n        self.reverse = kwargs.get(\"r\", reverse)\n        self.removeOverlap = kwargs.get(\"ro\", removeOverlap)\n        self.q2c = q2c\n        self.rotate = rotate\n        self.scaleVariations = kwargs.get(\"sv\", scaleVariations)\n        self.rollVariations = kwargs.get(\"rv\", rollVariations)\n        self.tag = tag\n        self.annotate = annotate\n        \n        self.metrics = metrics\n        self.capHeight = kwargs.get(\"ch\", capHeight)\n        self.descender = kwargs.get(\"dsc\", descender)\n        self.ascender = kwargs.get(\"asc\", ascender)\n\n        self.no_shapes = no_shapes\n        self.show_frames = show_frames\n\n        self.complete_metrics()\n        if \"c\" in self.metrics:\n            self._asc = self.capHeight\n        else:\n            self._asc = self.ascender\n        \n        # legacy for older code\n        if kwargs.get(\"fontSize\"):\n            font_size = kwargs.get(\"fontSize\")\n\n        if fitHeight:\n            self.fontSize = (fitHeight/self._asc)*1000\n        else:\n            self.fontSize = font_size\n        \n        self.fontSize = max(self.fontSize, 0)\n\n        self.postTracking = postTracking\n        self.tracking = kwargs.get(\"t\", tracking)\n        self.kern_pairs = kwargs.get(\"kp\", kern_pairs)\n        self.trackingMode = trackingMode\n        self.trackingLimit = kwargs.get(\"tl\", trackingLimit)\n        self.baselineShift = kwargs.get(\"bs\", baselineShift)\n        self.increments = increments\n        self.space = space\n        self.xShift = kwargs.get(\"xs\", xShift)\n        self.mods = mods\n        self.palette = palette\n        self.lang = lang\n        self.data = data\n        self.preventHwid = preventHwid\n\n        if kwargs.get(\"tu\"):\n            self.trackingMode = 1 # this is the default now\n            self.tracking = kwargs.get(\"tu\")\n            if not self.increments.get(\"tracking\"):\n                self.increments[\"tracking\"] = 5 # TODO good?\n\n        found_features = features.copy()\n        for k, v in kwargs.items():\n            if k.startswith(\"ss\") and len(k) == 4:\n                found_features[k] = v\n            if k in [\"dlig\", \"swsh\", \"onum\", \"tnum\", \"palt\", \"salt\", \"vert\"]:\n                found_features[k] = v\n            if k in [\"slig\"]:\n                if k == 0:\n                    found_features[k] = 0\n        \n        self.features = {}\n        all_features = {**dict(kern=kern, liga=liga), **found_features}\n\n        if not isinstance(self.font, str):\n            # making sure the features exist before we set them\n            try:\n                gpos = self.font.font.shaper.getFeatures(\"GPOS\")\n                gsub = self.font.font.shaper.getFeatures(\"GSUB\")\n                for feature, v in all_features.items():\n                    if feature in gpos or feature in gsub:\n                        self.features[feature] = int(v)\n            except Exception as e:\n                print(\"feature finder failed\", e)\n\n        self.fill = normalize_color(fill)\n        self.stroke = normalize_color(stroke)\n        \n        if stroke and strokeWidth == 0:\n            self.strokeWidth = 1\n        else:\n            self.strokeWidth = strokeWidth\n\n        unnormalized_variations = variations.copy()\n\n        self.instance = instance\n        self.axes = OrderedDict()\n        self.variations = dict()\n        self.variationLimits = dict()\n        self.varyFontSize = varyFontSize\n\n        if not load_font:\n            return\n        else:\n            fvar = self.font.font.ttFont.get(\"fvar\")\n            if fvar is not None:\n                for axidx, axis in enumerate(sorted(fvar.axes, key=lambda ax: ax.axisTag)):\n                    generic = f\"fvar_{axidx}\"\n                    self.axes[axis.axisTag] = axis\n                    self.variations[axis.axisTag] = axis.defaultValue\n                    if axis.axisTag == \"wdth\": # the only reasonable default\n                        self.variationLimits[axis.axisTag] = axis.minValue\n                    if axis.axisTag in kwargs and axis.axisTag not in variations:\n                        v = kwargs[axis.axisTag]\n                        if v is not None:\n                            unnormalized_variations[axis.axisTag] = kwargs[axis.axisTag]\n                    if generic in kwargs and axis.axisTag not in variations:\n                        unnormalized_variations[axis.axisTag] = kwargs[generic]\n            \n            if self.instance:\n                self.scaleVariations = False\n                xs = self.font.instances(scaled=False, search=self.instance)\n                if xs:\n                    self.addVariations(xs)\n                else:\n                    self.addVariations(unnormalized_variations)\n            else:\n                self.addVariations(unnormalized_variations)\n    \n    def __repr__(self):\n        if self.tag:\n            return f\"<Style:{self.font.path.name}|{self.fontSize}|tag={self.tag}|{self.variations}>\"\n        else:\n            return f\"<Style:{self.font.path.name}|{self.fontSize}|{self.variations}>\"\n\n    def __eq__(self, other):\n        try:\n            if not self.tag == other.tag:\n                return False\n            if not self.font == other.font:\n                return False\n            elif not self.fontSize == other.fontSize:\n                return False\n            elif not self.variations == other.variations:\n                return False\n        except:\n            return False\n        \n        for key, value in self.variations.items():\n            if self.variations[key] != other.variations[key]:\n                return False\n            \n        if self.rotate != other.rotate:\n            return False\n        \n        if self.fill != other.fill:\n            return False\n        \n        return True\n\n    def mod(self, **kwargs):\n        \"\"\"Modify this style object to create a new\n        one; kwargs can have all of the same kwargs as\n        the standard `Style` constructor\"\"\"\n        keyed = dict(**self.input, **self.input[\"kwargs\"])\n        del keyed[\"kwargs\"]\n        del keyed[\"self\"]\n        keyed.update(kwargs)\n        return Style(**keyed)\n    \n    def print(self, *args):\n        print(*args)\n        return self\n    \n    def complete_metrics(self):\n        c = False\n        a = False\n        d = False\n\n        if self.capHeight is None and \"c\" in self.metrics:\n            c = True\n        elif self.ascender is None and \"a\" in self.metrics:\n            a = True\n\n        if self.descender is None and \"d\" in self.metrics:\n            d = True    \n\n        try:\n            if \"OS/2\" in self.font.font.ttFont:\n                os2 = self.font.font.ttFont[\"OS/2\"]\n                if c:\n                    self.capHeight = os2.sCapHeight if hasattr(os2, \"sCapHeight\") else 0\n                    if self.capHeight == 0:\n                        self.capHeight = os2.sTypoAscender if hasattr(os2, \"sTypoAscender\") else 750\n                if a:\n                    self.ascender = os2.sTypoAscender if hasattr(os2, \"sTypoAscender\") else 0\n                    if self.ascender == 0:\n                        self.ascender = os2.sCapHeight if hasattr(os2, \"sCapHeight\") else 750\n                if d:\n                    self.descender = -os2.sTypoDescender if hasattr(os2, \"sTypoDescender\") else 250\n            \n            # TODO does this every happen?\n            elif hasattr(self.font.font, \"info\"):\n                if c:\n                    self.capHeight = self.font.font.info.capHeight\n                if a:\n                    self.ascender = self.font.font.info.ascender\n                if d:\n                    self.descender = -self.font.font.info.descender\n            \n            # TODO also does this ever happen?\n            elif hasattr(self.font.font, \"defaultInfo\"):\n                if c:\n                    self.capHeight = self.font.font.defaultInfo.capHeight\n                if a:\n                    self.ascender = self.font.font.defaultInfo.ascender\n                if d:\n                    self.descender = -self.font.font.defaultInfo.descender\n        except AttributeError:\n            pass\n    \n    def addVariations(self, variations, limits=dict()):\n        for k, v in self.normalizeVariations(variations).items():\n            self.variations[k] = v\n        for k, v in self.normalizeVariations(limits).items():\n            self.variationLimits[k] = v\n    \n    def normalizeVariations(self, variations):\n        scale = self.scaleVariations\n        roll = self.rollVariations\n\n        for k, v in variations.items():\n            try:\n                axis = self.axes[k]\n            except KeyError:\n                continue\n\n            if v == \"min\":\n                variations[k] = axis.minValue\n            elif v == \"max\":\n                variations[k] = axis.maxValue\n            elif v == \"default\":\n                variations[k] = axis.defaultValue\n            elif isinstance(v, str):\n                coords = self.font.instances(scaled=False, search=v)\n                if coords:\n                    variations[k] = coords[axis.axisTag]\n                else:\n                    variations[k] = axis.defaultValue\n            elif scale:\n                vv = v\n                if roll:\n                    vv = v%2\n                    if 1 < vv < 2:\n                        vv = 2 - vv\n                _v = max(0, min(1, vv))\n                variations[k] = float(abs(axis.maxValue-axis.minValue)*_v + axis.minValue)\n            else:\n                if v < axis.minValue or v > axis.maxValue:\n                    variations[k] = max(axis.minValue, min(axis.maxValue, v))\n                    print(\"----------------------\")\n                    print(\"Invalid Font Variation\")\n                    print(self.font.path, self.axes[k].axisTag, v)\n                    print(\"> setting\", v, \"<to>\", variations[k])\n                    print(\"----------------------\")\n                else:\n                    variations[k] = v\n        return variations\n    \n    def StretchX(flatten=10, debug=0, **kwargs):\n        d = {}\n        \n        def stretcher(w, xp, i, p):\n            np = (p.flatten(flatten) if flatten else p).nonlinear_transform(lambda x,y: (x if x < xp else x + w, y))\n            if debug:\n                (np.record(P()\n                    .line([(xp, -250), (xp, 1000)])\n                    .outline()))\n            return np\n\n        def is_left(a, b, c):\n            return ((b[0] - a[0])*(c[1] - a[1]) - (b[1] - a[1])*(c[0] - a[0])) > 0\n        \n        def stretcher_slnt(w, xy, angle, i, p):\n            if abs(angle) in [90, 270]:\n                return p\n            x0, y0 = xy\n            ra = math.radians(90+angle)\n            xdsc = x0 + (-250 - y0) / math.tan(ra)\n            xasc = x0 + (1000 - y0) / math.tan(ra)\n\n            np = (p.flatten(flatten) if flatten else p).nonlinear_transform(lambda x,y: (x if is_left((xdsc, -250), (xasc, 1000), (x, y)) else x + w, y))\n            if debug:\n                (np\n                    .record(P()\n                        .line([(xdsc, -250), (xasc, 1000)])\n                        .outline())\n                    .record(P()\n                        .moveTo((x0+50/2, y0+50/2))\n                        .dots(radius=50)))\n            return np\n        \n        for k, v in kwargs.items():\n            if len(v) == 3:\n                d[k] = (v[0], partial(stretcher_slnt, v[0], v[1], v[2]))\n            elif len(v) == 2:\n                d[k] = (v[0], partial(stretcher, v[0], v[1]))\n            elif len(v) == 1:\n                pass\n    \n        return d\n    \n    def StretchY(flatten=10, align=\"mdy\", debug=0, **kwargs):\n        d = {}\n        \n        def stretcher(h, yp, i, p):\n            np = (p.flatten(flatten) if flatten else p).nonlinear_transform(lambda x,y: (x, y if y < yp else y + h))\n            if align == \"mdy\":\n                np.translate(0, -h/2)\n            elif align == \"mxy\":\n                np.translate(0, -h)\n            if debug:\n                (np.record(P()\n                    .line([(0, yp), (p.ambit().point(\"E\").x, yp)])\n                    .outline()))\n            return np\n\n        def is_left(a, b, c):\n            return ((b[0] - a[0])*(c[1] - a[1]) - (b[1] - a[1])*(c[0] - a[0])) > 0\n        \n        def stretcher_slnt(h, xy, angle, i, p):\n            if abs(angle) in [90, 270]:\n                return p\n            x0, y0 = xy\n            ra = math.radians(90+angle)\n            ydsc = y0 + (0 - x0) / math.tan(ra)\n            yasc = y0 + (p.ambit().point(\"E\").x - x0) / math.tan(ra)\n            p0 = (0, ydsc)\n            p1 = (p.ambit().point(\"E\").x, yasc)\n\n            np = (p.flatten(flatten) if flatten else p).nonlinear_transform(lambda x,y: (x, y if not is_left(p0, p1, (x, y)) else y + h))\n            if debug:\n                (np\n                    .record(P()\n                        .line([p0, p1])\n                        .outline())\n                    .record(P()\n                        .moveTo((x0+50/2, y0+50/2))\n                        .dots(radius=50)))\n            return np\n        \n        for k, v in kwargs.items():\n            if len(v) == 3:\n                d[k] = (0, partial(stretcher_slnt, v[0], v[1], v[2]))\n            elif len(v) == 2:\n                d[k] = (0, partial(stretcher, v[0], v[1]))\n            elif len(v) == 1:\n                pass\n        return d\n\n\ndef offset(x, y, ox, oy):\n    return (x + ox, y + oy)\n\n\nclass StyledString(FittableMixin):\n    \"\"\"\n    Lowest-level vectorized typesetting class\n    \"\"\"\n    def __init__(self, text:str, style:Style):\n        if style.case is not None:\n            if style.case == \"upper\":\n                text = text.upper()\n            elif style.case == \"lower\":\n                text = text.lower()\n        \n        self.text_info = TextInfo(text)\n        self.text = text\n        self.setStyle(style)\n        if self.style.lang:\n            self.text_info.languageOverride = self.style.lang\n        self.resetGlyphRun()\n    \n    def __repr__(self):\n        return f\"<StyledString:{self.text}:{self.style}>\"\n    \n    def setStyle(self, style):\n        self.style = style\n        # these will change based on fitting, so we make copies\n        self.fontSize = self.style.fontSize\n        self.tracking = self.style.tracking\n        self.features = self.style.features.copy()\n        self.variations = self.style.variations.copy()\n    \n    def resetGlyphRun(self):\n        self.glyphs = self.style.font.font.getGlyphRunFromTextInfo(self.text_info\n            , features=self.features\n            , varLocation=self.variations\n            )\n        #self.glyphs = self.style.font.font.getGlyphRun(self.text, features=self.features, varLocation=self.variations)\n        x = 0\n        for glyph in self.glyphs:\n            #print(\">>>>\", glyph.gid)\n\n            glyph.frame = Rect(x+glyph.dx, glyph.dy, glyph.ax, self.style._asc)\n            if \"d\" in self.style.metrics:\n                glyph.frame = glyph.frame.expand(self.style.descender, \"N\")\n            x += glyph.ax\n        \n        #print(\"resetGlyphRun\")\n        self.getGlyphFrames()\n    \n    def trackFrames(self, space_width=0):\n        t = self.tracking\n        x_off = 0\n        for idx, g in enumerate(self.glyphs):\n            g.frame = g.frame.offset(x_off, 0)\n            x_off += t\n            \n            if self.style.mods:\n                mod_data = self.style.mods.get(g.name, self.style.mods.get(\"_wildcard\"))\n                if mod_data is not None:\n                    x_off += mod_data[0]\n            \n            if self.style.space and g.name.lower() == \"space\":\n                x_off += (self.style.space - space_width)\n    \n    def adjustFramesForPath(self):\n        for idx, g in enumerate(self.glyphs):    \n            if self.style.xShift:\n                try:\n                    g.frame.x += self.style.xShift[idx]\n                except:\n                    g.frame.x += self.style.xShift\n                    pass\n    \n    def getGlyphFrames(self):\n        if self.style.kern_pairs:\n            last_gn = None\n            for idx, glyph in enumerate(self.glyphs):\n                gn = glyph.name\n\n                for chars, kp in self.style.kern_pairs.items():\n                    try:\n                        l = kp[0]\n                        adv = kp[1]\n                    except TypeError:\n                        l = kp\n                        adv = 0\n                    if isinstance(chars, str):\n                        a, b = chars.split(\"/\")\n                    else:\n                        a, b = chars\n                    if gn == b and last_gn == a:\n                        kern_shift = l\n                        if kern_shift != 0:\n                            for glyph in self.glyphs[idx:]:\n                                glyph.frame.x += kern_shift\n                last_gn = gn\n        \n        space_width = 0\n        for glyph in self.glyphs:\n            if glyph.name == \"space\" and self.style.space and self.style.space > 0:\n                space_width = glyph.frame.w\n                glyph.frame.w = self.style.space\n\n        if self.style.trackingMode == 1:\n            self.trackFrames(space_width=space_width)\n\n        for glyph in self.glyphs:\n            glyph.frame = glyph.frame.scale(self.scale())\n\n        if self.style.trackingMode == 0:\n            self.trackFrames()\n\n        self.adjustFramesForPath()\n    \n    def scale(self):\n        return self.fontSize / self.style.font.font.shaper.face.upem\n    \n    def width(self): # size?\n        try:\n            w = self.glyphs[-1].frame.point(\"SE\").x # TODO need to scale?\n        except IndexError:\n            return 0\n        #return w * self.scale()\n        return w\n        return self.getGlyphFrames()[-1].frame.point(\"SE\").x\n    \n    def height(self):\n        asc = self.style._asc * self.scale()\n        if \"d\" in self.style.metrics:\n            asc += self.style.descender * self.scale()\n        return asc\n    \n    def textContent(self):\n        return self.text\n    \n    def fitField(self, field, value):\n        if field == \"tracking\":\n            self.tracking = value\n        elif field == \"wdth\":\n            self.variations[\"wdth\"] = value\n        elif field == \"fontSize\":\n            self.fontSize = value\n    \n    def binaryFit(self, width, field, minv, maxv, tries):\n        midv = (maxv-minv)*0.5+minv\n        self.fitField(field, maxv)\n        self.resetGlyphRun()\n        maxw = self.width()\n        self.fitField(field, midv)\n        self.resetGlyphRun()\n        midw = self.width()\n        self.fitField(field, minv)\n        self.resetGlyphRun()\n        minw = self.width()\n        if abs(maxw - midw) < 0.5:\n            #print(self.text, \">>>\", tries)\n            return\n        if width > midw:\n            self.binaryFit(width, field, midv, maxv, tries+1)\n        else:\n            self.binaryFit(width, field, minv, midv, tries+1)\n        #return super().fit(width)\n    \n    def testWidth(self, width, field, minv, maxv):\n        self.resetGlyphRun()\n        w = self.width()\n        if w == width:\n            print(\"VERY RARE\")\n            return True\n        elif w < width: # too small, which means we know it'll fit based on this property\n            self.binaryFit(width, field, minv, maxv, 0)\n            return True\n        else: # too big, so we maintain current value & let the caller know\n            return False\n    \n    def _fit(self, width):\n        if isinstance(width, Rect):\n            width = width.w\n\n        continuing = True\n        failed = False\n\n        if self.style.tracking > 0:\n            self.tracking = 0\n            if self.testWidth(width, \"tracking\", 0, self.style.tracking):\n                continuing = False\n        if continuing:\n            minwdth = self.style.variationLimits.get(\"wdth\", 1)\n            currentwdth = self.style.variations.get(\"wdth\", 1)\n            self.variations[\"wdth\"] = minwdth\n            if not self.testWidth(width, \"wdth\", minwdth, currentwdth):\n                #self.tracking = self.style.trackingLimit\n                if not self.testWidth(width, \"tracking\", self.style.trackingLimit, min(self.style.tracking, 0)):\n                    if self.style.varyFontSize:\n                        self.fontSize = 10\n                        if not self.testWidth(width, \"fontSize\", 10, self.style.fontSize):\n                            self.variations[\"wdth\"] = minwdth\n                            failed = True\n                    else:\n                        self.variations[\"wdth\"] = minwdth\n                        failed = True\n        if failed:\n            print(\"FAILED TO FIT >>>\", self.text, self.width(), width)\n        return self\n\n    def shrink(self):\n        #print(self.text, self.variations)\n        adjusted = False\n        default_step = 1\n        if self.tracking > 0 and self.tracking > self.style.trackingLimit:\n            self.tracking -= self.style.increments.get(\"tracking\", default_step)\n            adjusted = True\n        else:\n            for k, v in self.style.variationLimits.items():\n                if self.variations[k] > self.style.variationLimits[k]:\n                    self.variations[k] -= self.style.increments.get(k, default_step)\n                    adjusted = True\n                    break\n        if not adjusted and self.tracking > self.style.trackingLimit:\n            self.tracking -= self.style.increments.get(\"tracking\", default_step)\n            adjusted = True\n        if not adjusted and self.style.varyFontSize:\n            self.fontSize -= 1\n            self.tracking = self.style.tracking\n            adjusted = True\n        if not adjusted and self.style.narrower:\n            self.setStyle(self.style.narrower)\n            adjusted = True\n        if not adjusted and self.style.preventHwid == False and \"hwid\" not in self.features:\n            self.features[\"hwid\"] = True\n            self.tracking = self.style.tracking # reset to widest\n            self.resetGlyphRun()\n            #self.glyphs = self.hb.glyphs(self.variations, self.features)\n            adjusted = True\n        self.resetGlyphRun()\n        return adjusted\n    \n    def scalePenToStyle(self, glyph, in_pen, idx):\n        s = self.scale()\n        t = Transform()\n        try:\n            bs = self.style.baselineShift[idx]\n        except:\n            bs = self.style.baselineShift\n        \n        if callable(bs):\n            t = t.translate(0, bs(idx))\n        else:\n            try:\n                t = t.translate(0, bs[idx])\n            except:\n                try:\n                    t = t.translate(0, bs)\n                except:\n                    pass\n        \n        t = t.scale(s)\n        s = self.scale()\n        if s > 0:\n            t = t.translate(glyph.frame.x/s, glyph.frame.y/s)\n\n        out_pen = P()\n        tp = TransformPen(out_pen, (t[0], t[1], t[2], t[3], t[4], t[5]))\n        ip = P().record(in_pen)\n        if self.style.mods:\n            mod_data = self.style.mods.get(glyph.name)\n            if mod_data is None and \"_wildcard\" in self.style.mods:\n                mod_data = self.style.mods[\"_wildcard\"]\n            if mod_data is not None:\n                w, mod = mod_data\n                mod(-1, ip)\n        ip.replay(tp)\n        if self.style.rotate:\n            out_pen.rotate(self.style.rotate)\n        \n        # TODO this shouldn't be necessary\n        # if True:\n        #     valid_values = []\n        #     for (move, pts) in out_pen.value:\n        #         if move != \"addComponent\":\n        #             valid_values.append((move, pts))\n        #     out_pen.value = valid_values\n\n        return out_pen\n    \n    def _emptyPenWithAttrs(self):\n        #attrs = dict(fill=self.style.fill)\n        #if self.style.stroke:\n        #    attrs[\"stroke\"] = dict(color=self.style.stroke, weight=self.style.strokeWidth)\n        dp = P().f(self.style.fill)\n        if self.style.stroke:\n            dp.s(self.style.stroke).sw(self.style.strokeWidth)\n        return dp\n    \n    def buildLayeredGlyph(self, idx, glyph, output, layer, frame):\n        layerGlyph = P().record(layer)\n        if layerGlyph.v.value:\n            output.append(layerGlyph)\n        \n        layerGlyph.data(glyphName=f\"{glyph.name}_layer_{idx}\")\n\n        #print(\">>>>>>>>>>>>\", layer.method)\n\n        if layer.method == \"drawPathSolid\":\n            layerGlyph.f(layer.data[\"color\"])\n        else:\n            gradientGlyph = P()\n            if layer.method == \"drawPathLinearGradient\":\n                (gradientGlyph\n                    .line([layer.data[\"pt1\"], layer.data[\"pt2\"]])\n                    .fssw(-1, 0, 2)\n                    #.translate(frame.x, 0)\n                    )\n            elif layer.method == \"drawPathSweepGradient\":\n                gradientGlyph.moveTo(layer.data[\"center\"])\n            elif layer.method == \"drawPathRadialGradient\":\n                gradientGlyph.line([layer.data[\"startCenter\"], layer.data[\"endCenter\"]])\n            else:\n                print(\">\", layer.method)\n                gradientGlyph.rect(frame)\n            \n            (layerGlyph\n                .f(-1)\n                .attr(COLR=[layer.method, layer.data])\n                .data(substructure=gradientGlyph))\n    \n    def addBRGlyphDrawings(self, glyphs):\n        ax = 0\n        surface = BRPathCollectorSurface()\n\n        self.style.font._brFont.setLocation(self.variations)\n\n        if self.style.palette:\n            p = self.style.palette\n            if isinstance(p, int):\n                palette = self.style.font._brFont.getPalette(p)\n            else:\n                palette = p\n        else:\n            palette = None\n\n        with surface.canvas((0, 0, 1000, 1000)) as canvas:\n            for glyph in glyphs:\n                frame = Rect(\n                    ax + glyph.dx,\n                    glyph.dy,\n                    glyph.ax,\n                    self.style._asc) # how does ay play in?\n                \n                output = P().data(glyphName=glyph.name, frame=frame)\n\n                with canvas.savedState():\n                    #canvas.translate(glyph.dx, glyph.dy)\n\n                    self.style.font._brFont.drawGlyph(glyph.name, canvas, palette=palette)\n\n                    layers = canvas.paths\n\n                    if isinstance(layers, BRPathCollectorRecordingPen):\n                        if layers.method == \"drawPathSolid\": # trad font\n                            output.record(layers).f(layers.data[\"color\"])\n                            layers = None\n                        else:\n                            layers = [layers]\n                    \n                    if layers:\n                        for idx, layer in enumerate(layers):\n                            self.buildLayeredGlyph(idx, glyph, output, layer, frame)\n                    \n                    canvas.paths = []\n\n                #canvas.translate(glyph.ax, glyph.ay)\n\n                glyph.glyphDrawing = output\n                #ax += glyph.ax\n\n    def pens(self) -> P:\n        \"\"\"\n        Vectorize text into a `P`, such that each glyph (or ligature) is represented by a single `P` (or a `P` in the case of a color font, which will then nest a `P` for each layer of that color glyph)\n        \"\"\"\n\n        # Guess this has been here for years but it seems to be redundant?\n        #self.resetGlyphRun()\n\n        colrv1 = self.style.font._colrv1\n        brFont = self.style.font._brFont\n\n        if brFont:\n            self.addBRGlyphDrawings(self.glyphs)\n\n        elif not self.style.no_shapes:\n            pass\n            #print(\"ct.getGlyphDrawings\")\n            #print(self.glyphs[0].glyphDrawing)\n            #glyphNames = [g.name for g in self.glyphs]\n            #glyphDrawings = list(self.style.font.font.getGlyphDrawings(glyphNames, True))\n            #for glyph, glyphDrawing in zip(self.glyphs, glyphDrawings):\n            #    glyph.glyphDrawing = glyphDrawing\n        \n        pens = P()\n        for idx, g in enumerate(self.glyphs):\n\n            # TODO this is sketchy but seems to correct\n            # some line-spacing issues with arabic?\n            norm_frame = g.frame\n            norm_frame = Rect(g.frame.x, 0, g.frame.w, self.style._asc*self.scale())\n\n            dp_atom = self._emptyPenWithAttrs()\n            if self.style.no_shapes:\n                if callable(self.style.show_frames):\n                    dp_atom.record(P().rect(self.style.show_frames(g.frame)).outline(4))\n                else:\n                    dp_atom.record(P().rect(g.frame).outline(1 if self.style.show_frames is True else self.style.show_frames))\n                \n                dp_atom.data(\n                    frame=norm_frame,\n                    glyphName=g.name,\n                    glyphCluster=g.cluster,\n                    #glyphID=g.gid,\n                )\n                # dp_atom.typographic = True\n                # dp_atom.addFrame(norm_frame)\n                # dp_atom.glyphName = g.name\n            \n            elif not brFont and isinstance(g.glyphDrawing, GlyphDrawing):\n                dp_atom.v.value = self.scalePenToStyle(g, g.glyphDrawing.path, idx).v.value\n                \n                if \"d\" in self.style.metrics:\n                    dp_atom.translate(0, self.style.descender*self.scale())\n                \n                dp_atom.data(\n                    frame=norm_frame,\n                    glyphName=g.name,\n                    glyphCluster=g.cluster,\n                    #glyphID=g.gid,\n                )\n\n                if self.style.show_frames:\n                    if callable(self.style.show_frames):\n                        #dp_atom.record(P().rect(self.style.show_frames(g.frame)).outline(4))\n                        dp_atom.rect(self.style.show_frames(g.frame))\n                    else:\n                        dp_atom.record(P().rect(g.frame).outline(1 if self.style.show_frames is True else self.style.show_frames))\n                        #dp_atom.rect(g.frame)\n                if self.style.q2c:\n                    dp_atom.q2c()\n                if self.style.removeOverlap:\n                    dp_atom.removeOverlap()\n\n            elif brFont:\n                dp_atom = g.glyphDrawing\n                dp_atom.layered = len(dp_atom) > 1 or colrv1\n\n                for idx, layer in enumerate(dp_atom):\n                    layer.v.value = self.scalePenToStyle(g, layer, idx).v.value\n\n                    ss = layer.data(\"substructure\")\n                    if ss:\n                        ss.v.value = self.scalePenToStyle(g, ss, idx).v.value\n                \n                if not dp_atom.layered:\n                    dp_atom = dp_atom[0]\n                \n                dp_atom.data(\n                   frame=norm_frame,\n                   glyphName=g.name)\n\n                if self.style.q2c:\n                    dp_atom.q2c()\n                if self.style.removeOverlap:\n                    dp_atom.removeOverlap()\n                \n            else:\n                print(\"HERE!\")\n                # dp_atom = P()\n                # dp_atom.layered = True\n                # for lidx, layer in enumerate(g.glyphDrawing.layers):\n                #     dp_layer = self._emptyPenWithAttrs()\n                #     #dp_layer.value = layer[0].value\n                #     dp_layer.v.value = self.scalePenToStyle(g, layer[0], idx).v.value\n                #     if isinstance(self.style.palette, int):\n                #         dp_layer.f(self.style.font.font.colorPalettes[self.style.palette][layer[1]])\n                #     else:\n                #         dp_layer.f(self.style.palette[layer[1]])\n                #     if len(dp_layer.v.value) > 0:\n                #         #dp_layer.addFrame(g.frame, typographic=True)\n                #         dp_layer.data(glyphName=f\"{g.name}_layer_{lidx}\")\n                #         #dp_layer.glyphName = \n                #         dp_atom += dp_layer\n                \n                # dp_atom.data(\n                #     frame=norm_frame,\n                #     glyphName=g.name\n                # )\n                \n                # dp_atom.addFrame(norm_frame, typographic=True)\n                # dp_atom.glyphName = g.name\n            \n            #dp_atom._parent = pens\n            if self.style.meta:\n                dp_atom.data(**self.style.meta)\n            \n            pens.append(dp_atom)\n        \n        if self.style.cluster:\n            def cluster(p:P):\n                first = p[0]\n                glyphName = \"+\".join([x.data(\"glyphName\") for x in p])\n                for r in p[1:]:\n                    first.record(r)\n                return first.data(glyphName=glyphName)\n\n            pens = (pens\n                .partition(lambda p: p.data(\"glyphCluster\"))\n                .map(cluster))\n        \n        if self.style.postTracking != 0:\n            #print(self.style.postTracking * self.style.fontSize/1000)\n            pens.track(self.style.postTracking * self.style.fontSize/1000)\n\n        if self.style.reverse:\n            pens.reversePens()\n\n        pens.data(**self.style.data)\n\n        ro = pens\n        if self.style.annotate:\n            ro._stst = self\n        return ro\n\n    def pen(self, frame=True) -> P:\n        \"\"\"\n        Vectorize all text into single `P`\n        \"\"\"\n        return self.pens().pen()\n    \n    def instance(self, output_path, remove_overlaps=False, freeze=False, freeze_suffix=None):\n        args = [\"fonttools\", \"varLib.instancer\", self.style.font.path.absolute()]\n        \n        for k,v in self.variations.items():\n            args.append(f\"{k}={v}\")\n        \n        args.extend([\"-o\", output_path])\n        \n        if remove_overlaps:\n            args.append(\"--remove-overlaps\")\n        \n        run_with_check(args)\n\n        if freeze:\n            enabled_features = []\n            for k,v in self.features.items():\n                if v:\n                    enabled_features.append(k)\n            \n            features = \",\".join(enabled_features)\n            args = [\"pyftfeatfreeze\", \"-f\", features]\n            if freeze_suffix:\n                args.extend([\"-S\", \"-U\", freeze_suffix])\n            \n            args.append(output_path)\n            run_with_check(args)\n            \n            frozen_otf = Path(str(output_path) + \".featfreeze.otf\")\n            copy2(frozen_otf, output_path)\n            frozen_otf.unlink()\n        \n        return Font(str(output_path))\n\nclass SegmentedString(FittableMixin):\n    def __init__(self, text, styles):\n        self.text_info = TextInfo(text)\n        self.strings = []\n        self.segment_data = []\n        for segmentText, segmentScript, segmentBiDiLevel, firstCluster in self.text_info._segments:\n            self.strings.append(StyledString(segmentText, styles[segmentScript]))\n            cluster_data = []\n            for index, char in enumerate(segmentText, firstCluster):\n                cluster_data.append(\n                    dict(index=index, char=char, unicode=f\"U+{ord(char):04X}\",\n                        unicodeName=unicodedata.name(char, \"?\"), script=segmentScript,\n                        bidiLevel=segmentBiDiLevel, dir=[\"LTR\", \"RTL\"][segmentBiDiLevel % 2])\n                )\n            self.segment_data.append(cluster_data)\n    \n    def width(self):\n        return sum([s.width() for s in self.strings])\n    \n    def height(self):\n        return max([s.height() for s in self.strings])\n    \n    def textContent(self):\n        return \"-\".join([s.textContent() for s in self.strings])\n\n    def shrink(self):\n        adjusted = False\n        for s in self.strings:\n            adjusted = s.shrink() or adjusted\n        return adjusted\n\n    def pens(self, flat=True):\n        pens = P()\n        x_off = 0\n        for s in self.strings:\n            dps = s.pens()\n            #if dps.layered:\n            #    pens.layered = True\n            dps.translate(x_off, 0)\n            if flat:\n                pens.extend(dps._els)\n            else:\n                if s.style.lang:\n                    dps.data(lang=s.style.lang)\n                pens.append(dps)\n            x_off += dps.ambit().w\n        return pens"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/richtext.py",
    "content": "import re\n\nfrom coldtype.runon.path import P\nfrom coldtype.text.composer import Graf, GrafStyle, Lockup\nfrom coldtype.text.reader import StyledString, Style\nfrom coldtype.color import hsl\n\nfrom pathlib import PurePath\nfrom typing import Optional, List, Callable, Tuple, Union\nfrom functools import reduce\n\ntry:\n    from pygments import highlight\n    from pygments.lexers import PythonLexer\n    from pygments.formatter import Formatter\n    from pygments.token import Token\nexcept ImportError:\n    highlight = None\n    pass\n\nclass RichText(P):\n    \"\"\"Very experimental module to support rich-text from annotated strings, like a super-minimal-but-open-ended subset of markdown, inspired by the way rich text is built up in the time.nle.premiere DPS subclass in coldtype\"\"\"\n    def __init__(self,\n        rect,\n        text,\n        render_text_fn:Union[dict, Callable[[str, List[str]], Tuple[str, Style]]],\n        fit=None,\n        graf_style=None,\n        leading=20,\n        tag_delimiters=[\"[\", \"]\"],\n        visible_boundaries=[\" \"],\n        invisible_boundaries=[],\n        union_styles=True,\n        spacer=\"¶\",\n        strip=True,\n        strip_lines=False):\n\n        super().__init__()\n        \n        self.tag_delimiters = tag_delimiters\n        self.visible_boundary_chars = visible_boundaries\n        self.invisible_boundary_chars = invisible_boundaries\n        self.union_styles = union_styles\n        self.spacer = spacer\n        \n        if isinstance(text, PurePath):\n            text = text.read_text()\n        if strip:\n            text = text.strip()\n        \n        if strip_lines:\n            text = \"\\n\".join([l.strip() for l in text.split(\"\\n\")])\n        \n        self._els = self.parse_block(text, render_text_fn, rect, fit, graf_style or leading)._els\n\n    def parse_block(self, txt, render_text_fn, rect, fit, graf_style):\n        parsed_lines = []\n        alt_parsed_lines = []\n\n        for line in txt.splitlines():\n            line_meta = []\n            line_result = []\n\n            i = 0\n            in_tag = False\n            bnd_char = \"\"\n            si = 0\n            slugs = {0:\"\"}\n            metas = {0:\"\"}\n            bnds = {0:\"\"}\n\n            while i < len(line):\n                if in_tag:\n                    if line[i] == self.tag_delimiters[1]:\n                        in_tag = False\n                    else:\n                        metas[si] += line[i]\n                elif line[i] == self.tag_delimiters[0]:\n                    in_tag = True\n                \n                elif line[i] in self.visible_boundary_chars or line[i] in self.invisible_boundary_chars:\n                    bnd_char = line[i]\n                    bnds[si] = bnd_char\n                    si += 1\n                    slugs[si] = \"\"\n                    metas[si] = \"\"\n                    bnds[si] = \"\"\n                else:\n                    slugs[si] += line[i]\n                i += 1\n\n            if not list(slugs.values())[-1]:\n                line_meta = list(metas.values())[-1]\n                last_key = list(slugs.keys())[-1]\n                del slugs[last_key]\n                bnds[si-1] = \"\"\n            else:\n                line_meta = []\n            \n            alt_line_result = []\n            for i, slug in slugs.items():\n                b = bnds[i]\n                if b in self.invisible_boundary_chars:\n                    b = \"\"\n                styles = []\n                if metas[i]:\n                    styles.append(metas[i])\n                if line_meta:\n                    styles.append(line_meta)\n                alt_line_result.append([slug + b, styles])\n            alt_parsed_lines.append(alt_line_result)\n\n        parsed_lines = []\n        for pl in alt_parsed_lines:\n            #print(\">\", pl)\n            if pl:\n                parsed_lines.append(pl)\n            elif self.spacer:\n                parsed_lines.append([[self.spacer, [\"blank\"]]])\n\n        lines = []\n        groupings = []\n\n        #from pprint import pprint\n        #pprint(parsed_lines)\n\n        for idx, line in enumerate(parsed_lines):\n            slugs = []\n            texts = []\n            for txt, styles in line:\n                if callable(render_text_fn):\n                    ftxt, style = render_text_fn(txt, styles)\n                else:\n                    style = styles[0] if len(styles) > 0 else \"default\"\n                    ftxt = txt\n                    if style in render_text_fn:\n                        style = render_text_fn[style]\n                    else:\n                        style = render_text_fn[\"default\"]\n                texts.append([ftxt, idx, style, styles])\n\n            grouped_texts = []\n            idx = 0\n            done = False\n            while not done:\n                style = texts[idx][2]\n                grouped_text = [texts[idx]]\n                style_same = True\n                while style_same:\n                    idx += 1\n                    try:\n                        next_style = texts[idx][2]\n                        if next_style == style and self.union_styles:\n                            style_same = True\n                            grouped_text.append(texts[idx])\n                        else:\n                            style_same = False\n                            grouped_texts.append(grouped_text)\n                    except IndexError:\n                        done = True\n                        style_same = False\n                        grouped_texts.append(grouped_text)\n\n            for gt in grouped_texts:\n                full_text = \"\".join([t[0] for t in gt])\n                styles = gt[0][3]\n                style = gt[0][2].mod()\n                style.data = dict(style_names=styles, txt=full_text)\n                slugs.append(StyledString(full_text, style))\n            groupings.append(grouped_texts)\n            lines.append(slugs)\n\n        lockups = []\n        for line in lines:\n            lockup = Lockup(line, preserveLetters=True, nestSlugs=True)\n            if fit:\n                lockup.fit(fit)\n            lockups.append(lockup)\n        \n        graf = Graf(lockups, rect, graf_style, no_frames=True)\n        pens = graf.pens()#.align(rect, x=\"minx\")\n        pens._frame = None\n\n        pens.reversePens()\n        for line in pens:\n            line.reversePens()\n            for slug in line:\n                slug.reversePens()\n        return pens.zero()\n    \n    def findStyle(self, style, modfn):\n        return self.find(lambda p: style in p.data(\"style_names\", []), modfn)\n    \n    def findText(self, text, modfn, flags=re.I):\n        return self.find(lambda p: re.match(text, p.data(\"txt\", \"\"), flags=flags), modfn)\n    \n    def removeSpacers(self, spacer=None, clean=True):\n        if not spacer and self.spacer:\n            spacer = self.spacer\n        \n        for line in self._els:\n            txt = reduce(lambda acc, p: p.data(\"txt\", \"\") + acc, line, \"\")\n            if txt == spacer:\n                line._els = []\n        \n        if clean:\n            return self.removeBlanks()\n        \n        return self\n\n\nif highlight:\n\n    class ColdtypeFormatter(Formatter):\n        def format(self, tokensource, outfile):\n            for ttype, token in tokensource:\n                if ttype != Token.Text:\n                    tt = re.sub(r\"^Token\\.\", \"\", str(ttype))\n                    outfile.write(f\"¬{token}≤{tt}≥\")\n                else:\n                    outfile.write(token)\n    \n\n    class PythonCode(RichText):\n        def __init__(self,\n            rect,\n            text,\n            render_text_fn:Callable[[str, List[str]], Tuple[str, Style]],\n            fit=None,\n            graf_style=None,\n            leading=20):\n\n            if isinstance(text, PurePath):\n                text = text.read_text()\n\n            txt = highlight(text, PythonLexer(), ColdtypeFormatter())\n            super().__init__(\n                rect, txt, render_text_fn,\n                fit=fit,\n                graf_style=graf_style or leading,\n                tag_delimiters=[\"≤\", \"≥\"],\n                visible_boundaries=[],\n                invisible_boundaries=[\"¬\"])\n        \n        def DefaultStyles(r, b, bi):\n            \"\"\"regular, bold, bold-italic\"\"\"\n            return {\n                \"Keyword\": (bi, hsl(0.9, s=0.6)),\n                \"Keyword.Namespace\": (b, hsl(0.2, s=1)),\n                \"Name.Namespace\": (b, hsl(0.55, s=1)),\n                \"Name.Builtin\": (bi, hsl(0.05, s=1)),\n                \"Name.Function\": (bi, hsl(0.65, s=1, l=0.7)),\n                \"Name.Decorator\": (bi, hsl(0.2, 1)),\n                \"Name\": (b, hsl(0.45, 0.7)),\n                \"Operator\": (b, hsl(0.6, s=1)),\n                \"Operator.Word\": (b, hsl(0.9)),\n                \"Punctuation\": (b, hsl(0.8)),\n                \"Literal.String.Double\": (r, hsl(0.15, s=0.7)),\n                \"Literal.String.Affix\": (bi, hsl(0.85, s=1)),\n                \"Literal.String.Interpol\": (b, hsl(0.05, s=1)),\n                \"Literal.String.Doc\": (r, hsl(0.6, l=0.4)),\n                \"Literal.Number.Float\": (r, hsl(0.9, s=0.7)),\n                \"Literal.Number.Integer\": (r, hsl(0.45)),\n                \"Comment.Single\": (r, (0.3)),\n                \"default\": (r, 0.5),\n            }\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/text/shaper.py",
    "content": "import re\nimport unicodedata\nfrom itertools import groupby\n\ndef between(c, a, b):\n    return ord(a) <= ord(c) <= ord(b)\n\nLATIN = lambda c: between(c, '\\u0000', '\\u024F')\nKATAKANA = lambda c: between(c, '\\u30A0', '\\u30FF')\nHIRAGANA = lambda c: between(c, '\\u3040', '\\u309F')\nCJK = lambda c: between(c, '\\u4E00', '\\u9FFF')\n\nmodes = [\n    \"LATIN\",\n    \"ARABIC\",\n    \"HEBREW\",\n    \"SPACE\",\n    \"CJK\",\n    \"HANGUL\",\n    \"KATAKANA\",\n]\n\ndef segment(txt, mode=\"LATIN\", includeNames=False, print_characters=False):\n    current_mode = mode\n    runs = [[mode]]\n    for i, c in enumerate(txt):\n        try:\n            n = unicodedata.name(c)\n        except ValueError:\n            n = \"PRIVATE\"\n        \n        if print_characters:\n            print(\">\", n)\n        \n        for m in modes:\n            if m in n:\n                if current_mode != m:\n                    current_mode = m\n                    runs.append([m])\n        runs[-1].append((n, c) if includeNames else c)\n    \n    if len(runs[0]) == 0:\n        runs = runs[1:]\n    \n    for idx, (mode, *run) in enumerate(runs):\n        p = runs[idx-1] if idx > 0 else None\n        n = runs[idx+1] if len(runs) > idx+1 else None\n        if p and n:\n            if mode == \"SPACE\" and p[0] == n[0]:\n                runs[idx][0] = p[0]\n    \n    grouped_runs = []\n    for k, g in groupby(runs, lambda e: e[0]):\n        txt = \"\".join([\"\".join(g[1:]) for g in list(g)])\n        if txt:\n            found_modes = set()\n            for c in txt:\n                try:\n                    n = unicodedata.name(c)\n                except ValueError:\n                    n = \"PRIVATE\"\n                for m in modes:\n                    if m in n:\n                        found_modes.add(m)\n            grouped_runs.append((found_modes, txt))\n    \n    # reverse number ranges in arabic\n    for idx, (cats, line) in enumerate(grouped_runs):\n        if \"ARABIC\" in cats or \"HEBREW\" in cats:\n            grouped_runs[idx] = (cats, re.sub(\"[0-9]+\", lambda m: m.group()[::-1], line))\n\n    return grouped_runs\n\nif __name__ == \"__main__\":\n    from pprint import pprint\n    s = \"ABC (جاف + رطب (ما قبل\"\n    s = \"(رطب (ما قبل\"\n    #s = \"Ali الملخبط Boba\"\n    s = \"وصل الإستيرِوﬂLim/Satلل\"\n    runs = segment(s, \"LATIN\")\n    pprint(runs)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/__init__.py",
    "content": "from coldtype.timing.timeable import Timeable, Easeable\nfrom coldtype.timing.timeline import Timeline\n\n\nclass Frame(Easeable):\n    \"\"\"\n    Container for information about a frame\n\n    Frame is the type of the first argument passed to all @animation rendering functions, usually abbreviated as `f`, i.e.\n\n    .. code:: python\n\n        @animation()\n        def render(f:Frame):\n            pass\n    \n    (where `Frame` is an optional type-hint if you're looking to leverage autocomplete in your editor)\n    \"\"\"\n    def __init__(self, i, anim, cursor=None, midi=None, recording=None):\n        if isinstance(anim, Timeline):\n            self.i = i % anim.duration\n        else:\n            self.i = i % anim.t.duration\n        \n        self.a = anim\n        self.c = cursor\n        self.m = midi\n        self.rec = recording\n    \n    def adj(self, off):\n        return Frame(self.i+off, self.a)\n    \n    # Easeable interface\n\n    @property\n    def t(self) -> Timeline: return self.a.t if hasattr(self.a, \"t\") else self.a\n    \n    @property\n    def _ts(self): return None\n\n    @property\n    def autowrap(self): return True\n    \n    def last_render(self, modfn=lambda img: img):\n        if not self.a.composites:\n            raise Exception(\"set `composites=1` on your @animation\")\n        if self.a.last_result:\n            return modfn(self.a.last_result)\n        else:\n            return None\n    \n    lastRender = last_render"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/audio.py",
    "content": "import math\nfrom pathlib import Path\nfrom coldtype.runon.path import P\n\ntry:\n    import numpy as np\nexcept ImportError:\n    np = None\n\ntry:\n    import soundfile as sf\nexcept:\n    sf = None\n\nclass Wavfile():\n    def __init__(self, path, fps=30):\n        p = Path(str(path)).expanduser()\n        self.sf, self.sf_fs = sf.read(str(p))\n        self.fps = fps\n        self.hz = self.sf_fs\n        self.samples_per_frame = self.hz / fps\n        self.path = path\n        self.peaks = self.sf\n        self.framelength = int(round(len(self.peaks) / self.samples_per_frame))\n\n        max_frame_amp = 0\n        for i in range(0, self.framelength):\n            amp = self.amp(i)\n            if amp > max_frame_amp:\n                max_frame_amp = amp\n        self.max_frame_amp = max_frame_amp\n\n    def calc_peaks(self):\n        snd = self.sf / (2.**15)\n        s1 = snd[:, 0]\n        return s1\n\n    def samples_for_frame(self, i):\n        start_sample = math.floor(i * self.samples_per_frame)\n        end_sample = math.floor(start_sample + self.samples_per_frame)\n        return self.peaks[start_sample:end_sample]\n\n    def amp(self, i):\n        return np.average(np.fabs(self.samples_for_frame(i)))\n    \n    def frame_waveform(self, fi, r, inc=1, pen=None):\n        wave = pen or P()\n        samples = self.samples_for_frame(fi)[::inc]\n        ww = r.w/len(samples)\n        wh = r.h\n        for idx, w in enumerate(samples):\n            if idx == 0:\n                wave.moveTo((r.x, w[0]*wh))\n            else:\n                wave.lineTo((idx*ww, w[0]*wh))\n        wave.endPath()\n        wave.f(None).s(1).sw(2)\n        return wave\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/clip.py",
    "content": "import re\nfrom enum import Enum\nfrom coldtype.timing.easing import ease\nfrom coldtype.timing.timeable import Timeable\n\n\nclass ClipType(Enum):\n    ClearScreen = \"ClearScreen\"\n    NewLine = \"NewLine\"\n    GrafBreak = \"GrafBreak\"\n    Blank = \"Blank\"\n    Isolated = \"Isolated\"\n    JoinPrev = \"JoinPrev\"\n    Meta = \"Meta\"\n    EndCap = \"EndCap\"\n\n\nclass ClipFlags(Enum):\n    FadeIn = \"FadeIn\"\n    FadeOut = \"FadeOut\"\n\n\nclass Clip(Timeable):\n    def __init__(self, text, start, end, idx=None, track=0):\n        self.idx = idx\n        self.input_text = str(text)\n        self.text = text\n        self.start = start\n        self.end = end\n\n        self.styles = []\n        self.style_clips = []\n        self.position = 1\n        self.joined = False\n        self.joinPrev = None\n        self.joinNext = None\n        self.track = track\n        self.group = None\n        self.blank = False\n        self.blank_height = 20\n        self.inline_styles = []\n        self.inline_data = {}\n        self.flags = {}\n        self.type = ClipType.Isolated\n        self.symbol = None\n        self.symbol_position = 0\n\n        if self.text.startswith(\"^$\"):\n            symbol, rest = self.text.split(\"|\")\n            self.symbol = symbol[2:]\n            self.symbol_position = -2\n            self.text = rest\n        elif self.text.startswith(\"^\"):\n            symbol, rest = self.text.split(\"|\")\n            self.symbol = symbol[1:]\n            self.symbol_position = -1\n            self.text = rest\n        elif self.text.startswith(\"$\"):\n            symbol, rest = self.text.split(\"|\")\n            self.symbol = symbol[1:]\n            self.symbol_position = +1\n            self.text = rest\n\n        if self.text.startswith(\"*\"):\n            self.text = self.text[1:]\n            self.type = ClipType.ClearScreen\n        elif self.text.startswith(\"≈\"):\n            self.text = self.text[1:]\n            self.type = ClipType.NewLine\n        elif self.text.startswith(\"¶\"):\n            self.text = self.text[1:]\n            self.type = ClipType.GrafBreak\n        elif self.text.startswith(\"+\"):\n            self.text = self.text[1:]\n            self.type = ClipType.JoinPrev\n        elif self.text.startswith(\"µ:\"):\n            self.type = ClipType.Meta\n            self.text = self.text[2:]\n        elif self.text == \"•\":\n            self.type = ClipType.EndCap\n            self.text = \"\"\n        \n        parts = self.text.split(\":\")\n        inline_style_marker = parts.index(\"ß\") if \"ß\" in parts else -1\n        inline_data_marker = parts.index(\"∂\") if \"∂\" in parts else -1\n\n        if inline_style_marker > -1:\n            self.inline_styles = parts[inline_style_marker+1].split(\",\")\n        if inline_data_marker > -1:\n            qs = [q.split(\"=\") for q in parts[inline_data_marker+1].split(\"&\")]\n            for k, v in qs:\n                self.inline_data[k] = eval(v)\n        \n        self.text = parts[0]\n        self.text = self.text.replace(\"{colon}\", \":\")\n\n        #if \"ß\" in self.text:\n        #    parts = self.text.split(\":\")\n        #    self.text = parts[0]\n        #    self.inline_styles = parts[-1].split(\",\")\n        \n        #self.text = self.text.replace(\"§\", \"\\u200b\")\n        if self.text.startswith(\"§\"):\n            #self.text = \"\\u200b\"\n            self.text = self.text[1:]\n            #self.type = ClipType.JoinPrev\n            self.type = ClipType.NewLine\n            self.blank = True\n            try:\n                self.blank_height = float(self.text.strip())\n            except:\n                pass\n    \n        if self.text.startswith(\"∫\"):\n            self.text = \"\"\n            self.blank = True\n        \n        if not self.text:\n            self.blank = True\n            self.text = \"\"\n        \n        if self.text.startswith(\"ƒ\"):\n            r = r\"^([0-9]+)ƒ\"\n            self.text = self.text[1:]\n            value = 3\n            match = re.match(r, self.text)\n            if match:\n                value = int(match[1])\n                self.text = re.sub(r, \"\", self.text)\n            self.flags[ClipFlags.FadeIn] = value\n        \n        elif self.text.endswith(\"ƒ\"):\n            self.flags[ClipFlags.FadeOut] = 3\n        \n        self.original_text = str(self.text)\n    \n    def addJoin(self, clip, direction):\n        if direction == -1:\n            self.joinPrev = clip\n        elif direction == 1:\n            self.joinNext = clip\n    \n    def joinStart(self):\n        if self.joinPrev:\n            return self.joinPrev.joinStart()\n        else:\n            return self.start\n    \n    def joinEnd(self):\n        if self.joinNext:\n            return self.joinNext.joinEnd()\n        else:\n            return self.end\n    \n    def textForIndex(self, index):\n        txt = self.text\n        try:\n            txt = self.text.split(\"/\")[index]\n        except:\n            txt = self.text.split(\"/\")[-1]\n        return txt, self.addSpace\n    \n    def style_matching(self, txt):\n        try:\n            return next(c for c in self.style_clips if txt in c.text)\n        except StopIteration:\n            return None\n\n    def ftext(self):\n        txt = self.text\n        if self.type == ClipType.Isolated:\n            return \" \" + txt\n        else:\n            return txt\n    \n    def fade(self, default_fade=5):\n        if ClipFlags.FadeIn in self.flags:\n            return self.flags[ClipFlags.FadeIn]\n        else:\n            return default_fade\n    \n    def fadeIn(self, fi, easefn=\"seio\", fade_length=None, start=0):\n        if ClipFlags.FadeIn in self.flags or fade_length:\n            if fade_length:\n                fade = fade_length\n            else:\n                fade = self.flags[ClipFlags.FadeIn]\n            \n            if start == 0:\n                start_frame = self.start\n            elif start == -1:\n                start_frame = self.start - fade\n            \n            if fi < start_frame:\n                return -1\n            elif fi > start_frame + fade:\n                return 1\n            else:\n                fv = (fi - start_frame) / fade\n                a, _ = ease(easefn, fv)\n                return a\n        return -1\n    \n    def __repr__(self):\n        return \"<Clip:({:s}/{:04d}/{:04d}\\\"{:s}\\\")>\".format([\" -1\", \"NOW\", \" +1\"][int(self.position)+1], int(self.start), int(self.end), self.text)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/easing.py",
    "content": "import math\nimport easing_functions as ef\nfrom fontTools.misc.bezierTools import splitCubic, splitLine\n\nfrom typing import List\n\neases = dict(\n    cei=ef.CubicEaseIn,\n    ceo=ef.CubicEaseOut,\n    ceio=ef.CubicEaseInOut,\n    qei=ef.QuadEaseIn,\n    qeo=ef.QuadEaseOut,\n    qeio=ef.QuadEaseInOut,\n    eei=ef.ExponentialEaseIn,\n    eeo=ef.ExponentialEaseOut,\n    eeio=ef.ExponentialEaseInOut,\n    sei=ef.SineEaseIn,\n    seo=ef.SineEaseOut,\n    seio=ef.SineEaseInOut,\n    bei=ef.BounceEaseIn,\n    beo=ef.BounceEaseOut,\n    beio=ef.BounceEaseInOut,\n    eleo=ef.ElasticEaseOut,\n    elei=ef.ElasticEaseIn,\n    elieo=ef.ElasticEaseInOut,\n    eleio=ef.ElasticEaseInOut,\n\n    ci=ef.CubicEaseIn,\n    co=ef.CubicEaseOut,\n    cio=ef.CubicEaseInOut,\n    qi=ef.QuadEaseIn,\n    qo=ef.QuadEaseOut,\n    qio=ef.QuadEaseInOut,\n    ei=ef.ExponentialEaseIn,\n    eo=ef.ExponentialEaseOut,\n    eio=ef.ExponentialEaseInOut,\n    si=ef.SineEaseIn,\n    so=ef.SineEaseOut,\n    sio=ef.SineEaseInOut,\n    bi=ef.BounceEaseIn,\n    bo=ef.BounceEaseOut,\n    bio=ef.BounceEaseInOut,\n    elo=ef.ElasticEaseOut,\n    eli=ef.ElasticEaseIn,\n    elio=ef.ElasticEaseInOut)\n\nall_eases = [\"l\", *list(eases.keys())]\n\ndef curve_pos_and_speed(curve, x):\n    x1000 = x*1000\n    for idx, (action, pts) in enumerate(curve.value):\n        if action in [\"moveTo\", \"endPath\", \"closePath\"]:\n            continue\n        last_action, last_pts = curve.value[idx-1]\n        if action == \"curveTo\":\n            o = -1\n            a = last_pts[-1]\n            b, c, d = pts\n            if x1000 == a[0]:\n                o = a[1]/1000\n                eb = a\n                ec = b\n            elif x1000 == d[0]:\n                o = d[1]/1000\n                eb = c\n                ec = d\n            elif x1000 > a[0] and x1000 < d[0]:\n                e, f = splitCubic(a, b, c, d, x1000, isHorizontal=False)\n                ez, ea, eb, ec = e\n                o = ec[1]/1000\n            else:\n                continue\n            tangent = math.degrees(math.atan2(ec[1] - eb[1], ec[0] - eb[0]) + math.pi*.5)\n            #print(o, tangent)\n            if tangent >= 90:\n                t = (tangent - 90)/90\n            else:\n                t = tangent/90\n            if o != -1:\n                return o, t\n    raise Exception(\"No curve value found!\")\n\n\ndef ease(style, x):\n    \"\"\"\n    Though available as a general-purpose function, this logic is usually accessed through something like the `.progress` function on an animation or timeable.\n\n    Return two values — the first is the easing result at a given time x; the second is the tangent to that, if calculable (is not, atm, calculable for the mnemonics given)\n\n    for reference, easing mnemonics:\n\n    * cei = CubicEaseIn\n    * ceo = CubicEaseOut\n    * ceio = CubicEaseInOut\n    * qei = QuadEaseIn\n    * qeo = QuadEaseOut\n    * qeio = QuadEaseInOut\n    * eei = ExponentialEaseIn\n    * eeo = ExponentialEaseOut\n    * eeio = ExponentialEaseInOut\n    * sei = SineEaseIn\n    * seo = SineEaseOut\n    * seio = SineEaseInOut\n    * bei = BounceEaseIn\n    * beo = BounceEaseOut\n    * beio = BounceEaseInOut\n    * eleo = ElasticEaseOut\n    * elei = ElasticEaseIn,\n    * eleio = ElasticEaseInOut\n    \"\"\"\n    if style == \"linear\" or style == \"lin\" or style == \"l\":\n        return x, 0.5\n    \n    e = eases.get(style)\n\n    if e:\n        return e().ease(x), 0.5\n    elif hasattr(style, \"moveTo\"):\n        return style.ease_t(x), 0.5\n        return curve_pos_and_speed(style, x)\n    elif type(style).__name__ == \"Glyph\":\n        from coldtype.runon.path import P\n        p = P().glyph(style)\n        return p.ease_t(x), 0.5\n    elif False:\n        if style in easer_ufo:\n            return curve_pos_and_speed(P().glyph(easer_ufo[style]), x)\n        else:\n            raise Exception(\"No easing function with that mnemonic\")\n    else:\n        raise Exception(\"No easing function with that mnemonic\")\n\ndef _loop(t, times=1, cyclic=True, negative=False):\n    lt = t*times*2\n    ltf = math.floor(lt)\n    ltc = math.ceil(lt)\n    lt = lt - ltf\n    if cyclic and ltf%2 == 1:\n        if negative:\n            lt = -lt\n        else:\n            lt = 1 - lt\n    return lt, ltf\n\ndef applyRange(e, rng):\n    ra, rb = rng\n    if ra > rb:\n        e = 1 - e\n        rb, ra = ra, rb\n    return ra + e*(rb - ra)\n\ndef ez(t, easefn=\"eeio\", loops=0, cyclic=True, rng=(0, 1), **kwargs):\n    t = max(0, min(1, t))\n    if loops > 0:\n        t, _ = _loop(t, times=loops, cyclic=cyclic)\n\n    e, _ = ease(easefn, t)\n    if \"r\" in kwargs:\n        rng = kwargs[\"r\"]\n    \n    return applyRange(e, rng)\n\ndef cycle(i):\n    return all_eases[i%len(all_eases)]"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/midi.py",
    "content": "import math\n\nfrom collections import defaultdict\nfrom pathlib import Path\n\nfrom coldtype.timing.timeline import Timeline, Timeable\nfrom coldtype.timing.easing import ease, ez\n\n\ntry:\n    import mido\nexcept ImportError:\n    mido = None\n\n\nclass MidiTimeline(Timeline):\n    def __init__(self,\n        path,\n        duration=None,\n        fps=30,\n        bpm=None,\n        track=0,\n        rounded=True,\n        lookup={},\n        live=None\n        ):\n        if not mido:\n            print(\"please install mido library\")\n            return\n\n        def s2f(value):\n            if rounded:\n                return math.floor(value * fps)\n            else:\n                return value * fps\n\n        midi_path = path if isinstance(path, Path) else Path(path).expanduser()\n        self.midi_path = midi_path\n\n        try:\n            mid = mido.MidiFile(str(midi_path))\n        except FileNotFoundError:\n            print(\"FILE NOT FOUND\", midi_path)\n            mid = mido.MidiFile()\n        \n        events = []\n        open_notes = []\n        controls = {}\n        \n        self.mid = mid\n        self.time_signature = (4, 4)\n\n        if fps is None:\n            fps = 30\n\n        if bpm is None:\n            bpm = float(mido.tempo2bpm(self.find_tempo()))\n\n        for tidx, track in enumerate(mid.tracks):\n            cumulative_time = 0\n            events = []\n            open_notes = {}\n            for idx, msg in enumerate(track):\n                if hasattr(msg, \"note\"):\n                    delta_s = mido.tick2second(msg.time, mid.ticks_per_beat, mido.bpm2tempo(bpm))\n                    cumulative_time += delta_s\n                    o = open_notes.get(msg.note)\n                    if o != None:\n                        open_notes[msg.note] = None\n                        timeable = Timeable(\n                            s2f(o),\n                            s2f(cumulative_time),\n                            idx,\n                            name=str(msg.note),\n                            data=msg,\n                            timeline=self,\n                            track=tidx)\n                        events.append(timeable)\n                    \n                    if msg.type == \"note_on\" and msg.velocity > 0:\n                        open_notes[msg.note] = cumulative_time\n                \n                elif msg.is_cc():\n                    delta_s = mido.tick2second(msg.time, mid.ticks_per_beat, mido.bpm2tempo(bpm))\n                    cumulative_time += delta_s\n                    frame = s2f(cumulative_time)\n\n                    if msg.control not in controls:\n                        controls[msg.control] = {}\n                    \n                    controls[msg.control][frame] = msg.value\n\n        self.midi_file = mid\n        self.bpm = bpm\n        self.fps = fps\n        self.controls = controls\n        \n        if controls:\n            max_c_frame = 0\n            for c, frames in controls.items():\n                max_c_frame = max(max_c_frame, max(frames.keys()))\n            self._duration = max_c_frame\n        else:\n            try:\n                end = sorted(events, key=lambda e: e.end)[-1].end\n                self._duration = int(duration or end)\n            except IndexError:\n                self._duration = 1\n        \n        try:\n            self.min = min([int(n.name) for n in events])\n            self.max = max([int(n.name) for n in events])\n            self.notes = list(reversed(sorted(set(int(n.name) for n in events))))\n            self.spread = self.max - self.min\n        except ValueError:\n            self.min = 0\n            self.max = 0\n            self.notes = []\n            self.spread = 0\n\n        self.lookup = {}\n        if lookup:\n            self.register(lookup)\n\n        super().__init__(self._duration, self.fps, timeables=events)\n\n        for t in self.timeables:\n            t.track = self.notes.index(int(t.name))\n\n    def __bool__(self):\n        if self.midi_path.exists():\n            return True\n        else:\n            return False\n\n    @property\n    def duration(self):\n        return self._duration\n    \n    def find_tempo(self):\n        for track in self.mid.tracks:\n            for msg in track:\n                if msg.type == \"set_tempo\":\n                    return msg.tempo\n                elif msg.type == \"time_signature\":\n                    self.time_signature = (msg.numerator, msg.denominator)\n        return 500000 # 120 equivalent\n    \n    def register(self, lookup):\n        for k, v in lookup.items():\n            self.lookup[k] = v\n    \n    def ki(self, key, fi=None):\n        try:\n            if key in self.lookup:\n                return super().ki(self.lookup[key], fi)\n        except TypeError:\n            pass\n        \n        return super().ki(key, fi)\n    \n    def ci(self, control, default=0, fi=None):\n        fi = self._norm_held_fi(fi)\n\n        if control in self.controls:\n            frames = self.controls[control]\n            if fi in frames:\n                return frames[fi]/127\n            else:\n                _fi = fi\n                while _fi > 0:\n                    if _fi in frames:\n                        return frames[_fi]/127\n                    _fi -= 1\n                \n                # _fi = fi\n                # while _fi < self.duration:\n                #     if _fi in frames:\n                #         return frames[_fi]/127\n                #     _fi += 1\n        \n        return default"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/nle/.gitignore",
    "content": "test_read_ableton.xml"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/nle/ableton.py",
    "content": "from coldtype.timing import Timeline, Timeable\nfrom coldtype.helpers import sibling\n\nfrom pathlib import Path\nfrom functools import partial\nfrom lxml import etree\nimport gzip, math\n\nimport xml.dom.minidom as mini\nimport xml.etree.ElementTree as ET\n\n# DeviceChain/MainSequencer/ClipTimeable/ArrangerAutomation/Events/MidiClip/Notes/KeyTracks\n\ndef save_test_xml(x):\n    sibling(__file__, \"test_read_ableton.xml\").write_text(etree.tostring(x, pretty_print=True).decode())\n\n\ndef b2f(fpb, t):\n    return math.floor(t * fpb)\n\n\ndef b2ms(bpm, b):\n    return b * (60000 / bpm)\n\n\ndef midi_to_note_name(midi_number):\n    if not (0 <= midi_number <= 127):\n        return \"Invalid MIDI note number\"\n\n    note_names = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    note_index = midi_number % 12\n    octave = (midi_number // 12) - 2\n\n    note_name = note_names[note_index]\n    return f\"{note_name}{octave}\"\n\n\ndef note_name_to_midi(note_name):\n    note_names = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B']\n    \n    note = note_name[:-1]\n    octave = int(note_name[-1])\n    \n    if note not in note_names:\n        return \"Invalid note name\"\n    \n    note_index = note_names.index(note)\n    midi_number = (octave + 2) * 12 + note_index\n    \n    if not (0 <= midi_number <= 127):\n        return \"MIDI number out of range\"\n    \n    return midi_number\n\n\nstrings = {\n    \"D4\": 1, \"F4\": 1, \"G4\": 1,\n    \"C4\": 2,\n    \"G3\": 3, \"G#3\": 3, \"A3\": 3, \"B3\": 3,\n    \"C3\": 4, \"D3\": 4, \"E3\": 4, \"F3\": 4,\n    \"C2\": 0,\n}\n\ndef string_and_note_to_fret(string, note):\n    return {\n        0: {\n            \"C2\": 0,\n        },\n        1: {\n            \"D4\": 0, \"D#4\": 1, \"E4\": 2, \"F4\": 3, \"F#4\": 4,\"G4\": 5,\n        },\n        2: {\n            \"C4\": 0, \"C#4\": 1, \"D4\": 2, \"E4\": 4,\n        },\n        3: {\n            \"G3\": 0, \"G#3\": 1, \"A3\": 2, \"A#3\": 3, \"B3\": 4, \"C4\": 5,\n        },\n        4: {\n            \"C3\": 0, \"C#3\": 1, \"D3\": 2, \"D#3\": 3, \"E3\": 4, \"F3\": 5\n        }\n    }[string][note]\n\n\nclass AbletonMIDINote(Timeable):\n    def __repr__(self):\n        return f\"<AbletonMIDINote {self.name},{self.start},{self.end}/>\"\n\n\nclass AbletonMIDIClip(Timeline):\n    def __init__(self, b2ff, clip):\n        clip_name = clip.find(\"Name\").attrib[\"Value\"]\n        clip_start = float(clip.find(\"CurrentStart\").attrib[\"Value\"])\n        clip_end = float(clip.find(\"CurrentEnd\").attrib[\"Value\"])\n\n        timeables_by_id = dict()\n\n        super().__init__(name=clip_name, findWords=False, start=b2ff(clip_start), end=b2ff(clip_end))\n\n        for idx, kt in enumerate(clip.findall(\"Notes/KeyTracks/KeyTrack\")):\n            midi_key = kt.find(\"MidiKey\").attrib[\"Value\"]\n            for jdx, note in enumerate(kt.find(\"Notes\")):\n                na = dict(note.attrib).copy()\n                #if na[\"IsEnabled\"]:\n                nt = clip_start + float(na[\"Time\"])\n                nd = float(na[\"Duration\"])\n                note_id = na[\"NoteId\"]\n                vel = float(na[\"Velocity\"])\n                note_name = midi_to_note_name(int(midi_key))\n                \n                string = strings.get(note_name, None)\n                if string is None:\n                    string = 0\n\n                thumb = False\n\n                fret = string_and_note_to_fret(string, note_name)\n                end = b2ff(nt+nd)\n                if note_name == \"G4\" and vel < 100:\n                    end = b2ff(nt+nd+0.25)\n                    string = 5\n                    fret = 0\n                    thumb = True\n                \n                note = AbletonMIDINote(b2ff(nt), end, jdx, midi_key, id=note_id, data=dict(velocity=vel, note=note_name, string=string, fret=fret, thumb=thumb))\n                self.timeables.append(note)\n                timeables_by_id[note_id] = note\n        \n        for idx, el in enumerate(clip.findall(\"Notes/PerNoteEventStore/EventLists/PerNoteEventList\")):\n            note_id = el.attrib[\"NoteId\"]\n            note = timeables_by_id[note_id]\n            cc = el.attrib[\"CC\"]\n            if cc == \"-2\":\n                adjusted_negatives = False\n                string = note.data.get(\"string\")\n                start_note = int(note.name)\n                start_note_name = midi_to_note_name(start_note)\n\n                for jdx, event in enumerate(el.find(\"Events\")):\n                    offset = float(event.attrib[\"TimeOffset\"])\n                    value = float(event.attrib[\"Value\"])\n                    \n                    if offset < 0.01 and abs(value) > 1:\n                        note.data[\"hammer\"] = True\n                        continue\n                    \n                    if value < 0.01 and not adjusted_negatives: # pull-offs, always?\n                        if start_note_name == \"D4\":\n                            adjusted_negatives = True\n                            string = string + 1\n                            note.data[\"string\"] = string\n                            note.data[\"fret\"] = 2\n\n                    note_diff = value / 170\n                    new_note = int(start_note) + round(note_diff)\n                    new_note_name = midi_to_note_name(new_note)\n                    #print(midi_to_note_name(start_note), string, new_note_name, value)\n\n                    note.timeables.append(Timeable(b2ff(offset), b2ff(offset)+1, jdx, str(new_note)\n                        , data=dict(value=value\n                            , note=new_note_name\n                            , string=string\n                            , fret=string_and_note_to_fret(string, new_note_name)\n                            )))\n\n\nclass AbletonMIDITrack(Timeline):\n    def __init__(self, b2ff, track):\n        self.b2ff = b2ff\n        \n        track_name = track.find(\"Name/EffectiveName\").attrib[\"Value\"]\n        if track_name == \"banjo\":\n            timeables = [AbletonMIDIClip(b2ff, clip) for clip in track.findall(\"DeviceChain/MainSequencer/ClipTimeable/ArrangerAutomation/Events/MidiClip\")]\n        else:\n            timeables = []\n        \n        super().__init__(timeables=timeables, findWords=False, name=track_name)\n\n        automation = []\n        for a in track.xpath(\"AutomationEnvelopes/Envelopes/AutomationEnvelope/Automation\"):\n            automation.append(a)\n\n        self.xml = track\n        self.automation = automation\n\n    def notes(self):\n        return [int(t.name) for t in self.flat_timeables()]\n    \n    def range(self):\n        ns = self.notes()\n        return min(ns), max(ns)\n\n\nclass AbletonAudioClip(Timeable):\n    def __init__(self, b2ff, clip):\n        clip_name = clip.find(\"Name\").attrib[\"Value\"]\n        clip_start = float(clip.find(\"CurrentStart\").attrib[\"Value\"])\n        clip_end = float(clip.find(\"CurrentEnd\").attrib[\"Value\"])\n\n        super().__init__(b2ff(clip_start), b2ff(clip_end), name=clip_name)\n\n\nclass AbletonAudioTrack(Timeline):\n    def __init__(self, b2ff, track):\n        self.lx = track\n        track_name = track.find(\"Name/EffectiveName\").attrib[\"Value\"]\n        clips = []\n        for clip in track.findall(\"DeviceChain/MainSequencer/Sample/ArrangerAutomation/Events/AudioClip\"):\n            clips.append(AbletonAudioClip(b2ff, clip))\n\n        automation = []\n        for a in track.xpath(\"AutomationEnvelopes/Envelopes/AutomationEnvelope/Automation\"):\n            automation.append(a)\n        self.automation = automation\n\n        super().__init__(timeables=clips, findWords=False, name=track_name)\n        #super().__init__(clips, name=track_name)\n\n\nclass AbletonReader(Timeline):\n    def __init__(self, path, duration=-1, fps=30, rounded=True, note_names={}):\n        note_names_reversed = {v:k for (k,v) in note_names.items()}\n        als_path = path if isinstance(path, Path) else Path(path).expanduser()\n\n        lx = None\n        if als_path.suffix == \".xml\":\n            with open(str(als_path), \"rb\") as f:\n                lx = etree.fromstring(f.read())\n        else:\n            with gzip.open(str(als_path), \"rb\") as f:\n                lx = etree.fromstring(f.read())\n        \n        self.lx = lx\n\n        master_track = lx.find(\"LiveSet/MainTrack\")\n        bpm = float(master_track.find(\"AutomationEnvelopes/Envelopes/AutomationEnvelope[@Id='1']/Automation/Events/FloatEvent\").attrib[\"Value\"])\n\n        fpb = (60/bpm)*fps\n        b2ff = partial(b2f, fpb)\n        self.b2ff = b2ff\n\n        self.returns = []\n\n        tracks = []\n        for t in lx.xpath(\"LiveSet/Tracks/*\"):\n            if t.tag == \"MidiTrack\":\n                tracks.append(AbletonMIDITrack(b2ff, t))\n            elif t.tag == \"AudioTrack\":\n                #tracks.append(AbletonAudioTrack(b2ff, t))\n                pass\n            elif t.tag == \"ReturnTrack\":\n                self.returns.append(t)\n        \n        if duration == -1:\n            duration = max([t.end for t in tracks])\n        \n        # huh?\n        #for t in tracks:\n        #    t.constrain(0, duration)\n\n        super().__init__(duration=duration, fps=fps, timeables=tracks, findWords=False, name=\"Ableton\")\n        #super().__init__(duration, fps=fps, tracks=tracks)\n\nif __name__ == \"<run_path>\":\n    from coldtype import *\n    \n    ar = AbletonReader(\"~/Waves/projs/2024.02.05.1 Project/__silentnighttab3.als\")\n\n    #print(ar.timeables[0].timeables[0].timeables)\n    \n    # el = ar.timeables[1].automation[0]\n    # points = {}\n    # for fe in el.findall(\"Events/FloatEvent\"):\n    #     b = float(fe.attrib[\"Time\"])\n    #     frame = ar.b2ff(b)\n    #     percent = float(fe.attrib[\"Value\"])\n    #     fr = b2f((60/120)*30, b)\n    #     if fr < 0:\n    #         fr = 0\n    #     points[fr] = percent\n    \n    # interp = []\n    # for fr in range(0, ar.duration):\n    #     p = points.get(fr, None)\n    #     if p:\n    #         interp.append(p)\n    #     else:\n    #         pass\n\n    #reparsed = mini.parseString(ET.tostring(el, 'utf-8'))\n    #print(reparsed.toprettyxml(indent=\"  \"))\n\n    colors = {\n        0: bw(1),\n        1: hsl(0.3, 0.60, 0.6),\n        2: hsl(0.6, 0.7, 0.65),\n        3: hsl(0.9, 0.7, 0.5),\n        4: hsl(0.6, 0.90, 0.58),\n        5: hsl(0.9, 0.7, 0.6),\n    }\n\n    string_names = {\n        0: \"X\",\n        1: \"D\",\n        2: \"C\",\n        3: \"G\",\n        4: \"C\",\n        5: \"g\",\n    }\n\n    string_notes = {\n        \"D4\": 1,\n        \"C4\": 2,\n        \"G3\": 3,\n        \"C3\": 4,\n        \"G4\": 5,\n        \"C2\": 0,\n    }\n\n    @animation(Rect(1080*2.5, 1080), tl=Timeline(3400, 30), bg=0, fmt=\"png\")\n    def ableton(f):\n        xs = 4\n        ys = 32\n        \n        notes = P()\n        hits = P()\n        frets = P()\n        bars = P()\n        string_labels = P()\n\n        g = 1725\n\n        ascii_tab = {\n            1: {},\n            2: {},\n            3: {},\n            4: {},\n            5: {},\n        }\n\n        denom = (36/6)\n        \n        for t in ar.timeables[0].timeables[0].timeables:\n            n:AbletonMIDINote = t\n            note = n.data.get(\"note\")\n            fret = str(n.data.get(\"fret\"))\n            string = n.data.get(\"string\")\n            vel = n.data.get(\"velocity\")\n            color = colors.get(string, 1)\n            x = n.start*xs\n            y = int(n.name)*ys\n\n            if note != \"C2\":\n                beat = n.start/denom\n                ascii_tab[string][round(beat)] = fret\n\n            def add_fret(_fret, x, y):\n                frets.append(StSt(_fret, \"MDIO-VF\", 26, wght=0.65).t(x-9, y+32).f(0)\n                    .pen().up().insert(0, lambda p: P().oval(p.ambit(tx=0, ty=0).inset(-9))\n                        .f(color.lighter(0.2).with_alpha(1))))\n\n            if note == \"C2\":\n                y = 1620\n                bars.append(P().line([Point(x, y).o(0, -2), Point(x, y).o(0, 1000)]).fssw(-1, bw(1, min(0.35, vel/127)), 2))\n                continue\n\n            show_note = True\n            if string == 5:\n                show_note = False\n                y = g\n            \n            bend_points = [Point(x, y+ys/2)]\n            last_y = y+ys/2\n            last_fret = fret\n\n            for b in n.timeables:\n                #if b.start < 0.01:\n                #    continue\n                _x = x + b.start*xs\n                _y = y+ys/2+(b.data[\"value\"]/170)*ys\n                p = Point(_x, _y)\n                last_y = p.y\n                bend_points.append(p)\n                bend_fret = str(b.data.get(\"fret\"))\n                if b.start > 0.01 and last_fret != bend_fret:\n                    last_fret = bend_fret\n                    if bend_fret != \"0\":\n                        add_fret(bend_fret, _x, _y-12)\n                    \n                    beat = (n.start+b.start)/(denom)\n                    ascii_tab[string][round(beat)] = bend_fret\n            \n            bend_points.append(Point(x+n.duration*xs, last_y))\n            notes.append(P().line(bend_points).f(color).outline(5, cap=\"butt\").ro())\n            \n            a = Point(x, y).o(0, -2)\n            b = Point(x, y).o(0, ys+2)\n\n            if n.data.get(\"hammer\"):\n                hits.append(P().line([a, b]).rotate(-20).mirrorx().fssw(-1, 1, 2))\n            elif n.data.get(\"thumb\"):\n                hits.append(P().m(a.o(12, 0)).bxc(a.interp(0.5, b), \"SW\").bxc(b.o(12, 0), \"NW\").ep().fssw(-1, 1, 2))\n            else:\n                hits.append(P().line([a, b]).fssw(-1, 1, 2))\n\n            if show_note and fret != \"0\":\n                add_fret(fret, x, y)\n        \n        opens = P()\n        last_string = None\n\n        for x in range(note_name_to_midi(\"C3\"), note_name_to_midi(\"G4\")+2):\n            note = midi_to_note_name(x)\n            if \"#\" not in note:\n                y = x*ys+ys/2\n\n                if note in string_notes:\n                    string = string_notes[note]\n                    if note != \"G4\":\n                        last_string = string\n                    _y = y\n                    if string == 5:\n                        _y = g + ys/2\n                    opens.append(P(\n                        P().line([Point(-100, _y), Point(notes.ambit().mxx + 100, _y)])\n                            .fssw(-1, colors[string].with_alpha(0.65), 3)))\n                    string_labels.append(P(\n                        StSt(string_names[string], \"MDPrimer-Bl\", 66, wght=0.75).t(-160, _y-16).shift(-0.5, 0).f(colors[string])))\n                \n                if note not in string_notes or note == \"G4\":\n                    color = bw(1)\n                    opens.append(P(\n                        P().line([Point(-100, y), Point(notes.ambit().mxx + 100, y)])\n                            .fssw(-1, colors[last_string].with_alpha(0.65), 1)))\n                    string_labels.append(P(\n                        StSt(note[0], \"MDPrimer-Se\", 32, wght=0.25).t(-126, y-9).f(colors[last_string])))\n\n        # ascii_out = []\n        # for string, beats in ascii_tab.items():\n        #     string_line = f\"{string_names[string].upper()}|\"\n        #     for x in range(0, 20):\n        #         if x in beats:\n        #             string_line += beats[x]\n        #         else:\n        #             string_line += \"-\"\n        #     string_line += \"|\"\n        #     ascii_out.append(string_line)\n        \n        #Path(\"ascii.txt\").write_text(\"\\n\".join(ascii_out))\n\n        return P(\n            P(\n                opens,\n                P(\n                    bars,\n                    notes,\n                    hits,\n                    frets\n                ),\n                string_labels,\n            )\n                .align(f.a.r.inset(60), \"W\")\n                .index(-1, lambda p: p.insert(0, P(p.ambit().take(100, \"W\").inset(-44, -350).expand(100, \"W\")).f(bw(0))))\n                .index(1, lambda p: p.t(200+-f.i*2, 0))\n                .insert(0, P().rect(Rect(432, 0, 21, 2800))\n                    .f(hsl(0.17, 1.00, 1.00, 0.20)))\n                ,\n            #StSt(\"“Silent Night” — gCGCD tuning — 6/8, swung\", \"MDPrimer-Se\", 40).align(f.a.r.inset(70), \"NW\").f(1),\n            )\n\n        #e1 = ar.timeables[1].timeables[0].ki(60, f.i).adsr([7, 0, 0, 30])\n        #e2 = ar.timeables[1].timeables[0].ki(65, f.i).adsr([7, 0, 0, 30])\n        #return (P(\n        #    P().oval(f.a.r.inset(100)).fssw(-1, hsl(0.017, 0.8, 0.7), 3).scale(e1+0.25),\n        #    P().oval(f.a.r.inset(100)).fssw(-1, hsl(0.7, 0.8, 0.7), 3).scale(e2+0.2),\n        #))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/nle/ascii.py",
    "content": "from typing import Union\n\nfrom coldtype.interpolation import interp_dict\nfrom coldtype.timing.timeline import Timeline, Timeable\nfrom coldtype.geometry.rect import Rect\n\n\nclass AsciiTimeline(Timeline):\n    __name__ = \"AsciiTimeline\"\n\n    def __init__(self,\n        multiplier:Union[int,float],\n        fps:float,\n        ascii:str=None,\n        keyframes:dict=None,\n        eases:dict=None,\n        **kwargs\n        ):\n        if isinstance(fps, str):\n            ascii = fps\n            fps = 30\n        \n        lines = [l.rstrip() for l in ascii.splitlines() if l.strip()]\n        ml = max([len(l) for l in lines]) - 1\n\n        self.multiplier = multiplier\n        self.keyframes = self._norm_keyframes(keyframes)\n        self.eases = eases\n\n        clips = []\n        unclosed_clip = None\n        duration = round(multiplier*ml)\n\n        for lidx, l in enumerate(lines):\n            if l.startswith(\"#\"):\n                continue\n            \n            clip_start = None\n            clip_name = None\n            instant_clip = None\n\n            if unclosed_clip:\n                clip_start, clip_name = unclosed_clip\n                unclosed_clip = None\n            looped_clip_end = None\n            for idx, c in enumerate(l):\n                if c == \"]\":\n                    if clip_start is not None and clip_name is not None:\n                        clips.append(Timeable(\n                            clip_start,\n                            round((idx)*multiplier)+multiplier,\n                            name=clip_name,\n                            data=dict(line=lidx),\n                            track=lidx-1,\n                            timeline=self))\n                    else:\n                        looped_clip_end = round(idx*multiplier)\n                    clip_start = None\n                    clip_name = None\n                elif c == \"[\":\n                    clip_start = round(idx*multiplier)\n                    clip_name = \"\"\n                elif c not in [\" \", \"-\", \"|\", \"<\", \">\"]:\n                    if clip_name is None:\n                        if instant_clip:\n                            instant_clip += c\n                        else:\n                            clip_start = round(idx*multiplier)\n                            instant_clip = c\n                    # if clip_name is None:\n                    #     clips.append(Timeable(\n                    #         round(idx*multiplier),\n                    #         round(idx*multiplier),\n                    #         name=c,\n                    #         data=dict(line=lidx),\n                    #         timeline=self))\n                    else:\n                        clip_name += c\n                elif c in [\" \"] and instant_clip:\n                    clips.append(Timeable(\n                        clip_start,\n                        clip_start,\n                        name=instant_clip,\n                        data=dict(line=lidx),\n                        track=lidx-1,\n                        timeline=self))\n                    instant_clip = None\n            \n            if instant_clip:\n                clips.append(Timeable(\n                    clip_start,\n                    clip_start,\n                    name=instant_clip,\n                    data=dict(line=lidx),\n                    track=lidx-1,\n                    timeline=self))\n            \n            if looped_clip_end:\n                if clip_start is not None and clip_name is not None:\n                    clips.append(Timeable(\n                        clip_start,\n                        duration+looped_clip_end,\n                        name=clip_name,\n                        data=dict(line=idx),\n                        track=lidx-1,\n                        timeline=self))\n                    clip_start = None\n                    clip_name = None\n            \n            if clip_start is not None and clip_name is not None:\n                unclosed_clip = (clip_start, clip_name)\n        \n        clips = sorted(clips, key=lambda c: c.start)\n        for cidx, clip in enumerate(clips):\n            clip.idx = cidx\n        \n        super().__init__(duration, fps, clips, **kwargs)\n    \n    def _norm_keyframes(self, keyframes):\n        if not keyframes:\n            return {}\n\n        if not isinstance(keyframes, dict):\n            kfs = {}\n            for idx, v in enumerate(keyframes):\n                kfs[str(idx)] = v\n            return kfs\n        else:\n            kfs = {}\n            for k, v in keyframes.items():\n                kfs[str(k)] = v\n            return kfs\n    \n    def _find_kf_easer(self, ease, eases):\n        for t in self.timeables:\n            if t.name.startswith(\"~\") and t.name[1:] in eases.keys():\n                if ease.start <= t.start < ease.end:\n                    return eases[t.name[1:]]\n        return \"eeio\"\n    \n    def keyframe_current(self, fi, keyframes, lines=None):\n        for c1, c2 in self.enumerate(lines=lines, pairs=True, edges=True, filter=keyframes.keys()):\n            start, end = c1.start, c2.start\n\n            if c2.start < c1.end:\n                end += self.duration\n                if fi < c1.start:\n                    fi += self.duration\n\n            t = Timeable(start, end,\n                name=f\"_kf_{c1.name}/{c2.name}\",\n                timeline=self)\n            \n            if t.now(fi):\n                return [fi, t, c1, c2]\n    \n    def kf(self, easefn=None, fi=None, lines=None, keyframes=None, eases=None, offset=0):\n        fi = self._norm_held_fi(fi)\n\n        if keyframes is None:\n            keyframes = self.keyframes\n        else:\n            keyframes = self._norm_keyframes(keyframes)\n\n        if offset:\n            # if callable(offset):\n            #     res_ = self.keyframe_current(fi % self.duration, keyframes, lines)\n            #     if res_:\n            #         _, t, c1, c2 = res_\n            #         fi = fi + offset(f\"{c1.name}->{c2.name}\")\n            #     else:\n            #         fi = fi + offset(None)\n            # else:\n            fi = fi + offset\n        \n        fi = fi % self.duration\n\n        res = self.keyframe_current(fi, keyframes, lines)\n    \n        if res:\n            fi, t, c1, c2 = res\n            if c1.name == c2.name:\n                return keyframes[c1.name]\n            else:\n                easer = easefn\n                if easer is None:\n                    if eases or self.eases:\n                        easer = self._find_kf_easer(t, eases or self.eases)\n                    else:\n                        easer = \"eeio\"\n                \n                return interp_dict(\n                    t.at(fi).e(easer, 0),\n                    keyframes[c1.name],\n                    keyframes[c2.name])\n    \n        return list(keyframes.values())[0]\n    \n    def enumerate(self, lines=None, pairs=False, edges=False, filter=None):\n        matches = []\n        for c in self.timeables:\n            match = False\n            if c.name.startswith(\"~\"):\n                match = False\n            elif filter and c.name not in filter:\n                match = False\n            elif lines is not None:\n                if c.data[\"line\"] in lines:\n                    match = True\n            else:\n                match = True\n            \n            if match:\n                if edges and c.duration > 0:\n                    matches.append(Timeable(c.start, c.start, -1, name=c.name, timeline=self))\n                    matches.append(Timeable(c.end-1, c.end-1, -1, name=c.name, timeline=self))\n                else:\n                    matches.append(c)\n        \n        for i, c in enumerate(matches):\n            if pairs:\n                if i < len(matches)-1:\n                    yield c, matches[i+1]\n                else:\n                    yield c, matches[0]\n            else:\n                yield c\n    \n    def inflate(self, lines=None):\n        for a, b in self.enumerate(pairs=True, lines=lines):\n            if a.start == a.end:\n                if a.start < b.start:\n                    a.end = b.start\n                else:\n                    a.end = self.duration\n        return self\n    \n    def rmap(self, r=Rect(1000, 1000)):\n        \"\"\"\n        Rect-map, i.e. a representation of this ascii timeline as a 2D map of rectangles\n        \"\"\"\n        from coldtype.geometry.rect import Rect\n        out = {}\n        for clip in self.timeables:\n            sc = r.w / self.duration\n            out[clip.name] = Rect(clip.start * sc, 0, clip.duration * sc, r.h)\n        return out\n    \n    def __getitem__(self, item):\n        return self._keyed(item)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/nle/premiere.py",
    "content": "import json\nfrom pathlib import Path\n\n# import extra stuff for convenience in user code\nfrom coldtype.timing.sequence import Marker, ClipTrack, Clip, Sequence, ClipGroup, ClipGroupPens\n\n\nVIDEO_OFFSET = 86313 # why is this?\n\ngroup_pens_cache = {}\n\ndef to_frames(seconds, fps):\n    frames = int(round(float(seconds)*fps))\n    if frames >= VIDEO_OFFSET:\n        frames -= VIDEO_OFFSET\n    return frames\n\n\nclass PremiereTimeline(Sequence):\n    __name__ = \"Premiere\"\n\n    def __init__(self, path, storyboard=None, duration_override=None, workarea_track=0):\n        self.path = path\n\n        json_path = path if isinstance(path, Path) else Path(path).expanduser()\n\n        try:\n            jsondata = json.loads(json_path.read_text())\n        except:\n            print(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\")\n            print(json_path.read_text())\n            raise Exception(\"NOPE\")\n            jsondata = {}\n\n        meta = jsondata.get(\"metadata\")        \n        fps = 1 / meta.get(\"frameRate\")\n        duration = int(round(int(meta.get(\"duration\"))/int(meta.get(\"timebase\"))))\n\n        if duration_override:\n            duration = duration_override\n\n        self.start = 0\n        self.end = duration\n\n        tof = lambda s: int(round(float(s)*fps))\n        \n        cti = tof(meta.get(\"cti\", 0))\n        self.cti = cti\n\n        _storyboard = []\n        _storyboard.append(self.cti)\n        for m in jsondata.get(\"storyboard\"):\n            f = tof(m.get(\"start\"))\n            if f not in _storyboard:\n                _storyboard.append(f)\n        \n        if storyboard:\n            _storyboard = storyboard\n        \n        workareas = []\n        workareas.append(range(max(0, tof(meta.get(\"inPoint\"))), tof(meta.get(\"outPoint\"))+1))\n        self.workareas = workareas\n\n        tracks = []\n        for tidx, track in enumerate(jsondata.get(\"tracks\")):\n            markers = []\n            for marker in track.get(\"markers\"):\n                markers.append(Marker(\n                    to_frames(marker.get(\"start\"), fps),\n                    to_frames(marker.get(\"end\"), fps),\n                    marker))\n            \n            clips = []\n            for cidx, clip in enumerate(track.get(\"clips\")):\n                clips.append(Clip(\n                    clip.get(\"name\"),\n                    to_frames(clip.get(\"start\"), fps),\n                    to_frames(clip.get(\"end\"), fps),\n                    idx=cidx,\n                    track=tidx))\n            \n            tracks.append(ClipTrack(self, clips, markers))\n        \n        super().__init__(duration, fps, _storyboard, tracks, workarea_track=workarea_track)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/sequence.py",
    "content": "import re, math, copy\nfrom enum import Enum\nfrom collections import namedtuple\nfrom dataclasses import dataclass\n\nfrom coldtype.timing import Timeable, Frame\nfrom coldtype.timing.easing import ease\nfrom coldtype.timing.timeline import Timeline\n\nfrom coldtype.text import StyledString, Lockup, Graf, GrafStyle, Style, Rect\nfrom coldtype.runon.path import P\nfrom coldtype.color import *\n\nfrom coldtype.timing.clip import Clip, ClipFlags, ClipType\n\nfrom typing import Optional, Union, Callable, Tuple, List\n\n\nclass Marker(Timeable):\n    def __init__(self, start, end, marker):\n        # TODO super name= marker name?\n        super().__init__(start, end, data=marker)\n\n\nclass ClipGroupPens(P):\n    def setClipGroup(self, clip_group):\n        self.cg = clip_group\n        return self\n    \n    def _iterate_tags(self, tag, pens):\n        if len(pens) > 0:\n            for pen in pens:\n                if pen._tag == tag:\n                    yield pen.data(tag), pen\n                else:\n                    yield from self._iterate_tags(tag, pen)\n    \n    def iterate_clips(self):\n        yield from self._iterate_tags(\"clip\", self)\n    \n    def iterate_slugs(self):\n        yield from self._iterate_tags(\"slug\", self)\n    \n    def iterate_lines(self):\n        yield from self._iterate_tags(\"line\", self)\n    \n    def map_clips(self, fn):\n        for clip, pen in self.iterate_clips():\n            fn(clip, pen)\n        return self\n    \n    def clean_empties(self):\n        for _, pen in self.iterate_slugs():\n            pen._els = [p for p in pen._els if len(p._els) > 0]\n        for line in self:\n            line._els = [p for p in line._els if len(p._els) > 0]\n        self._els = [p for p in self._els if len(p._els) > 0]\n        return self\n\n    def remove_futures(self, clean=True):\n        def futureRemover(p, pos, _):\n            if pos == 1 and \"position\" in p._data and \"clip\" in p._data:\n                if p.data(\"position\") > 0:\n                    p._els = []\n        \n        self.walk(futureRemover)\n        if clean:\n            self.removeBlanks()\n        return self\n\n        for clip, pen in self.iterate_clips():\n            if clip.position > 0:\n                pen._els = []\n        \n        if clean:\n            self.clean_empties()\n        return self\n    \n    removeFutures = remove_futures\n    \n    def remove_future_lines(self, clean=True):\n        for _, line in self.iterate_lines():\n            any_now = False\n            for pen in line:\n                for p in pen:\n                    clip = p.data(\"clip\")\n                    if clip:\n                        if clip.position <= 0:\n                            any_now = True\n            \n            if not any_now:\n                line._els = []\n            #for x in line.iterate_clips():\n            #    print(\">>>\", x)\n\n        #for clip, pen in self.iterate_clips():\n        #    if clip.position > 0:\n        #        pen._els = []\n        \n        if clean:\n            self.clean_empties()\n        return self\n\n\n@dataclass\nclass ClipGroupTextSetter():\n    frame:Frame\n    i:int\n    clip:Clip\n    text:str\n    styles:Timeline\n\n\nclass ClipGroup(Timeable):\n    def __init__(self, timeline, index, clips, regroup=True):\n        # if not regroup:\n        #     new_clips = []\n        #     for idx, c in enumerate(clips):\n        #         c:Clip\n        #         nc = Clip(c.text, c.start, c.end, idx, 0)\n        #         nc.group = self\n        #         new_clips.append(nc)\n        #     clips = new_clips\n\n        self.index = index\n        self.clips = clips\n        self.timeline = timeline\n        self.style_indices = []\n        self.styles = []\n\n        self.retime()\n\n        if regroup:\n            for idx, clip in enumerate(clips):\n                clip.idx = idx\n                clip.group = self\n    \n    def retime(self):\n        if len(self.clips) > 0:\n            self.start = self.clips[0].start\n            self.end = self.clips[-1].end\n            self.track = self.clips[0].track\n            self.valid = True\n        else:\n            self.start = 0\n            self.end = 0\n            self.track = None\n            self.valid = False\n    \n    def styles(self):\n        all_styles = set()\n        for clip in self.clips:\n            for style in clip.styles:\n                all_styles.add(style)\n        return all_styles\n    \n    def style_matching(self, style):\n        for clip in self.clips:\n            match = clip.style_matching(style)\n            if match:\n                return match\n    \n    def ldata(self, field, default):\n        if len(self.clips) > 0:\n            return self.clips[-1].inline_data.get(field, default)\n    \n    def current_style_matching(self, f:Frame, identifier:Union[str, Callable[[Clip], bool]]):\n        for si in self.style_indices:\n            sc = self.timeline.sequence[si].current(f.i)\n            if sc and identifier(sc):\n                if isinstance(identifier, str):\n                    if identifier in sc.text:\n                        return sc\n                elif identifier(sc):\n                    return sc\n    \n    def lines(self, ignore_newlines=False):\n        lines = []\n        line = []\n        for clip in self.clips:\n            if clip.type == ClipType.NewLine:\n                if ignore_newlines:\n                    if not clip.text.startswith(\" \"):\n                        clip.text = \" \" + clip.text\n                    line.append(clip)\n                else:\n                    lines.append(line)\n                    line = [clip]\n            elif clip.type == ClipType.GrafBreak:\n                lines.append(line)\n                cclip = copy.deepcopy(clip)\n                cclip.text = \"¶\"\n                lines.append([cclip])\n                line = [clip]\n                # add a graf mark\n            else:\n                line.append(clip)\n        if len(line) > 0:\n            lines.append(line)\n        return lines\n    \n    def position(self, idx, styles):\n        for clip in self.clips:\n            clip.joined = False\n        for clip in self.clips:\n            clip:Clip\n            clip.styles = []\n            if False:\n                if styles:\n                    for style in styles:\n                        if style:\n                            for style_clip in style.clips:\n                                if clip.start >= style_clip.start and clip.end <= style_clip.end:\n                                    clip.styles.append(style_clip.ftext().strip())\n                                elif style_clip.start >= clip.start and style_clip.end <= clip.end:\n                                    clip.styles.append(style_clip.ftext().strip())\n            if clip.start > idx:\n                clip.position = 1\n            elif clip.start <= idx and clip.end > idx:\n                clip.position = 0\n                before_clip = clip\n                while before_clip.type == ClipType.JoinPrev:\n                    before_clip = self.clips[before_clip.idx-1]\n                    before_clip.joined = True\n                try:\n                    after_clip = self.clips[clip.idx+1]\n                    while after_clip.type == ClipType.JoinPrev:\n                        after_clip.joined = True\n                        after_clip = self.clips[after_clip.idx+1]\n                except IndexError:\n                    pass\n            else:\n                clip.position = -1\n            \n            if True:\n                for style in styles:\n                    style:ClipTrack\n                    if clip.position == -1:\n                        sc = style.current(clip.end-1)\n                    elif clip.position == 0:\n                        sc = style.current(idx)\n                    else:\n                        sc = style.current(clip.start)\n                    if sc:\n                        clip.styles.extend([s.strip() for s in sc.ftext().strip().split(\",\")])\n                        clip.style_clips.append(sc)\n        return self\n    \n    def currentSyllable(self):\n        for clip in self.clips:\n            if clip.position == 0:\n                return clip\n    \n    def current_word(self, fi):\n        for clip in self.clips:\n            if clip.start <= fi < clip.end:\n                clips = [clip]\n                before_clip = clip\n                # walk back\n                while before_clip.type == ClipType.JoinPrev:\n                    before_clip = self.clips[before_clip.idx-1]\n                    clips.insert(0, before_clip)\n                # walk forward\n                try:\n                    after_clip = self.clips[clip.idx+1]\n                    while after_clip.type == ClipType.JoinPrev:\n                        clips.append(after_clip)\n                        after_clip = self.clips[after_clip.idx+1]\n                except IndexError:\n                    pass\n                return clips\n    \n    currentWord = current_word\n    \n    def currentLine(self):\n        for line in self.lines():\n            for clip in line:\n                if clip.position == 0:\n                    return line\n\n    def sibling(self, clip, direction, wrap=False):\n        try:\n            if clip.idx + direction < 0 and not wrap:\n                return None\n            elif clip.idx + direction >= len(self.clips):\n                if not wrap:\n                    return None\n                else:\n                    return self.clips[0]\n            return self.clips[clip.idx + direction]\n        except IndexError:\n            return None\n    \n    def text(self):\n        txt = \"\"\n        for c in self.clips:\n            if c.type == ClipType.ClearScreen:\n                pass\n            elif c.type == ClipType.Isolated:\n                txt += \"( )\"\n            elif c.type == ClipType.JoinPrev:\n                txt += \"|\"\n            elif c.type == ClipType.NewLine:\n                txt += \"/(\\\\n)/\"\n            txt += c.text\n        return txt\n    \n    def pens(self, fi,\n        render_clip_fn:Callable[\n            [ClipGroupTextSetter],\n            Tuple[str, Style]],\n        rect=None,\n        graf_style=GrafStyle(leading=20),\n        fit=None,\n        ignore_newlines=False,\n        use_lines=None,\n        styles:List[Timeable]=[],\n        removeOverlap=False) -> ClipGroupPens:\n        \"\"\"\n        render_clip_fn: frame, line index, clip, clip text — you must return a tuple of text to render and the Style to render it with\n        \"\"\"\n        if isinstance(fi, Frame):\n            fi = fi.i\n\n        if not rect:\n            rect = Rect(1080, 1080)\n        \n        if not styles or len(styles) == 0:\n            styles = self.styles\n\n        group_pens = ClipGroupPens().setClipGroup(self)\n        lines = []\n        groupings = []\n        if not use_lines or (use_lines and use_lines[0] is None):\n            use_lines = self.lines(ignore_newlines=ignore_newlines)\n        \n        for idx, _line in enumerate(use_lines):\n            if not _line:\n                continue\n            slugs = []\n            texts = []\n            for idx, clip in enumerate(_line):\n                if clip.type == ClipType.Meta or clip.blank:\n                    continue\n                try:\n                    match_styles = []\n                    for s in styles:\n                        if s.now(clip.start):\n                            match_styles.append(s)\n                    match_styles = Timeline(timeables=match_styles, findWords=False)\n                    match_styles.hold(fi)\n                    \n                    ftext = clip.ftext()\n                    if clip.type == ClipType.Isolated and idx == 0:\n                        ftext = ftext[1:]\n\n                    text, style = render_clip_fn(ClipGroupTextSetter(fi, idx, clip, ftext, match_styles))\n                    texts.append([text, clip, style])\n                except Exception as e:\n                    print(e)\n                    raise Exception(\"pens render_clip must return text & style\")\n            \n            grouped_texts = []\n            idx = 0\n            done = False\n            while not done:\n                style = texts[idx][2]\n                grouped_text = [texts[idx]]\n                style_same = True\n                while style_same:\n                    idx += 1\n                    try:\n                        next_style = texts[idx][2]\n                        if next_style == style:\n                            style_same = True\n                            grouped_text.append(texts[idx])\n                        else:\n                            style_same = False\n                            grouped_texts.append(grouped_text)\n                    except IndexError:\n                        done = True\n                        style_same = False\n                        grouped_texts.append(grouped_text)\n            \n            for gt in grouped_texts:\n                full_text = \"\".join([t[0] for t in gt])\n                slugs.append(StyledString(full_text, gt[0][2]))\n            groupings.append(grouped_texts)\n            lines.append(slugs)\n        \n        lockups = []\n        for line in lines:\n            lockup = Lockup(line, preserveLetters=True, nestSlugs=True)\n            if fit:\n                lockup.fit(fit)\n            lockups.append(lockup)\n        \n        graf = Graf(lockups, rect, graf_style)\n        pens = graf.pens()#.align(rect, x=\"minx\")\n        \n        re_grouped = P()\n        for idx, line in enumerate(lines):\n            #print(pens, idx, line[0].text)\n            line_dps = pens[idx]\n            re_grouped_line = P()\n            re_grouped_line.tag(\"line\")\n            position = 1\n            line_text = \"\"\n            for gidx, gt in enumerate(groupings[idx]):\n                group_dps = line_dps[gidx]\n                tidx = 0\n                last_clip_dps = None\n                for (text, clip, style) in gt:\n                    clip:Clip# = self.clips[cidx]\n                    if fi < clip.start:\n                        position = 1\n                    elif fi == clip.start or fi < clip.end:\n                        position = 0\n                    else:\n                        position = -1\n                    # if clip.position == 0:\n                    #     position = 0\n                    # elif clip.position == -1:\n                    #     position = -1\n                    line_text += clip.ftext()\n                    clip_dps = P(group_dps[tidx:tidx+len(text)])\n                    clip_dps.tag(\"clip\")\n                    clip_dps.data(\n                        style=style,\n                        clip=clip,\n                        line_index=idx,\n                        line=re_grouped_line,\n                        group=re_grouped,\n                        position=position)\n                    if clip.type == ClipType.JoinPrev and last_clip_dps:\n                        grouped_clip_dps = last_clip_dps\n                        #grouped_clip_dps.append(last_clip_dps)\n                        #grouped_clip_dps._els = last_clip_dps._els\n                        grouped_clip_dps.append(clip_dps)\n                        #re_grouped_line[-1] = grouped_clip_dps\n                        #last_clip_dps = grouped_clip_dps\n                    else:\n                        last_clip_dps = P()\n                        last_clip_dps.tag(\"slug\")\n                        last_clip_dps.append(clip_dps)\n                        re_grouped_line.append(last_clip_dps)\n                    tidx += len(text)\n            re_grouped_line.data(\n                line_index=idx,\n                position=position,\n                line_text=line_text)\n            re_grouped.append(re_grouped_line)\n        \n        pens = re_grouped\n        for pens in pens._els:\n            if removeOverlap:\n                for pen in pens._els:\n                    pen.removeOverlap()\n            group_pens.append(pens)\n        \n        for clip, pen in group_pens.iterate_clips():\n            if clip.position == 1 or clip.text == \"¶\":\n                #pen.f(0)\n                pass\n            if clip.blank:\n                pen._els = []\n        \n        for line in group_pens:\n            line.reversePens() # line top-to-bottom\n            for slug in line:\n                slug.reversePens() # slugs left-to-right\n                for clip in slug:\n                    clip.reversePens() # glyphs left-to-right #.understroke(sw=5)\n        \n        group_pens.reversePens()\n        return group_pens\n    \n    def iterate_clip_pens(self, pens):\n        if len(pens) > 0:\n            for pen in pens:\n                if hasattr(pen, \"data\"):\n                    if pen.data(\"clip\"):\n                        yield pen.data(\"clip\"), pen\n                    else:\n                        yield from self.iterate_clip_pens(pen)\n\n    def remove_futures(self, pens):\n        for clip, pen in self.iterate_clip_pens(pens):\n            if clip.position > 0:\n                pen._els = []\n    \n    removeFutures = remove_futures\n    \n    def iterate_pens(self, pens, copy=True):\n        for idx, line in enumerate(self.lines()):\n            _pens = pens[idx]\n            for cidx, clip in enumerate(line):\n                if copy:\n                    p = _pens._els[cidx].copy()\n                else:\n                    p = _pens._els[cidx]\n                yield idx, clip, p\n    \n    def __repr__(self):\n        return \"<ClipGroup {:04d}-{:04d} \\\"{:s}\\\">\".format(int(self.start), int(self.end), self.text())\n    \n    def __hash__(self):\n        return self.text()\n\n\nclass ClipTrack():\n    def __init__(self, sequence, clips, markers, styles=None):\n        self.sequence = sequence\n        self.clips = clips\n        self.markers = markers\n        self.clip_groups = self.groupedClips(clips)\n        self.styles = styles\n        self._holding = -1\n    \n    def hold(self, i):\n        self._holding = i\n        if self.styles is not None:\n            self.styles.hold(i)\n    \n    def groupedClips(self, clips):\n        groups = []\n        group = []\n        last_clip = None\n        for idx, clip in enumerate(clips):\n            if clip.type == ClipType.ClearScreen:\n                if len(group) > 0:\n                    groups.append(ClipGroup(self, len(groups), group))\n                group = []\n            elif clip.type == ClipType.JoinPrev:\n                if last_clip:\n                    last_clip.addJoin(clip, +1)\n                    clip.addJoin(last_clip, -1)\n            group.append(clip)\n            last_clip = clip\n        if len(group) > 0:\n            groups.append(ClipGroup(self, len(groups), group))\n        return groups\n    \n    def current(self, fi):\n        for idx, clip in enumerate(self.clips):\n            clip:Clip\n            if clip.start <= fi and fi < clip.end:\n                return clip\n    \n    def _norm_held_fi(self, fi=None):\n        \"\"\"ClipTrack should be a Timeline, this should be unnecessary\"\"\"\n        if fi is None:\n            if self._holding >= 0:\n                return self._holding\n            else:\n                raise Exception(\"Must provide fi if ClipTrack is not held\")\n        return fi\n    \n    def currentGroup(self, fi=None) -> ClipGroup:\n        \"\"\"modern\"\"\"\n        fi = self._norm_held_fi(fi)\n        for cg in self.clip_groups:\n            cg:ClipGroup\n            if cg.start <= fi and fi < cg.end:\n                cg.styles = self.styles\n                return cg\n        return ClipGroup(self.sequence, -1, [])\n    \n    def currentWord(self, fi=None) -> ClipGroup:\n        \"\"\"modern\"\"\"\n        fi = self._norm_held_fi(fi)\n        cg = self.currentGroup(fi)\n        if cg:\n            cw = cg.currentWord(fi)\n            return ClipGroup(self.sequence, cg.index, cw or [], regroup=False)\n        else:\n            return ClipGroup(self.sequence -1, [])\n    \n    def now(self, fi, text):\n        for idx, clip in enumerate(self.clips):\n            clip:Clip\n            if clip.text == text and clip.start <= fi and fi < clip.end:\n                return clip\n        return False\n\n    def now_or_past(self, fi, text):\n        for idx, clip in enumerate(self.clips):\n            clip:Clip\n            if clip.text == text and clip.start <= fi:\n                return clip\n        return False\n    \n    def over(self, fi, text):\n        for idx, clip in enumerate(self.clips):\n            clip:Clip\n            if clip.text == text and fi >= clip.end:\n                return True\n        return False\n    \n    def duration(self):\n        duration = 0\n        for c in self.clips:\n            duration = max(duration, c.end)\n        return duration\n    \n    def __repr__(self):\n        return \"<ClipTrack {:s}>\".format(\"/\".join([c.ftext() for c in self.clips[:3]]))\n\n\nclass Sequence(Timeline):\n    def __init__(self, duration, fps, storyboard, tracks, workarea_track=0):\n        self.workarea_track = workarea_track\n        super().__init__(duration, fps, storyboard, tracks)\n    \n    def find_symbol(self, symbol):\n        start = -1\n        end = -1\n        for t in self.tracks:\n            for c in t.clips:\n                c:Clip\n                if c.symbol and c.symbol == symbol:\n                    if c.symbol_position == -2:\n                        start = c.start\n                        end = c.end\n                    elif c.symbol_position == -1:\n                        start = c.start\n                    elif c.symbol_position == +1:\n                        end = c.end\n        return start, end\n    \n    def retime_for_symbol(self, symbol):\n        start, end = self.find_symbol(symbol)\n        if start == -1 or end == -1:\n            raise Exception(\"No symbol found\")\n        \n        duration = end - start\n        self.start = 0\n        self.end = duration\n\n        # TODO storyboard?\n        for idx, frame in enumerate(self.storyboard):\n            self.storyboard[idx] = frame - start\n\n        for t in self.tracks:\n            t:ClipTrack\n            for c in t.clips:\n                c:Clip\n                c.start = c.start - start\n                c.end = c.end - start\n            \n            for cg in t.clip_groups:\n                cg.retime()\n        \n        return self\n    \n    def trackClipGroupForFrame(self, track_idx, frame_idx, styles=[], check_end=True):\n        for gidx, group in enumerate(self[track_idx].clip_groups):\n            group:ClipGroup\n            group.style_indices = styles\n            if not check_end:\n                end_good = False\n                try:\n                    next_group = self[track_idx].clip_groups[gidx+1]\n                    end_good = next_group.start > frame_idx\n                except IndexError:\n                    end_good = True\n            if group.start <= frame_idx and ((check_end and group.end > frame_idx) or (not check_end and end_good)):\n                if True:\n                    style_tracks = [self[sidx] for sidx in styles]\n                if False:\n                    style_groups = None\n                    if styles:\n                        style_groups = []\n                        for style in styles:\n                            style_groups.append(self.trackClipGroupForFrame(style, frame_idx, check_end=False))\n                return group.position(frame_idx, style_tracks)\n    \n    def clip_group(self, track_idx, f, styles=[]) -> ClipGroup:\n        if track_idx > len(self.tracks)-1:\n            return ClipGroup(None, -1, [])\n        \n        cg = self.trackClipGroupForFrame(track_idx, f.i if hasattr(f, \"i\") else f, styles)\n        if cg:\n            return cg\n        else:\n            return ClipGroup(self[track_idx], -1, [])\n    \n    clipGroup = clip_group\n    \n    def find_workarea(self, frame=None):\n        if frame is None:\n            frame = self.cti\n        \n        cg = self.trackClipGroupForFrame(self.workarea_track, frame)\n        if cg:\n            return [cg.start, cg.end]\n    \n    def jumps(self):\n        js = self._jumps\n        t = self[self.workarea_track]\n        for clip in t.clips:\n            js.insert(-1, clip.start)\n        return js\n    \n    def text_for_frame(self, fi):\n        cg = self.clip_group(self.workarea_track, fi)\n        if cg and cg.currentSyllable():\n            cgs = cg.currentSyllable()\n            if cgs.start == fi:\n                return cgs.input_text"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/timeable.py",
    "content": "from dataclasses import dataclass\nfrom coldtype.interpolation import lerp, interp_dict\nfrom coldtype.runon.path import P\nfrom coldtype.timing.easing import ease, ez, applyRange\nfrom copy import copy\nimport math\n\n\nclass Timeable():\n    \"\"\"\n    Abstract base class for anything with a concept of `start` and `end`/`duration`\n\n    Implements additional methods to make it easier to work with time-based concepts\n    \"\"\"\n    def __init__(self,\n        start,\n        end,\n        index=0,\n        name=None,\n        data={},\n        timeline=None,\n        track=None,\n        id=None,\n        ):\n        self.start = start\n        self.end = end\n        self.idx = index\n        self.name = name\n        self.feedback = 0\n        self.data = data\n        self.timeline = timeline\n        self.track = int(track) if track else 0\n        self.id = id\n\n        self.timeables = []\n    \n    @property\n    def duration(self):\n        return self.end - self.start\n    \n    def __bool__(self):\n        if self.start == -1 and self.end == -1:\n            return False\n        else:\n            return True\n    \n    def __repr__(self):\n        if hasattr(self, \"name\") and self.name:\n            return f\"Timeable('{self.name}', {self.start}, {self.end} ({self.duration}))\"\n        else:\n            return f\"Timeable({self.start}, {self.end} ({self.duration}))\"\n    \n    def delay(self, frames_delayed, feedback) -> 'Timeable':\n        t = copy(self)\n        t.start = t.start + frames_delayed\n        t.end = t.end + frames_delayed\n        t.feedback = feedback\n        t.data = {}\n        return t\n    \n    def retime(self, start=0, end=0, duration=-1):\n        self.start = self.start + start\n        self.end = self.end + end\n        if duration > -1:\n            self.end = self.start + duration\n        return self\n    \n    def now(self, i):\n        if self.start == self.end:\n            return i == self.start\n        else:\n            return self.start <= i < self.end\n\n    def _normalize_fi(self, fi):\n        if hasattr(self, \"timeline\") and self.timeline:\n            if self.end > self.timeline.duration and fi < self.start:\n                return fi + self.timeline.duration\n        return fi\n\n    def _loop(self, t, times=1, cyclic=True, negative=False):\n        lt = t*times*2\n        ltf = math.floor(lt)\n        ltc = math.ceil(lt)\n        if False:\n            if ltc % 2 != 0: # looping back\n                lt = 1 - (ltc - lt)\n            else: # looping forward\n                lt = ltc - lt\n        lt = lt - ltf\n        if cyclic and ltf%2 == 1:\n            if negative:\n                lt = -lt\n            else:\n                lt = 1 - lt\n        return lt, ltf\n\n    def at(self, i, every=None) -> \"Easeable\":\n        if every:\n            i = (i//every)*every\n        return Easeable(self, i)\n\n\n@dataclass\nclass EaseableTiming():\n    t: float = 0\n    i: int = -1\n    loopidx: int = 0\n\n\nclass Easeable():\n    def __init__(self,\n        t:Timeable,\n        i:int\n        ):\n        self.t:Timeable = t\n        self.i:int = i\n\n        self._ts = False\n        if not isinstance(t, Timeable):\n            self._ts = True\n    \n    @property\n    def autowrap(self):\n        return False\n    \n    def __repr__(self) -> str:\n        return f\"<Easeable@{self.i}:{self.t}/>\"\n    \n    def _normRange(self, rng, **kwargs):\n        if \"r\" in kwargs:\n            rng = kwargs[\"r\"]\n        if isinstance(rng, (int, float)):\n            rng = (0, rng)\n        return rng\n    \n    def _maxRange(self, rng, vs):\n        if rng[1] > rng[0]:\n            return max(vs)\n        else:\n            return min(vs)\n    \n    def every(self, i) -> \"Easeable\":\n        self.i = (self.i//i)*i\n        return self\n    \n    def inset(self, start=0, end=0) -> \"Easeable\":\n        return Easeable(Timeable(\n            start=self.t.start + start,\n            end=self.t.end - end,\n            name=self.t.name,\n            data=self.t.data,\n            track=self.t.track,\n            timeline=self.t.timeline,\n        ), self.i)\n    \n    @property\n    def name(self):\n        if self._ts:\n            return \"/\".join([t.name for t in self.t])\n        else:\n            return self.t.name\n    \n    def __bool__(self):\n        if self._ts:\n            return any([bool(t) for t in self.t])\n        else:\n            return bool(self.t)\n    \n    @property\n    def idx(self):\n        if self._ts:\n            if len(self.t) > 0:\n                return self.t[0].idx\n            else:\n                return -1\n        else:\n            return self.t.idx\n    \n    def index(self):\n        if self._ts:\n            return sum([self.i >= t.start for t in self.t]) - 1\n        else:\n            return int(self.i >= self.t.start) - 1\n        \n    def on(self, end=None):\n        if self._ts:\n            return bool(max([Easeable(t, self.i).on(end=end) for t in self.t]))\n        \n        if end is None:\n            end = self.t.end\n\n        if self.t.start == end:\n            return self.i == self.t.start\n        else:\n            return self.t.start <= self.i < end\n    \n    def now(self):\n        if not self._ts:\n            if self.on():\n                return self\n            else:\n                return None\n        \n        for t in self.t:\n            e = Easeable(t, self.i)\n            if e.on():\n                return e\n        \n        return None\n    \n    def past(self):\n        return self.on(end=10000000000)\n    \n    def tv(self,\n        loops=0,\n        cyclic=True,\n        to1=True,\n        choose=max,\n        wrap=None,\n        find=False,\n        clip=True\n        ):\n        if wrap is None and self.autowrap:\n            wrap = True\n\n        if self._ts:\n            es = [Easeable(t, self.i).tv(loops, cyclic, to1).t for t in self.t]\n            if len(es) == 0:\n                e = 0\n            else:\n                e = choose(es)\n            if find is False:\n                return EaseableTiming(e)\n            else:\n                try:\n                    return EaseableTiming(e, es.index(e))\n                except:\n                    return EaseableTiming(e, -1)\n                # chosen = [(i, 1 if x == e else 0) for i, x in enumerate(es)]\n                # if e > 0:\n                #     return EaseableTiming(e, chosen[-1][0])\n                # else:\n                #     return EaseableTiming(e, chosen[0][0])\n\n        t, i = self.t, self.i\n        if wrap:\n            i = i % self.t.duration\n        else:\n            i = self.i\n        \n        if t.start == -1 and t.end == -1:\n            return EaseableTiming(0)\n\n        if clip and i < t.start:\n            return EaseableTiming(0)\n        elif clip and i > t.end:\n            if loops % 2 == 0:\n                return EaseableTiming(1)\n            else:\n                return EaseableTiming(0)\n        else:\n            d = t.duration\n            if to1:\n                d = d - 1\n            \n            v = (i - t.start) / d\n            if loops == 0:\n                return EaseableTiming(max(0, min(1, v)) if clip else v)\n            else:\n                loop_t, loop_index = self.t._loop(v, times=loops, cyclic=cyclic, negative=False)\n                return EaseableTiming(max(0, min(1, loop_t)) if clip else v, -1, loop_index)\n\n    def e(self,\n        easefn=\"eeio\",\n        loops=1,\n        rng=(0, 1),\n        on=None, # TODO?\n        cyclic=True,\n        to1=False,\n        wrap=None,\n        choose=max,\n        find=False,\n        loop_info=False,\n        **kwargs\n        ):\n        rng = self._normRange(rng, **kwargs)\n        \n        if (not isinstance(easefn, str)\n            and not isinstance(easefn, P)\n            and not type(easefn).__name__ == \"Glyph\"):\n            loops = easefn\n            easefn = \"eeio\"\n        \n        tv = self.tv(loops, cyclic, to1, choose, wrap, find=True)\n        \n        ev = ez(tv.t, easefn, cyclic=cyclic, rng=rng)\n        if find:\n            return ev, tv.i\n        elif loop_info:\n            return ev, tv.loopidx\n        else:\n            return ev\n    \n    def ec(self, easefn=\"eeio\", rng=(0, 1)):\n        \"\"\"\n        (e)asing-(c)umulative — for performing partial\n        animations that accumulate over time, i.e. keys\n        on a timeline `[0 ]   [0   ]` will be added together,\n        so the \"final\" value of those 0's (`.ki(0).ec(\"l\")`)\n        will be 2, not 1; use `rng` to define accumulation;\n        max of range refers to max of each phase, not max\n        of entire accumulation\n        \"\"\"\n        if self._ts:\n            _ec = 0\n            for t in self.t:\n                _ec += Easeable(t, self.i).e(easefn, 0, rng=rng)\n            return _ec\n        return self.e(easefn, 0, rng=rng)\n    \n    def interpDict(self, dicts, easefn, loops=0):\n        v = self.tv(loops=loops).t\n        vr = v*(len(dicts)-1)\n        vf = math.floor(vr)\n        v = vr-vf\n        try:\n            a, b = dicts[vf], dicts[vf+1]\n            return interp_dict(ez(v, easefn), a, b)\n        except IndexError:\n            return dicts[vf]\n    \n    def io(self,\n        length,\n        easefn=\"eeio\",\n        negative=False,\n        rng=(0, 1),\n        **kwargs\n        ):\n        rng = self._normRange(rng, **kwargs)\n\n        if self._ts:\n            es = [Easeable(t, self.i).io(length, easefn, negative, rng) for t in self.t]\n            return self._maxRange(rng, es)\n\n        t = self.t\n        try:\n            length_i, length_o = length\n        except:\n            length_i = length\n            length_o = length\n        \n        if isinstance(length_i, float):\n            length_i = int(t.duration*(length_i/2))\n        if isinstance(length_o, float):\n            length_o = int(t.duration*(length_o/2))\n        \n        if self.i < t.start or self.i > t.end:\n            return rng[0]\n        \n        try:\n            ei, eo = easefn\n        except ValueError:\n            ei, eo = easefn, easefn\n\n        to_end = t.end - self.i\n        to_start = self.i - t.start\n        easefn = None\n        in_end = False\n\n        if to_end < length_o and eo:\n            in_end = True\n            v = to_end/length_o\n            easefn = eo\n        elif to_start <= length_i and ei:\n            v = to_start/length_i\n            easefn = ei\n        else:\n            v = 1\n\n        if v == 1 or not easefn:\n            return rng[1]\n        else:\n            return ez(v, easefn, 0, False, rng)\n            #a, _ = ease(easefn, v)\n            #return a\n            if negative and in_end:\n                return -a\n            else:\n                return a\n    \n    def adsr(self,\n        adsr=(5, 0, 0, 10),\n        es=(\"eei\", \"qeio\", \"eeo\"),\n        rng=(0, 1),\n        dv=None, # decay-value\n        rs=False, # read-sustain\n        find=False,\n        **kwargs\n        ):\n        rng = self._normRange(rng, **kwargs)\n\n        if self._ts:\n            es = [Easeable(t, self.i).adsr(adsr, es, rng, dv, rs) for t in self.t]\n            mx = self._maxRange(rng, es)\n            if find:\n                return mx, es.index(mx)\n            else:\n                return mx\n\n        if len(adsr) == 2:\n            d, s = 0, 0\n            a, r = adsr\n        elif len(adsr) == 3:\n            d = 0\n            a, s, r = adsr\n        elif len(adsr) == 4:        \n            a, d, s, r = adsr\n        \n        if rs:\n            s = self.t.duration\n        \n        if len(es) == 2:\n            de = \"qeio\"\n            ae, re = es\n        elif len(es) == 3:\n            ae, de, re = es\n        \n        if dv is None:\n            dv = rng[1]\n            if d > 0:\n                dv = lerp(rng[0], rng[1], 0.5)\n        \n        i, t = self.i, self.t\n        end = t.start + d + s + r\n        ds = t.start + d + s\n\n        td = -1\n        if t.timeline:\n            td = t.timeline.duration\n\n        if i > end and td > -1:\n            i = i - td\n        \n        rv = rng[0]\n        if td > -1 and end > td:\n            if i < t.start-a:\n                i = i + td\n            rv = Easeable(Timeable(ds, end), i+td).e(re, 0, rng=(dv, rng[0]), to1=1)\n\n        if i < t.start: # ATTACK\n            s = t.start - a\n            out = self._maxRange(rng, [rv, Easeable(Timeable(t.start-a, t.start), i).e(ae, 0, rng=rng, to1=0)])\n        elif i >= t.start:\n            if i == t.start:\n                out = rng[1]\n            if i >= ds: # RELEASE\n                out = Easeable(Timeable(ds, end), i).e(re, 0, rng=(dv, rng[0]), to1=1)\n            else:\n                if i >= t.start + d: # SUSTAIN\n                    out = dv\n                else: # DECAY\n                    out = Easeable(Timeable(t.start, ds), i).e(de, 0, rng=(rng[1], dv), to1=1)\n        \n        if find:\n            return out, 0\n        else:\n            return out"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/timeline.py",
    "content": "from collections import defaultdict\nfrom re import match\nfrom coldtype.timing.timeable import Timeable, Easeable\nfrom typing import List\n\n\nclass Timeline(Timeable):\n    \"\"\"\n    General base class for any kind of timeline or sequence, in the NLE sense\n\n    * `fps` is `frames-per-second`, and defaults to 30\n    * `storyboard` is useful if you want to always see a given frame when your animation loads for the first time, or you'd like to see multiple frames, i.e. `storyboard=[0, 5]` to see both frame 0 and frame 5 in the viewer\n    * `tracks` is mostly used internally by subclasses that process external data from another NLE or data source like subtitles\n    * `jumps` can be used to mark \"jump-points\" within a timeline, for easy skipping around with the up/down arrows (akin to up/down arrow movements in NLEs)\n    \"\"\"\n\n    __name__ = \"Generic\"\n\n    def __init__(self,\n        duration=None,\n        fps=30,\n        timeables=None,\n        storyboard=None,\n        jumps=None,\n        start=None,\n        end=None,\n        findWords=True,\n        name=None,\n        ):\n        self.timeables:List[Timeable] = self._flatten(timeables)\n        \n        self.name = name\n        self.fps = fps\n        \n        if start is not None:\n            self.start = start\n        else:\n            self.start = 0\n        \n        if end is not None:\n            self.end = end\n        else:\n            if duration is None:\n                if len(self.timeables) > 0:\n                    #self.start = min([t.start for t in self.timeables])\n                    self.end = max([t.end for t in self.timeables])\n                else:\n                    self.end = 0\n            else:\n                self.end = duration\n\n        self._holding = -1\n\n        self._jumps = [self.start, *(jumps or []), self.end-1]\n        \n        if not storyboard:\n            self.storyboard = [0]\n        else:\n            self.storyboard = storyboard\n        if len(self.storyboard) == 0:\n            self.storyboard.append(0)\n        self.storyboard.sort()\n\n        if findWords:\n            self.words = self.interpretWords(findWords)\n        else:\n            self.words = None\n    \n    def _flatten(self, timeables):\n        if not timeables:\n            return []\n        \n        ts = []\n        for t in timeables:\n            if isinstance(t, Timeable):\n                ts.append(t)\n            else:\n                ts.extend(self._flatten(t))\n        return ts\n    \n    def jumps(self):\n        return self._jumps\n    \n    def tracks(self):\n        ts = defaultdict(lambda: [])\n        for t in self.timeables:\n            ts[t.track].append(t)\n        return ts\n    \n    def text_for_frame(self, fi):\n        return \"\"\n    \n    def __str__(self):\n        return \"<coldtype.timing.timeline({:s}):{:04d}f@{:02.2f}fps[{:s}]>\".format(self.__name__, self.duration, self.fps, \",\".join([str(i) for i in self.storyboard]))\n    \n    def __getitem__(self, index):\n        return self.timeables[index]\n    \n    def __len__(self):\n        return len(self.timeables)\n    \n    def __contains__(self, key):\n        for t in self.timeables:\n            if t.name == key:\n                return True\n        return False\n    \n    def hold(self, i):\n        self._holding = i\n        if self.words:\n            self.words.hold(i)\n        return self\n\n    def at(self, i) -> Easeable:\n        return Easeable(self.timeables, i)\n    \n    def timeable(self, name=None) -> Timeable:\n        return Timeable(\n            self.start,\n            self.duration,\n            name=name or \"Clip\",\n            data=dict(),\n            track=0,\n            timeline=self)\n    \n    def easeable(self, i=None, name=None) -> Easeable:\n        return Easeable(self.timeable(name), i or self._holding)\n    \n    def addClip(self, name=None, start=0, end=0):\n        self.timeables.append(self.timeable(name).retime(start, -end))\n        return self\n    \n    def _keyed(self, k):\n        k = str(k)\n        all = []\n        if isinstance(k, str):\n            for c in self.timeables:\n                if k == \"*\" or c.name == k:\n                    all.append(c)\n        \n        if len(all) == 0:\n            return Timeable(-1, -1)\n        return all\n\n    def k(self, *keys):\n        if len(keys) > 1:\n            es = [self.k(k) for k in keys]\n            return self._flatten(es)\n        else:\n            return self._flatten(self._keyed(keys[0]))\n    \n    def _norm_held_fi(self, fi=None):\n        if fi is None:\n            if self._holding >= 0:\n                return self._holding\n            else:\n                raise Exception(\"Must .hold or provide fi=\")\n        return fi % self.duration\n    \n    def ki(self, key, fi=None):\n        \"\"\"(k)eyed-at-(i)ndex\"\"\"\n\n        fi = self._norm_held_fi(fi)\n\n        if not isinstance(key, str):\n            try:\n                es = [self.ki(k, fi).t for k in key]\n                return Easeable(self._flatten(es), fi)\n            except TypeError:\n                pass\n        \n        return Easeable(self._keyed(key), fi)\n    \n    def current(self, track=None, fi=None) -> Easeable:\n        fi = self._norm_held_fi(fi)\n\n        matches = []\n        for t in self.timeables:\n            if t.now(fi):\n                if track is not None and t.track != track:\n                    continue\n                matches.append(t)\n        \n        return Easeable(matches, fi)\n    \n    def latest(self, track=None, fi=None) -> Easeable:\n        fi = self._norm_held_fi(fi)\n\n        matches = []\n        _fi = fi\n        while _fi >= 0 and not matches:\n            matches = self.current(track=track, fi=_fi).t or []\n            _fi -= 1\n        \n        return Easeable(matches, fi)\n    \n    @property\n    def tstart(self):\n        if self._start > -1:\n            return self._start\n        _start = -1\n        for t in self.timeables:\n            ts = t.start\n            if _start == -1:\n                _start = ts\n            elif ts < _start:\n                _start = ts\n        return _start\n\n    @property\n    def tend(self):\n        if self._end > -1:\n            return self._end\n        _end = -1\n        for t in self.timeables:\n            te = t.end\n            if _end == -1:\n                _end = te\n            elif te > _end:\n                _end = te\n        return _end\n    \n    def shift(self, prop, fn):\n        for t in self.timeables:\n            attr = getattr(t, prop)\n            if callable(fn):\n                setattr(t, prop, fn(t))\n            else:\n                setattr(t, prop, attr + fn)\n        return self\n    \n    def find_by_id(self, id):\n        for t in self.timeables:\n            if t.id == id:\n                return t\n    \n    def findWordsWorkarea(self, fi):\n        if self.words:\n            cg = self.words.currentGroup(fi)\n            if cg:\n                return [int(cg.start), int(cg.end)]\n    \n    def interpretWords(self, include=\"*\"):\n        from coldtype.timing.sequence import ClipTrack, Clip\n\n        includes = []\n        excludes = []\n\n        if isinstance(include, str):\n            for x in include.split(\" \"):\n                if x == \"*\":\n                    continue\n                elif x.startswith(\"-\"):\n                    excludes.append(int(x[1:]))\n                elif x.startswith(\"+\"):\n                    includes.append(int(x[1:]))\n\n        clips = []\n        styles = []\n\n        for t in self.timeables:\n            if len(includes) > 0:\n                if t.track not in includes:\n                    continue\n            if len(excludes) > 0:\n                if t.track in excludes:\n                    continue\n\n            if t.name.startswith(\".\"):\n                styles.append(Timeable(t.start, t.end, index=t.idx, name=t.name[1:], data=t.data, timeline=self, track=t.track))\n            else:\n                start = t.start\n                end = t.end\n                if t.start == t.end:\n                    end = start + 1\n                if t.name == \"•\":\n                    start -= 1\n                    end -= 1\n                clips.append(Clip(t.name, start, end, t.idx, track=t.track))\n        \n        return ClipTrack(self, clips, None, Timeline(timeables=styles, findWords=False))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/timing/viewer.py",
    "content": "from collections import defaultdict\nfrom coldtype.renderable.animation import animation, renderable\nfrom coldtype.text.composer import StSt, Font, Rect, Point, Style\nfrom coldtype.timing.timeline import Timeline\nfrom coldtype.timing.midi import MidiTimeline\nfrom coldtype.runon.path import P\nfrom coldtype.color import bw, hsl\n\ndef timeViewer(tl):\n    a = None\n    ow = 1080\n\n    if isinstance(tl, animation):\n        a = tl\n        tl = a.t\n        ow = a.rect.w\n\n    lh = 40\n    lt = 40\n\n    lines = defaultdict(lambda: [])\n\n    if False and isinstance(tl, MidiTimeline):\n        for n in tl.notes:\n            lines[n].append(n)\n    elif isinstance(tl, Timeline):\n        lines = tl.tracks()\n    else:\n        lines[0] = 1\n    \n    try:\n        line_count = max(lines.keys())+1\n    except ValueError:\n        line_count = 0\n\n    def build_timeable_display(r):\n        wu = r.w / int(tl.duration)\n        rows = r.subdivide(line_count, \"N\")\n            \n        out = P()\n        fs = 14\n        \n        for line in lines.keys():\n            out += (P(rows[line].take(2, \"N\"))\n                .f(bw(0.8))\n                .t(0, 1))\n            out += (StSt(str(line),\n                Font.RecursiveMono(), fs)\n                .align(rows[line].inset(-12, 0), \"W\")\n                .f(hsl(0.65, 1, 0.7)))\n            out += (StSt(str(line),\n                Font.RecursiveMono(), fs)\n                .align(rows[line].inset(-12, 0), \"E\")\n                .f(hsl(0.65, 1, 0.7)))\n\n        for t in tl.timeables:\n            l = int(t.track)\n            f = hsl(0.5+l*0.3)\n            row = rows[l]\n            tr = (row.take(t.duration*wu, \"W\")\n                .offset(t.start*wu, 0))\n            \n            out += (P(tr).f(f.lighter(0.2).with_alpha(0.8)))\n            out += (P(row.take(2, \"W\"))\n                .translate(t.start*wu, 0)\n                .f(f))\n            out += (StSt(t.name,\n                Font.RecursiveMono(), 34)\n                .align(row.take(20, \"W\"), \"W\")\n                .translate(t.start*wu+6, 0)\n                .f(f.darker(0.15)))\n\n        return out\n\n    r = Rect(ow, line_count*lh+lt)\n    re = r.inset(20, 0)\n    rt, rd = re.divide(lt, \"N\")\n\n    if isinstance(tl, Timeline):\n        display = build_timeable_display(rd)\n    else:\n        display = P()\n\n    outer = P([\n        #P(rw).f(bw(0.95)),\n        P(rt).f(bw(0.95))\n        ])\n\n    frames = re.subdivide(tl.duration, \"W\")\n        \n    for idx, f in enumerate(frames):\n        if idx%2==1:\n            continue\n        outer += (P(f).f(bw(0.9)))\n\n    outer += display\n\n    @renderable(r, xray=False, bg=1, preview_only=1)\n    def timeViewBackground(r):\n        return outer\n\n    @animation(r\n    , timeline=tl\n    , bg=1\n    , preview_only=1\n    , sort=-1\n    , layer=1\n    , offset=a.offset\n    , xray=False\n    )\n    def timeView(f):\n        x = f.e(\"l\", 0, rng=(rd.psw[0], rd.pse[0]))\n        return P([\n            P(Rect(2, r.h)).t(x, 0),\n            (P().text(str(f.i),\n                Style(\"Times\", 20, load_font=0),\n                Rect(x+6, r.h-20, 100, 40)))])\n    \n    def pointToFrame(pt:Point):\n        return round(min(1, max(0, (pt.x-re.x)/re.w))*tl.duration)\n    \n    timeView.pointToFrame = pointToFrame\n    return timeViewBackground, timeView"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tool.py",
    "content": "from pathlib import Path\n\nfrom coldtype.geometry.rect import Rect\nfrom coldtype.text.font import Font\n\n\ndef fmt_path(path: Path) -> str:\n    try:\n        return \"~/\" + str(path.relative_to(Path.home()))\n    except ValueError:\n        return str(path)\n\n\ndef print_font_results(results, selected=None):\n    maxsys = max([len(f.system_name) for f in results])\n    maxpat = max([len(fmt_path(f.path)) for f in results])\n    print(\"\")\n    print(f\"     # {'Name':<{maxsys}} Path\")\n    print(f\"   {'-'*(maxsys+maxpat+7)}\")\n    for idx, result in enumerate(results):\n        if idx == selected:\n            print(f\"➡️  {idx:>{3}} {result.system_name:<{maxsys}} {fmt_path(result.path)}\")\n        else:\n            print(f\"   {idx:>{3}} {result.system_name:<{maxsys}} {fmt_path(result.path)}\")\n    print(\"\\n\")\n\n\ndef parse_inputs(inputs, defaults, ui=True, positional=True):\n    if ui is not None and ui is not False:\n        defaults[\"rect\"] = [\n            Rect(1080, 1080),\n            lambda xs: Rect([int(x) for x in str(xs).split(\",\")])]\n\n        defaults[\"preview_only\"] = [False, bool]\n        defaults[\"log\"] = [False, bool]\n\n    parsed = {}\n    if not isinstance(inputs, dict):\n        for idx, input in enumerate(inputs):\n            if \"=\" in input:\n                k, v = input.split(\"=\")\n                parsed[k] = v\n            elif input in defaults.keys():\n                parsed[input] = True\n            elif positional:\n                try:\n                    parsed[list(defaults.keys())[idx]] = input\n                except KeyError:\n                    pass\n    else:\n        parsed = {**inputs}\n\n    out = {}\n    font_variations = {}\n    out[\"font_variations\"] = {}\n\n    for k, v in defaults.items():\n        if k in [\"w\", \"h\"]:\n            out[k] = v\n            defaults[k] = [v, int]\n        if k == \"font\" and v[0] is not None:\n            out[k] = v[0]\n            out[\"fonts\"] = [v][0]\n            out[\"font_variations\"] = v[0].variations()\n            out[\"fontSize\"] = 42\n        else:\n            out[k] = v[0]\n            if k not in parsed and len(v) > 2:\n                raise Exception(v[2])\n    \n    for k, v in parsed.items():\n        if k in defaults:\n            if defaults[k][0] is None and v is None:\n                pass\n            else:\n                if isinstance(v, str):\n                    if k == \"font\":\n                        sized = v.split(\":\")\n                        if len(sized) > 1:\n                            out[\"fontSize\"] = int(sized[1])\n                        else:\n                            out[\"fontSize\"] = 72\n                        \n                        v = sized[0]\n                        vs = v.split(\"@\")\n                        fnt_idx = 0\n                        if len(vs) > 1:\n                            fnt_idx = int(vs[1])\n                        \n                        fonts = Font.ListAll(vs[0])\n                        if len(fonts) == 0:\n                            print(f\"\\n\\n‼️ Search \\\"{v}\\\" returned no fonts ‼️\\n\")\n                            out[k] = Font.ColdtypeObviously()\n                        else:\n                            out[\"fonts\"] = fonts\n                            print_font_results(fonts, fnt_idx)\n                            out[k] = fonts[fnt_idx]\n                            font_variations = out[k].variations()\n                    elif k == \"rect\":\n                        if v == \"max\":\n                            out[k] = ui.get(\"monitor\").scale(2).inset(200).square().zero()\n                        else:\n                            out[k] = eval(f\"Rect({v})\")\n                        #raise Exception(\"IMPLEMENT MAX with screen size\")\n                    elif defaults[k][1] == bool:\n                        out[k] = bool(eval(v))\n                    else:\n                        out[k] = defaults[k][1](v)\n                else:\n                    if k == \"rect\":\n                        print(\"ALSO HERE\")\n                        out[k] = Rect(v)\n                    else:\n                        out[k] = v\n        else:\n            if k in font_variations:\n                out[\"font_variations\"][k] = float(v)\n            else:\n                print(f\"> key {k} not recognized\")\n\n    return out"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/chars.py",
    "content": "\"\"\"\nDisplay characters available in a font\n\"\"\"\n\nfrom coldtype import *\nfrom coldtype.tool import parse_inputs, fmt_path\nfrom coldtype.osutil import show_in_finder\n\n\nargs = parse_inputs(ººinputsºº, dict(\n    font=[None, str, \"Must provide font regex or path\"],\n    rect=[Rect(1080), int]), ui=ººuiºº)\n\n\nprint(\"👉 Click something to see information printed in the terminal\\n\")\n\n\n@animation(Rect(args[\"rect\"].w, args[\"rect\"].h+(h:=120)), bg=1, tl=Timeline(len(args[\"fonts\"])))\ndef chars_display(f):\n    fnt = args[\"fonts\"][f.i]\n    path = fmt_path(fnt.path)\n\n    chars = fnt.chars()\n    sq = math.ceil(math.sqrt(len(chars)))\n\n    header, grid = f.a.r.divide(h, \"N\")\n    rs = grid.inset(10).grid(sq, sq)\n\n    return P(\n        P(header).f(0),\n        StSt(fnt.names()[0], Font.JBMono(), 40, wght=1).align(header.inset(30), \"N\").f(1),\n        StSt(path, Font.JBMono(), 20, wght=0.25).align(header.inset(25), \"S\").f(0.75),\n        P().gridlines(grid, sq, sq),\n        P().enumerate(chars, lambda x:\n            StSt(x.el[0], fnt, rs[0].h-10, variations=args[\"font_variations\"])\n                .data(char=x.el[0], gn=x.el[1])\n                .f(0)\n                .align(rs[x.i]))).data(fontPath=fnt.path)\n\n\ndef build(_):\n    show_in_finder(chars_display.last_return.data(\"fontPath\"))\n\n\ndef on_click(pos):\n    for m in (chars_display.last_return\n        .find(lambda x: x.data(\"char\") and pos.inside(x.ambit()))):\n        char = m.data(\"char\")\n        print(f\"> {char} \\\\u{ord(char):04X} {m.data('gn')}\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/dsview.py",
    "content": "\"\"\"\nDisplay available designspace\n\"\"\"\n\nfrom coldtype import *\nfrom coldtype.tool import parse_inputs, fmt_path\nfrom coldtype.osutil import show_in_finder\n\n\nargs = parse_inputs(ººinputsºº, dict(\n    font=[Font.MutatorSans(), str],\n    text=[\"A\", str],\n    count=[9, int],\n    axes=[\"0,1\", str],\n    )\n    , ui=ººuiºº)\n\n\nA, B = [int(x) for x in args[\"axes\"].split(\",\")]\na, b = A, B\n\n\n@animation(Rect(args[\"rect\"].w, args[\"rect\"].h+(h:=120)), bg=1, tl=Timeline(len(args[\"fonts\"])))\ndef dsview_display(f):\n    global a, b\n\n    fnt:Font = args[\"fonts\"][f.i]\n    path = fmt_path(fnt.path)\n\n    variations = fnt.variations()\n    axes = list(variations.keys())\n    variations = list(variations.items())\n\n    if len(axes) == 1:\n        a, b = 0, 0\n    else:\n        a, b = A, B\n\n    l = Scaffold(f.a.r).cssgrid(\"85 a\", f\"{h} a 85\", \"h h / a2 g / x a1\")\n\n    def draw_glyph(x, y):\n        r = y.el.inset(4)\n        return (P(\n            StSt(args[\"text\"], fnt, args[\"fontSize\"], variations={axes[a]:x.e, axes[b]:y.e})\n                .align(r)\n                .f(0)\n                .data(font=fnt, position=dict(x=x.e, y=y.e))))\n\n    return (P(\n        P(l[\"h\"].r).f(1),\n        StSt(fnt.names()[0], Font.JBMono(), 40, wght=1).align(l[\"h\"].r.inset(25), \"NE\").f(0),\n        StSt(path, Font.JBMono(), 22, wght=0.25).align(l[\"h\"].r.inset(25), \"SE\").f(0),\n        \n        horizontal:=StSt(fnt.getName(variations[a][1].get(\"axisNameID\")) + f\" : “{variations[a][0]}” \", Font.JBMono(), 24, wght=1)\n            .align(l[\"a1\"].r, \"W\")\n            .f(0)\n            .t(d:=100, 0),\n        vertical:=StSt(fnt.getName(variations[b][1].get(\"axisNameID\")) + f\" : “{variations[b][0]}” \", Font.JBMono(), 24, wght=1)\n            .rotate(90)\n            .unframe()\n            .align(l[\"a2\"], \"S\")\n            .t(0, d)\n            .f(0),\n            \n        P().enumerate((g:=l[\"g\"].r).subdivide(args[\"count\"], \"W\"),\n            lambda x: P().enumerate(x.el.subdivide(args[\"count\"], \"S\"),\n                lambda y: draw_glyph(x, y))),\n        \n        P().line(l[\"h\"].r.es).ep().fssw(-1, 0.75, 1),\n        P().line(l[\"a2+x\"].r.ee).ep().fssw(-1, 0.75, 1),\n        P().line(l[\"a1+x\"].r.en).ep().fssw(-1, 0.75, 1),\n        \n        P().gridlines(g, args[\"count\"]).fssw(-1, 0.75, 1),\n\n        StSt(str(int(variations[a][1].get(\"minValue\"))), Font.JBMono(), 20, wght=1).align(l[\"a1\"].r, \"W\").t(d:=20, 0).f(fill:=bw(0.65)),\n        StSt(str(int(variations[a][1].get(\"maxValue\"))), Font.JBMono(), 20, wght=1).align(l[\"a1\"].r, \"E\").t(-d, 0).f(fill),\n\n        StSt(str(int(variations[b][1].get(\"minValue\"))), Font.JBMono(), 20, wght=1).align(l[\"a2\"].r, \"S\").t(0, d).f(fill),\n        StSt(str(int(variations[b][1].get(\"maxValue\"))), Font.JBMono(), 20, wght=1).align(l[\"a2\"].r, \"N\").t(0, -d).f(fill),\n        \n        P().line([p:=horizontal.ambit().pe.project(0, 30), p2:=p.project(0, ln:=350)]).ep()\n            .line([p2, p2.project(45*3, ad:=14)]).ep()\n            .line([p2, p2.project(-45*3, ad)]).ep()\n            .fssw(-1, 0, 2),\n\n        P().line([p:=vertical.ambit().pn.project(90, 30), p2:=p.project(90, ln)]).ep()\n            .line([p2, p2.project(45*-1, ad)]).ep()\n            .line([p2, p2.project(45*5, ad)]).ep()\n            .fssw(-1, 0, 2),\n    ).data(fontPath=fnt.path))\n\n\ndef build(_):\n    show_in_finder(dsview_display.last_return[1].data(\"fontPath\"))\n\n\ndef on_click(pos):\n    for m in (dsview_display.last_return.find(lambda x: x.data(\"position\") and pos.inside(x.ambit()))):\n        variations = list([v[1] for v in m.data(\"font\").variations().items()])\n        range_0 = variations[a].get(\"maxValue\") - (min:=variations[a].get(\"minValue\"))\n        pos_0 = int(m.data(\"position\").get(\"x\")*range_0 + min)\n        range_1 = variations[b].get(\"maxValue\") - (min:=variations[b].get(\"minValue\"))\n        pos_1 = int(m.data(\"position\").get(\"y\")*range_1 + min)\n        print(f\"Position: {variations[a].get(\"axisTag\")} {pos_0}, {variations[b].get(\"axisTag\")} {pos_1} / {variations[a].get(\"axisTag\")} {m.data(\"position\").get(\"x\")}, {variations[b].get(\"axisTag\")} {m.data(\"position\").get(\"y\")}\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/find.py",
    "content": "\"\"\"\nFind all fonts on computer matching passed regex\n- args: [font(search), dst]\n- build: duplicates fonts to dst\n\"\"\"\n\nfrom coldtype import *\nfrom coldtype.tool import parse_inputs\n\nfrom subprocess import run\n\nargs = parse_inputs(__inputs__, dict(\n    font=[None, str, \"Must provide search string\"],\n    dst=[\"~/Desktop\", str]))\n\n\nresults = args[\"fonts\"]\nresults = results[:30]\n\nif len(results) > 0:\n    def build_preview(x):\n        return (P(\n            StSt(str(x.i), Font.JBMono(), 30, wght=1)\n                .t(0, 8),\n            StSt(x.el.names()[0], x.el, args[\"fontSize\"])\n                .t(60, 0),\n            P().rect(Rect(50, 2)))\n            .data(font=x.el))\n\n    previews = P().enumerate(results, build_preview)\n\n    w = max([p.ambit().w for p in previews])\n    h = sum([p.ambit().h for p in previews])\n\n    rect = Rect(w+20, h + 20*(len(results)+1))\n\n    @renderable(rect, bg=0)\n    def show_results(r):\n        return (previews\n            .copy()\n            .stack(20)\n            #.xalign(r)\n            .align(r)\n            .f(1))\n    \n    def build(_):\n        for font in results:\n            print(f\"  > Duplicated: {font.copy_to(args['dst'], return_dst=True)}\")\n    \n    numpad = {\n        1: lambda _: run([\"open\", \"-a\", \"FontGoggles\", *[f.path for f in results]])\n    }\n        \nelse:\n    @renderable(540, bg=0)\n    def no_results(r):\n        return (StSt(\"NO\\nRESULTS\", Font.JBMono(), 72, wdth=1, wght=1)\n            .align(r)\n            .f(\"hotpink\"))\n\n#def build(_):\n#    from coldtype.osutil import show_in_finder\n#    show_in_finder(fnt.path)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/findappicon.py",
    "content": "import subprocess, plistlib, shutil\n\nfrom coldtype import *\nfrom coldtype.raster import *\nfrom coldtype.tool import *\n\n# mac-only\n\nargs = parse_inputs(ººinputsºº, dict(\n    app=[None, str, \"Must provide app name\"],\n    size=[512, str],\n    ))\n\nsize = args[\"size\"]\napp_name = args[\"app\"]\n\nif size == \"@1x\":\n    size = 512\nelif size == \"@2x\":\n    size = 1024\nelif size == \"@3x\":\n    size = 1536\nelif size == \"@4x\":\n    size = 2048\nelse:\n    size = int(size)\n\n\nresult = subprocess.run(\n    ['mdfind', f'kMDItemKind == \"Application\" && kMDItemDisplayName == \"*{app_name}*\"'], capture_output=True, text=True)\n\n\ntmp = Path(\"/tmp\")\npaths = [Path(line) for line in result.stdout.strip().split('\\n') if line.endswith('.app')]\n\napps = []\nfor path in paths:\n    plist = path / \"Contents\" / \"Info.plist\"\n    if plist.exists():\n        with open(plist, \"rb\") as f:\n            plist = plistlib.load(f)\n        icon = plist.get(\"CFBundleIconFile\") or plist.get(\"CFBundleIconName\")\n        icon = path / \"Contents/Resources\" / icon\n        if icon.exists():\n            tmp_output = tmp / f\"_coldtype_findappicon_{path.stem}_{size}.png\"\n            subprocess.run(['sips', '-s', 'format', 'png', '-z', str(size), str(size), str(icon), '--out', tmp_output], check=True, capture_output=True)\n            apps.append([path, tmp_output])\n\n\n@animation(Rect(size, size), tl=Timeline(len(apps)))\ndef icon_viewer(f:Frame):\n    return SkiaImage(apps[f.i][1])\n\n\ndef release(_):\n    for _, img in apps:\n        shutil.copy(img, img.name)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/glyphloop.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\n\nargs = parse_inputs(__inputs__, dict(\n    font=[None, str, \"Must provide font regex or path\"],\n    showChars=[False, bool]))\n\nfnt = args[\"font\"]\n\nos2 = fnt.font.ttFont[\"OS/2\"]\nglyphSet = fnt.font.ttFont.getGlyphSet()\nglyphs = list(glyphSet.keys()) \n\n@animation((1920, 1080), tl=Timeline(len(glyphs), 24), bg=0)\ndef glyphViewer(f):\n    glyphKey = glyphs[f.i]\n    glyph = glyphSet[glyphKey]\n    \n    return (P(\n        P().glyph(glyph, glyphSet).data(frame=Rect(0, 0, glyph.width, os2.sCapHeight))\n            .f(1)\n            .align(f.a.r, tx=0)\n            .scale(0.5, tx=0)\n            .scaleToRect(f.a.r.inset(100), shrink_only=True, preserveAspect=True),\n        StSt(\"{:04d}\".format(f.i), fnt, 60)\n            .f(1)\n            .align(f.a.r.inset(100), \"SW\", tx=0)\n            .null()))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/glyphs.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\n\n# TODO single-frame animated version?\n\nargs = parse_inputs(__inputs__, dict(\n    font=[None, str, \"Must provide font regex or path\"],\n    fontSize=[100, int]))\n\nfnt = args[\"font\"]\nos2 = fnt.font.ttFont[\"OS/2\"]\nglyphSet = fnt.font.ttFont.getGlyphSet()\nels = glyphSet.keys()\nfs = args[\"fontSize\"]\n\nglyphs = P().enumerate(els, lambda x: P()\n    .glyph(glyphSet[x.el], glyphSet)\n    .f(0)\n    .scale(fs/fnt.metrics.upem, pt=(0,0)))\n\nmaxr:Rect = max([g.ambit() for g in glyphs])\nmaxr = maxr.square(outside=True).round().inset(-10).zero()\n\nsq = math.ceil(math.sqrt(len(els)))\nrect = Rect(sq*maxr.w, sq*maxr.w)\n\n@ui(rect, bg=1)\ndef wt1(u):\n    rs = u.r.inset(10).grid(sq, sq)\n    \n    def showChar(x):\n        if u.c.inside(rs[x.i]): print(\">\", x.el)\n        return glyphs[x.i].copy().align(rs[x.i])\n\n    return P(\n        P().gridlines(u.r.inset(10), sq, sq),\n        P().enumerate(els, showChar))\n\n\ndef build(_):\n    from coldtype.osutil import show_in_finder\n    show_in_finder(fnt.path)\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/instances.py",
    "content": "\"\"\"\nDisplay all available instances in variable font; click instance to see more info\n\"\"\"\n\nfrom coldtype import *\nfrom coldtype.tool import parse_inputs\nfrom pprint import pprint\n\nif __as_config__:\n    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(ººinputsºº, dict(\n    font=[None, str, \"Must provide font\"]))\n\nfont = args[\"font\"]\n\ninstances = font.instances()\nunscaled = font.instances(scaled=False)\n\nif len(instances) > 0:\n    print(f\"=== {font.path.name} ===\")\n    print(f\"=== {len(instances)} instances ===\")\n    print(\"\")\n\n    vectors = (P().enumerate(instances.keys(), lambda x:\n        StSt(x.el, font, 80, instance=x.el)\n            .data(\n                instanceKey=x.el,\n                instance=instances[x.el],\n                unscaled=unscaled[x.el])\n        ).stack(10))\n\n    a = vectors.ambit()\n    h = max(a.h, 1600)\n    r = Rect(a.w*h/a.h, h)\n\n    @ui(r.inset(-20).zero(), bg=0)\n    def display(u):\n        def print_instance(x):\n            un = x.data(\"unscaled\")\n            divider = \"-\"*(len(str(un)) + len(\"Unscaled: \") + 3)\n            print(divider)\n            print(f\" Instance: “{x.data('instanceKey')}”\")\n            print(\" Scaled: \", x.data(\"instance\"))\n            print(\" Unscaled: \", un)\n            print(divider)\n            print(\"\")\n            return x\n\n        return (vectors\n            .copy()\n            .scaleToRect(r)\n            .align(u.r)\n            .f(1)\n            .map(lambda p: p.cond(u.c.inside(p.ambit()), print_instance)))\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/midi.py",
    "content": "from coldtype import *\nfrom coldtype.timing.midi import MidiTimeline\nfrom coldtype.tool import parse_inputs\n\nif __as_config__:\n    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(__inputs__, dict(\n    file=[None, str, \"Must provide midi file\"],\n    duration=[None, int],\n    bpm=[None, float],\n    fps=[None, float],\n    text=[True, bool],\n    lookup=[None, {}]))\n\nmr = MidiTimeline(\n    Path(args[\"file\"]).expanduser(),\n    duration=args[\"duration\"],\n    fps=args[\"fps\"],\n    bpm=args[\"bpm\"],\n    lookup=args[\"lookup\"])\n\ndst = Path(args[\"file\"]).parent\ncustom_folder = Path(args[\"file\"]).name + \".midiview/renders\"\n\nif args[\"log\"]:\n    print(\"=\"*20)\n    print(\"> Path:\", mr.midi_path)\n    print(f\"> Note Range: {mr.min}-{mr.max}\")\n    print(\"> Duration:\", mr.duration)\n    print(f\"> BPM/FPS: {mr.bpm}/{mr.fps}\")\n    print(\"=\"*20)\n\nr = args[\"rect\"]\nxo = 47\n\ndef build_display():\n    rt, rd = r.divide(30, \"N\")\n    wu = (rd.w - xo) / int(mr.duration)\n\n    valid_notes = set()\n    for t in mr.timeables:\n        valid_notes.add(int(t.name))\n\n    valid_notes = sorted(valid_notes)\n    rows = rd.subdivide(len(valid_notes), \"S\")\n\n    out = P(\n        P(rt).f(hsl(0.6, 1, 0.85)),\n        P().line(rd.subtract(xo, \"W\").ew)\n            .fssw(-1, hsl(0.65, 1, 0.8), 1))\n\n    for idx, vn in enumerate(valid_notes):\n        out += P(rows[idx]).f(1 if idx%2==0 else hsl(0.6, 1, 0.975))\n        out += P().line(rows[idx].es).fssw(-1, hsl(0.65, 1, 0.8), 1)\n        if args[\"text\"]:\n            out += StSt(f\"{vn}\", Font.RecursiveMono(), 20).align(rows[idx].take(xo, \"W\")).f(hsl(0.65))\n        else:\n            out += P().text(f\"{vn}\", Style(\"Monaco\", 24, load_font=0), rows[idx].take(xo, \"W\").offset(8, rows[idx].h/2-21/2))\n\n    for t in mr.timeables:\n        t:Timeable\n        i = valid_notes.index(int(t.name))\n        tr = (rows[i].take(t.duration*wu, \"W\"))\n        out += (P(tr)\n            .translate(xo+t.start*wu, 0)\n            .f(hsl(0.5+t.idx*0.02)))\n    \n    return rt, rd, out\n\nrt, rd, static = build_display()\n\n@animation(r,\n    timeline=mr,\n    dst=dst,\n    custom_folder=custom_folder,\n    bg=1,\n    render_bg=1,\n    preview_only=args[\"preview_only\"])\ndef midi(f):\n    px = f.e(\"l\", 0, rng=(xo, rd.w))\n    if args[\"text\"]:\n        frame = (StSt(str(f.i),\n            Font.RecursiveMono(), 20)\n            .align(rt.take(px-10, \"W\"), \"E\")\n            .f(hsl(0.65)))\n    else:\n        frame = P().text(\"{:04d}\".format(f.i),\n            Style(\"Monaco\", 18, load_font=0, fill=0),\n            rt.offset(px-50, 8))\n\n    return P(\n        static,\n        frame,\n        P().line(r.ew)\n            .translate(xo, 0)\n            .fssw(-1, bw(0, 0.25), 1),\n        P().line(r.ew)\n            .translate(px, 0)\n            .fssw(-1, 0, 1))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/midicc.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\n\nif __as_config__:\n    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(__inputs__, dict(\n    port=[None, str, \"Must provide port name\"],\n    channel=[1, int]))\n\nr = args[\"rect\"]\n\n@animation(r,\n    bg=0,\n    rstate=1,\n    preview_only=args[\"preview_only\"])\ndef midicc(f, rs):\n    if 0:\n        print(rs.midi)\n\n    controls = []\n\n    for k, v in rs.midi.items():\n        for c, data in v.items():\n            for note, value in data.items():\n                if not note.startswith(\"_\"):\n                    controls.append([k, c, note, value])\n    \n    rs = f.a.r.subdivide(len(controls), \"W\")\n\n    def show_cc(x):\n        _r = rs[x.i].inset(1)\n        k, c, note, value = x.el\n        return P(\n            P(_r).f(hsl(0.9, 0.7, 0.8)),\n            StSt(\"A\", Font.MuSan(), 100, wdth=value/127, wght=value/127).align(_r),\n            P(\n                StSt(str(value), Font.RecMono(), 42),\n                StSt(note, Font.RecMono(), 52),\n                StSt(f\"{k} / 1\", Font.RecMono(), 24),\n            )\n            #.map(lambda p: p.scaleToWidth(_r.w, shrink_only=1))\n            .xalign(_r, \"W\", tx=0)\n            .align(_r)\n            .stack(10)\n            .align(_r.inset(0), \"SW\", tx=0, ty=0)\n        )\n\n    return P().enumerate(controls, show_cc)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/vf.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\nfrom pprint import pprint\nfrom itertools import combinations\nfrom random import Random\n\n#if __as_config__:\n#    raise ColdtypeCeaseConfigException()\n\nargs = parse_inputs(ººinputsºº, dict(\n    font=[None, str, \"Must provide font\"],\n    font_size=[None, int],\n    positions=[(0, 1), lambda xs: [float(x) for x in xs.split(\",\")]],\n    stroke=[False, bool],\n    text=[\"A\", str],\n    seed=[0, int],\n    shuffle=[False, bool],\n    animate=[True, bool]))\n\nrnd = Random()\nrnd.seed(args[\"seed\"])\n\nif isinstance(args[\"font\"], str):\n    args[\"font\"] = Font.Find(args[\"font\"])\n\ndst = args[\"font\"].path\ncustom_folder = dst.name + \".vfview/renders\"\n\naxes = args[\"font\"].variations()\nif args[\"log\"]:\n    pprint(axes)\n\npossibles = []\nfor a in axes.keys():\n    for x in args[\"positions\"]:\n        possibles.append([a, x])\n\nvalids = []\nfor c in combinations(possibles, len(axes.keys())):\n    v = True\n    for idx, a in enumerate(c):\n        for jdx, a2 in enumerate(c):\n            if idx != jdx and a[0] == a2[0]:\n                v = False\n    if v:\n        valids.append(c)\n\naxes_combos = []\nfor combo in valids:\n    axs = {}\n    for k, v in combo:\n        axs[k] = v\n    axes_combos.append(axs)\n\nsq = math.floor(math.sqrt(len(axes_combos)))\n\nr:Rect = args[\"rect\"]\nrs = r.inset(20).grid(sq, math.ceil(len(axes_combos)/sq))\n\nif args[\"shuffle\"]:\n    rnd.shuffle(axes_combos)\n\n\n@animation(r,\n    timeline=60 if args[\"animate\"] else 1,\n    dst=dst,\n    custom_folder=custom_folder,\n    bg=0,\n    render_bg=1,\n    preview_only=args[\"preview_only\"])\ndef vf(f):\n    if args[\"animate\"]:\n        anim_combos = []\n        for ac in axes_combos:\n            anim_combo = {}\n            for k, v in ac.items():\n                anim_combo[k] = f.e(\"eeio\", 1, rng=(v, v+1))\n            anim_combos.append(anim_combo)\n    else:\n        anim_combos = axes_combos\n\n    def txt(x):\n        #return P(rs[x.i].inset(20))\n        return P(\n            StSt(args[\"text\"], args[\"font\"],\n                args[\"font_size\"] or rs[x.i].h-50,\n                rv=1,\n                **x.el)\n                .align(rs[x.i], tx=0)\n                .cond(args[\"stroke\"],\n                    lambda p: p.fssw(-1, 1, 2),\n                    lambda p: p.f(1)),\n            P().text(\",\".join([\"{:0.2f}\".format(v) for v in x.el.values()]),\n                Style(Font.RecursiveMono(), 24, fill=bw(1, 0.5), load_font=0),\n                rs[x.i].inset(50, 0)))\n\n    return (P().enumerate(anim_combos, txt))"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/tools/viewseq.py",
    "content": "from coldtype import *\nfrom coldtype.tool import parse_inputs\nfrom coldtype.renderable.animation import image_sequence\nfrom coldtype.img.skiaimage import SkiaImage\n\nargs = parse_inputs(__inputs__, dict(\n    path=[None, str, \"Must provide path to image sequence\"],\n    fps=[30, float],\n    fmt=[\"h264\", str],\n    date=[False, bool],\n    loops=[1, int],\n    reverse=[False, bool],\n    audio=[None, str],\n    set709=[True, bool],\n    dirsort=[\"x.name\", str],\n    ))\n\ndirsort = eval(f\"lambda x: {args['dirsort']}\")\n\ndef find_pngs(_root):\n    return sorted(list(_root.glob(\"*.png\")), key=lambda p: p.stem.split(\"_\")[-1])\n\nroot = Path(args[\"path\"]).expanduser().absolute()\n\nif not root.exists():\n    raise Exception(\"viewseq root path not found\")\n\nimages = find_pngs(root)\n\nif len(images) == 0:\n    for dir in sorted(filter(lambda x: not x.name.startswith(\".\"), root.iterdir()), key=dirsort):\n        if not dir.name.startswith(\".\"):\n            images.extend(find_pngs(dir))\n\ndef releaser(x:animation):\n    fe = FFMPEGExport(x, date=args[\"date\"], loops=args[\"loops\"], audio=args[\"audio\"], set_709=args[\"set709\"], output_folder=root.parent)\n    \n    if args[\"fmt\"] == \"h264\":\n        fe.h264()\n    elif args[\"fmt\"] == \"mov\":\n        fe.prores()\n    elif args[\"fmt\"] == \"gif\":\n        fe.gif()\n    \n    fe.write(verbose=True, name=root.stem)\n    fe.open()\n\n@image_sequence(images, args[\"fps\"], looping=args[\"reverse\"], release=releaser)\ndef viewseq(_): return None\n\n# def release():\n#     dst_dir = images[0].parent.parent.parent\n#     dst_name = images[0].parent.parent.stem\n\n#     print(dst_dir, dst_name)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/warping.py",
    "content": "# legacy alias / deprecated\nfrom coldtype.fx.warping import *"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/fonts.py",
    "content": "from coldtype.text.font import Font\n\nfrom pathlib import Path\nfrom dataclasses import dataclass\nfrom typing import List\nfrom shutil import copy2\n\n\n@dataclass\nclass WebFont():\n    font: Font\n    woff2: Path\n    woff2_relative: Path\n    bold: bool\n    italic: bool\n    variations: dict\n    embedded: str = None\n\n    def js_args(self):\n        return \", \".join([f\"{k}={(v['defaultValue']-v['minValue'])/(v['maxValue']-v['minValue'])}\" for k, v in self.variations.items()])\n    \n    def js_setter(self):\n        return \", \".join([f\"'{k}' ${{{v['minValue']}+({v['maxValue']}-{v['minValue']})*{k}}}\" for k, v in self.variations.items()])\n\n\n@dataclass\nclass WebFontFamily():\n    name: str\n    variable_name: str\n    fonts: List[WebFont]\n    embed: bool = False\n\n    @property\n    def variable_name_js(self):\n        return self.variable_name.replace(\"-\", \"_\")\n\n\ndef get_woff2(root, dst_folder, font_file, bold=False, italic=False, features={}):\n    #src = Font.Cacheable(src_folder / font_file)\n    src = Font.Find(font_file)\n    \n    if Path(src.path).suffix == \".woff2\":\n        woff2_src = Path(src.path)\n    else:\n        woff2_src = Path(src.path).with_suffix(\".woff2\")\n    \n    woff2_dst:Path = dst_folder / woff2_src.name\n    has_been_modded = False\n\n    if woff2_dst.exists():\n        src_mtime = Path(src.path).stat().st_mtime\n        dst_mtime = woff2_dst.stat().st_mtime\n        has_been_modded = dst_mtime < src_mtime\n    \n    if not woff2_dst.exists() or has_been_modded:\n        if woff2_src.exists():\n            copy2(woff2_src, woff2_dst)\n        else:\n            src.subset(woff2_dst, features=features)\n    \n    variations = src.variations()\n    for _, vs in variations.items():\n        try:\n            del vs[\"axisNameID\"]\n            del vs[\"flags\"]\n        except KeyError:\n            pass\n        vs[\"spread\"] = vs[\"maxValue\"] - vs[\"minValue\"]\n    \n    return WebFont(src, woff2_dst, woff2_dst.relative_to(root), bold, italic, variations)\n    \n\ndef woff2s(dst_folder, families_info, root):\n    dst_folder = Path(dst_folder).expanduser()\n    dst_folder.mkdir(exist_ok=True, parents=True)\n\n    families = []\n    for var_name, family in families_info.items():\n        fonts = []\n        features = family.get(\"_features\", {})\n        embed = \"_embed\" in family\n        for style_name, font in family.items():\n            if not style_name.startswith(\"_\"):\n                fonts.append(get_woff2(root, dst_folder, font,\n                    bold=\"bold\" in style_name,\n                    italic=\"italic\" in style_name,\n                    features=features))\n        _, family = fonts[-1].font.names()\n        families.append(WebFontFamily(family.replace(\" \", \"\"), var_name, fonts, embed=embed))\n    \n    return families\n\n\nif __name__ == \"__main__\":\n    woff2s(\"assets/fonts\", {\n        \"display-font\": dict(\n            regular=\"OhnoCasualVariable.woff2\"),\n        \"text-font\": dict(\n            regular=\"DegularVariable.woff2\")})"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/page.py",
    "content": "import re, frontmatter, markdown, json\n\nfrom pathlib import Path\nfrom dataclasses import dataclass\nfrom datetime import datetime\nfrom bs4 import BeautifulSoup\nfrom jinja2 import Template\nfrom pygments import highlight\nfrom pygments.lexers import PythonLexer\nfrom pygments.formatters import HtmlFormatter\nfrom lxml.html import fragment_fromstring, tostring\n\nfrom coldtype.img.skiaimage import SkiaImage\n\ndef count_words_in_markdown(markdown):\n    text = markdown\n    text = re.sub(r'<!--(.*?)-->', '', text, flags=re.MULTILINE)\n    text = text.replace('\\t', '    ')\n    text = re.sub(r'[ ]{2,}', '    ', text)\n    text = re.sub(r'^\\[[^]]*\\][^(].*', '', text, flags=re.MULTILINE)\n    text = re.sub(r'^( {4,}[^-*]).*', '', text, flags=re.MULTILINE)\n    text = re.sub(r'{#.*}', '', text)\n    text = text.replace('\\n', ' ')\n    text = re.sub(r'!\\[[^\\]]*\\]\\([^)]*\\)', '', text)\n    text = re.sub(r'</?[^>]*>', '', text)\n    text = re.sub(r'[#*`~\\-–^=<>+|/:]', '', text)\n    text = re.sub(r'\\[[0-9]*\\]', '', text)\n    text = re.sub(r'[0-9#]*\\.', '', text)\n    return len(text.split())\n\ndef wrap_images_with_links(html_string, grab_image, root:Path):\n    soup = BeautifulSoup(html_string, 'html.parser')\n\n    img_tags = soup.find_all('img')\n    for img_tag in img_tags:\n        a_tag = soup.new_tag('a')\n        src = img_tag[\"src\"]\n        src_path = root / Path(src[1:])\n        if not src_path.exists():\n            print(\"Image not found\", src_path)\n            img_tag['style'] = f\"width:200px;height:200px\"\n        else:\n            img = SkiaImage(src_path)\n            width = img.width()\n            mtime = int(src_path.stat().st_mtime)\n            tq = \"?t=\" + str(mtime)\n            img_tag['src'] = src + tq\n            hires_version = src_path.parent / \"hires\" / src_path.name\n            hires_link = None\n            if hires_version.exists():\n                hires_link = \"/\" + str(hires_version.relative_to(root)) + tq\n            \n            a_tag['href'] = img_tag['src']\n            a_tag[\"target\"] = \"_blank\"\n            a_tag['style'] = f\"max-width:{int(width/2)}px\"\n            img_tag['style'] = f\"max-width:{int(width/2)}px\"\n            figcaption = img_tag.find_parent('figure').find(\"figcaption\")\n            img_tag['alt'] = figcaption.get_text(strip=True)\n            img_tag.wrap(a_tag)\n            \n            if hires_link:\n                existing_text = figcaption.string\n                new_link = soup.new_tag('a', href=hires_link)\n                new_link.string = \"Hi-Res\"\n                figcaption.clear()  # Clear existing content\n                figcaption.append(existing_text or \"\")\n                figcaption.append(' / ')\n                figcaption.append(new_link)\n    \n    for p_tag in soup.find_all('p'):\n        length = len(p_tag.get_text(strip=True))\n        if length == 0:\n            p_tag.extract()\n    \n    if grab_image is not None:\n        try:\n            first_figure = soup.find(\"figure\")\n            first_figure.extract()\n            first_figure.find(\"a\")[\"href\"] = grab_image\n            first_figure.find(\"a\")[\"target\"] = \"\"\n            first_figure.find(\"figcaption\").extract()\n            return str(first_figure), str(soup)\n        except AttributeError:\n            pass\n    \n    return None, str(soup)\n\ndef md_process(text, grab_image, root:Path):\n    #text = text.replace(\"?_\", \"?_&nbsp;\")\n    raw = markdown.markdown(text, extensions=[\"smarty\", \"markdown_captions\", \"footnotes\"])\n    #return None, raw\n    return wrap_images_with_links(raw, grab_image, root)\n\n@dataclass\nclass Page:\n    path: Path\n    date: str\n    slug: str\n    title: str\n    template: str\n    preview: str\n    content: str\n    data: dict\n    preview_image: str\n\n    def date_rfc_822(self):\n        if \"/\" in str(self.date):\n            input_date = datetime.strptime(str(self.date) + \" 18:00:00 +0000\", \"%m/%d/%Y %H:%M:%S %z\")\n        else:\n            input_date = datetime.strptime(str(self.date) + \" 18:00:00 +0000\", \"%Y-%m-%d %H:%M:%S %z\")\n        return input_date.strftime(\"%a, %d %b %Y %H:%M:%S %z\")\n\n    def word_count(self):\n        return str(count_words_in_markdown(self.data.content))\n    \n    def image_count(self):\n        count = 0\n        for line in self.data.content.split(\"\\n\"):\n            if line.strip().startswith('!['):\n                count += 1\n        return str(count)\n    \n    def unpublished(self):\n        return self.date is None\n    \n    def output_path(self, sitedir:Path):\n        op = sitedir / self.slug\n        if str(op).endswith(\".html\"):\n            return op\n        else:\n            return op / \"index.html\"\n    \n    @staticmethod\n    def get_slug(file:Path, root:Path, slugs:str):\n        if \"nested\" in slugs:\n            slug = str(Path(file).relative_to(root / \"pages\").with_suffix(\"\"))\n        else:\n            slug = file.stem\n        \n        if \"html\" in slugs:\n            return slug + \".html\"\n        return slug\n    \n    @staticmethod\n    def load_notebook(file:Path, root:Path, template:Template, template_fn=None, slugs=\"flat\") -> \"Page\":\n        data = json.loads(file.read_text())\n        frontmatter = eval(\"\".join(data[\"cells\"][0][\"source\"]))\n\n        default_slug = Page.get_slug(file, root, slugs)\n        slug = frontmatter.get(\"slug\", default_slug)\n        \n        frontmatter[\"notebook\"] = True\n\n        cells = []\n        for c in data[\"cells\"][1:]:\n            ct = c[\"cell_type\"]\n            if ct == \"markdown\":\n                cells.append(dict(text=markdown.markdown(\"\".join(c[\"source\"]), extensions=[\"smarty\", \"fenced_code\"])))\n            elif ct == \"code\":\n                src = \"\".join(c[\"source\"])\n                if src.strip().startswith(\"#hide-publish\") or src.strip().startswith(\"#hide-blog\"):\n                    continue\n            \n                lines = []\n                for line in src.splitlines():\n                    if not line.strip().endswith(\"#hide-publish\") and not line.strip().endswith(\"#hide-blog\"):\n                        lines.append(line)\n                \n                src = \"\\n\".join(lines)\n                \n                highlit = fragment_fromstring(\n                    highlight(src, PythonLexer(),\n                        HtmlFormatter(linenos=False)))\n                html = tostring(highlit, pretty_print=True, encoding=\"utf-8\").decode(\"utf-8\")\n                cell = dict(html=html)\n\n                outputs = []\n                if \"outputs\" in c:\n                    for o in c[\"outputs\"]:\n                        if o[\"output_type\"] == \"display_data\" and o[\"data\"] and \"text/html\" in o[\"data\"]:\n                            outputs.append(o[\"data\"][\"text/html\"])\n                            #print(o[\"data\"][\"text/html\"][:10])\n                        elif o.get(\"name\") == \"stdout\":\n                            outputs.append([\"<pre class='stdout'>\" + \"\".join(o[\"text\"]) + \"</pre>\"])\n                            #print(outputs[-1][10])\n                        else:\n                            pass\n                \n                if len(outputs) > 0:\n                    cell[\"outputs\"] = outputs\n                else:\n                    cell[\"no_outputs\"] = True\n                cells.append(cell)\n        \n        notebook_html = template.render(cells=cells)\n        \n        title = frontmatter.get(\"title\", \"Untitled\")\n        \n        if template_fn:\n            page_template = template_fn(data)\n        else:\n            page_template = data.get(\"template\")\n            if page_template is None:\n                page_template = \"_\" + str(file.parent.stem)[:-1]\n        \n        return Page(file, frontmatter.get(\"date\"), slug, title, page_template, None, notebook_html, frontmatter, None)\n    \n\n    @staticmethod\n    def load_markdown(file:Path, root:Path, template_fn=None, slugs=\"flat\") -> \"Page\":\n        data = frontmatter.loads(file.read_text())\n\n        default_slug = Page.get_slug(file, root, slugs)\n        \n        slug = data.get(\"slug\", default_slug)\n        title = data.get(\"title\", \"Untitled\")\n\n        if template_fn:\n            template = template_fn(data)\n        else:\n            template = data.get(\"template\")\n            if template is None:\n                template = \"_\" + str(file.parent.stem)[:-1]\n\n        preview_txt = data.content.split(\"+++\")[0].replace(\"ßßß\", \"\")\n        preview_txt = re.sub(r'\\[\\^(\\d+)\\]', '', preview_txt)\n        preview_image, preview = md_process(preview_txt, f\"/{slug}\", root)\n\n        _, content = md_process(data.content\n            .replace(\"+++\", \"<h5 class='continuation' id='continue-reading'>•••</h5>\")\n            .replace(\"ßßß\", \"<div class='spacer'></div>\")\n            .replace(\"---\", \"<div class='section'>•••</div>\"), None, root)\n        \n        return Page(file, data.get(\"date\"), slug, title, template, preview, content, data, preview_image)"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/server.py",
    "content": "import socket, subprocess, os, signal\nfrom pathlib import Path\n\ntry:\n    import livereload\nexcept ImportError:\n    print(\"> pip install livereload\")\n\n\ndef is_port_in_use(port: int) -> bool:\n    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:\n        return s.connect_ex(('localhost', port)) == 0\n\n\ndef maybe_run_server(livereload:bool, port:int, dir:Path):\n    if not is_port_in_use(port):\n        if livereload:\n            os.system(\" \".join([\"livereload\", \"-p\", str(port), str(dir), \"&>/dev/null\", \"&\"]))\n        else:\n            os.system(f\"python -m http.server {port} -d {dir} &>/dev/null &\")\n        return True\n    else:\n        return False\n\n\ndef kill_process_on_port_unix(port):\n    os.system(f\"lsof -i tcp:{port} | awk 'NR!=1 {{print $2}}' | xargs kill\")\n\n\n"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/site.py",
    "content": "import jinja2, os, re, subprocess, shutil\n\nfrom coldtype.renderable import renderable\nfrom coldtype.geometry import Rect\nfrom coldtype.text import Style\n\nfrom coldtype.web.server import maybe_run_server, kill_process_on_port_unix\nfrom coldtype.web.fonts import woff2s\nfrom coldtype.web.page import Page\n\nfrom pathlib import Path\nfrom random import randint\nfrom datetime import datetime, timezone\n\ngenerics_folder = Path(__file__).parent / \"templates\"\ngenerics_env = jinja2.Environment(loader=jinja2.FileSystemLoader(generics_folder))\nstring_env = jinja2.Environment(loader=jinja2.BaseLoader())\n\ntry:\n    from sourcetypes import jinja_html, css, js\nexcept ImportError:\n    jinja_html = str\n\n\nnav_template: jinja_html = \"\"\"\n<nav>\n    <ul>{% for n in nav_links %}\n        <li><a href=\"{{n.href}}\" {% if n.classes %}class=\"{{ n.classes }}\" {% endif %}>{{n.title}}</a></li>\n    {% endfor %}</ul>\n</nav>\n\"\"\"\n\nclass site(renderable):\n    def __init__(self, root\n        , port=8008\n        , multiport=None\n        , livereload=True\n        , info=dict()\n        , sources=None\n        , generators=None\n        , fonts=None\n        , rect=Rect(200, 200)\n        , watch=None\n        , template=None\n        , slugs=\"flat\"\n        , pagemod=None\n        , favicon=None\n        , symlink_renders=True\n        , symlink_media=True\n        , **kwargs\n        ):\n        self._watch = watch or []\n\n        self._watch.append(generics_folder / \"page.j2\")\n        \n        self.root = root\n        self.info = info\n        self.livereload = livereload\n        self.sources = sources or {}\n        self.generators = generators or {}\n        self.template_fn = template\n        self.slugs = slugs\n        self.favicon = favicon\n        self.pagemod = pagemod or (lambda x: x)\n\n        self.symlink_renders = symlink_renders\n        self.symlink_media = symlink_media\n        \n        self.port = port\n        self.multiport = multiport\n\n        self.generic_templates = {\n            \"page\": generics_env.get_template(\"page.j2\"),\n            \"notebook\": generics_env.get_template(\"notebook.j2\")\n        }\n\n        self.site_env = jinja2.Environment(loader=jinja2.FileSystemLoader(str(self.root / \"templates\")))\n\n        self.sitedir = self.root / Path(\"_site\")\n        self.sitedir.mkdir(exist_ok=True)\n\n        if self.multiport:\n            self.multisitedir = Path(\"_site\")\n            self.multisitedir.mkdir(exist_ok=True)\n        \n        if fonts:\n            self.fonts = woff2s(self.sitedir / \"assets/fonts\", fonts, self.sitedir)\n            for family in self.fonts:\n                if family.embed:\n                    from base64 import b64encode\n                    for font in family.fonts:\n                        font.embedded = str(b64encode(font.woff2.read_bytes()), encoding=\"utf-8\")\n        else:\n            self.fonts = []\n\n        for d in [\"media\", \"renders\"]:\n            do_symlink = getattr(self, f\"symlink_{d}\")\n            if do_symlink:\n                src = self.root / d\n                symlink = self.sitedir / d\n                if src.exists() and not symlink.exists():\n                    os.symlink(src, symlink)\n        \n        assetsdir = self.root / \"assets\"\n        style_file = None\n        if assetsdir.exists():\n            style = assetsdir / \"style.css\"\n            if style.exists():\n                style_file = True\n                self._watch.append(style)\n        \n            shutil.copytree(assetsdir, self.sitedir / \"assets\", dirs_exist_ok=True)\n\n            if style.exists():\n                style2 = (self.sitedir / \"assets/style.css\")\n                style2.write_text(self.mod_css(style2.read_text()))\n        \n        if self.info.get(\"style\"):\n            self.info[\"style\"] = self.mod_css(self.info[\"style\"])\n        else:\n            if style_file is not None:\n                self.info[\"has_style\"] = True\n\n        if self.info.get(\"scripts\"):\n            for script in self.info[\"scripts\"]:\n                if script.startswith(\"http\"):\n                    pass\n                else:\n                    if script.startswith(\"/\"):\n                        ps = self.root / script[1:]\n                    else:\n                        ps = self.root / script\n                    if ps.exists():\n                        self._watch.append(ps)\n                    else:\n                        print(ps, \"does not exist\")\n    \n        self.templates = {}\n        for j2 in (self.root / \"templates\").glob(\"*.j2\"):\n            self._watch.append(j2)\n            self.templates[j2.stem] = self.site_env.get_template(j2.name)\n        \n        for k, v in self.info.get(\"templates\", {}).items():\n            self.templates[k] = string_env.from_string(v)\n        \n        self.pages = []\n        \n        for file in (self.root / \"pages\").glob(\"**/*.md\"):\n            self._watch.append(file)\n            page = Page.load_markdown(file, self.root, self.template_fn, self.slugs)\n            self.pages.append(self.pagemod(page))\n        \n        for file in (self.root / \"pages\").glob(\"**/*.ipynb\"):\n            # TODO could check gitignore here?\n            self._watch.append(file)\n            page = Page.load_notebook(file, self.root, self.generic_templates[\"notebook\"], self.template_fn, self.slugs)\n            self.pages.append(self.pagemod(page))\n\n        super().__init__(rect, watch=self._watch, **kwargs)\n    \n    def build(self):\n        favicons = []\n\n        if self.favicon:\n            from favicons import Favicons\n\n            if isinstance(self.favicon, renderable):\n                favicon_path = self.favicon.render_to_disk()[0]\n            else:\n                favicon_path = self.root / self.favicon\n\n            with Favicons(favicon_path, self.sitedir) as fs:\n                fs.generate()\n                favicons = fs.html()\n\n        version = randint(0, 100000000)\n        year = int(datetime.now().year)\n        build_time_utc = datetime.now(timezone.utc)\n        rfc_822_format = \"%a, %d %b %Y %H:%M:%S %z\"\n        formatted_time = build_time_utc.strftime(rfc_822_format)\n\n        self.standard_data = dict(\n            version=version\n            , build=formatted_time\n            , info=self.info\n            , year=year\n            , root=self.root\n            , sitedir=self.sitedir\n            , fonts=self.fonts\n            , favicons=favicons\n            , str=str)\n        \n        for k, v in self.sources.items():\n            self.standard_data[k] = v(self)\n\n        for k, _ in self.templates.items():\n            if not k.startswith(\"_\"):\n                self.render_page(k)\n            \n        for page in self.pages:\n            self.render_page(page)\n        \n        for k, g in self.generators.items():\n            g(self)\n\n        if self.multiport:\n            dst = self.multisitedir / self.root.stem\n            dst.mkdir(exist_ok=True, parents=True)\n            #shutil.copytree(sitedir, dst, dirs_exist_ok=True)\n\n            os.system(f'rsync -r {self.sitedir}/ {dst}')\n\n            for page in dst.glob(\"**/*.html\"):\n                html = Path(page).read_text()\n                html = re.sub(r\"=\\\"/\", f'=\"/{self.root.stem}/', html)\n                html = re.sub(r\"url\\('/\", f\"url('/{self.root.stem}/\", html)\n                Path(page).write_text(html)\n    \n    def mod_css(self, css):\n        def expander(m):\n            fontvar = f\"{m[1]}-font\"\n            font = [f for f in self.fonts if f.variable_name == fontvar][0]\n            props = eval(f\"dict({m[2]})\")\n            style = Style(font.fonts[0].font, **props)\n            fvs = \", \".join([f'\"{k}\" {int(v)}' for k,v in style.variations.items()])\n            return f'font-family: var(--{fontvar}), sans-serif;\\n    font-variation-settings: {fvs}'\n        \n        def inline_import(m):\n            path = Path(m[1])\n            if path.exists():\n                self._watch.append(path)\n                return f\"/* start:{path} */\\n\\n\" + self.mod_css(path.read_text()) + f\"\\n\\n/* end:{path} */\"\n        \n        css = re.sub(r\"--([a-z]+)-font:\\s?fvs\\(([^\\)]+)\\)\", expander, css)\n        css = re.sub(r\"@import \\\"([^\\\"]+)\\\";\", inline_import, css)\n\n        return css\n\n    def header_footer(self, nav_links, url, page=None):\n        nav_html = string_env.from_string(nav_template).render(nav_links=nav_links)\n\n        header = self.templates.get(\"_header\", False)\n        if header:\n            header = header.render({**self.standard_data, **dict(nav_links=nav_links, nav_html=nav_html, url=url, page=page)})\n        \n        footer = self.templates.get(\"_footer\", False)\n        if footer:\n            footer = footer.render({**self.standard_data, **dict(nav_links=nav_links, nav_html=nav_html, url=url, page=page)})\n        \n        return header, footer\n    \n    def render_page(self, page:Page=None, data=None):\n        nav = self.info.get(\"navigation\", {})\n        header_title = self.info.get(\"title\")\n\n        if isinstance(page, str):\n            template_name = page\n            page = None\n        else:\n            template_name = page.template\n        \n        wrap = True\n\n        if template_name == \"index\":\n            path = self.sitedir / \"index.html\"\n            url = \"/\"\n        elif page is not None:\n            if page.title:\n                header_title = header_title + \" | \" + page.title\n            \n            path = page.output_path(self.sitedir)\n            url = f\"/{page.slug}\"\n        else:\n            # TODO way to get a custom title on a bare template\n            url = f\"/{template_name}\"\n            if \".\" in template_name:\n                wrap = False\n                path = self.sitedir / f\"{template_name}\"\n            else:\n                path = self.sitedir / f\"{template_name}/index.html\"\n                \n\n        nav_links = []\n        for k, v in nav.items():\n            current = v == url\n            \n            if isinstance(v, str):\n                classes = []\n            else:\n                v, classes = v\n            \n            if current: classes.append(\"current\")\n            \n            nav_links.append(dict(title=k\n                , current=current\n                , href=v\n                , external=v.startswith(\"http\")\n                , classes=\" \".join(classes)))\n        \n        header, footer = self.header_footer(nav_links, url, page)\n        \n        content = self.mod_css(self.templates[template_name].render({**self.standard_data, **dict(page=page, url=url), **(data or {})}))\n        \n        path.parent.mkdir(exist_ok=True, parents=True)\n\n        #print(\"URL\", url)\n        \n        if wrap:\n            path.write_text(self.generic_templates[\"page\"].render({\n                **self.standard_data, **dict(\n                    content=content\n                    , url=url\n                    , info=self.info\n                    , header=header\n                    , footer=footer\n                    , title=header_title\n                    , description=self.info.get(\"description\"))}))\n        else:\n            path.write_text(content)\n        \n    def initial(self):\n        kill_process_on_port_unix(self.port)\n        maybe_run_server(self.livereload, self.port, self.sitedir)\n        if self.multiport:\n            kill_process_on_port_unix(self.multiport)\n            maybe_run_server(self.livereload, self.multiport, self.multisitedir)\n    \n    def exit(self):\n        kill_process_on_port_unix(self.port)\n        if self.multiport:\n            kill_process_on_port_unix(self.multiport)\n    \n    def upload(self, bucket, region=\"us-east-1\", profile=None):\n        args_nocache = [\n            \"aws\", \"s3\",\n            \"--region\", region,\n            \"sync\",\n            \"--cache-control\", \"no-cache\",\n            \"--exclude\", \"*\",\n            \"--include\", \"*.html\",\n            \"--include\", \"*.xml\",\n            self.sitedir,\n            f\"s3://{bucket}\"\n        ]\n        \n        args_cache = [\n            \"aws\", \"s3\",\n            \"--region\", region,\n            \"sync\",\n            self.sitedir,\n            f\"s3://{bucket}\",\n            \"--exclude\", \".git/*\",\n            \"--exclude\", \"venv/*\",\n            \"--exclude\", \"*.html\"\n        ]\n\n        if profile is not None:\n            args_nocache.extend([\"--profile\", profile])\n            args_cache.extend([\"--profile\", profile])\n        \n        subprocess.run(args_nocache)\n        subprocess.run(args_cache)\n\n        print(\"/upload\")"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/templates/notebook.j2",
    "content": "<div class=\"notebook\">\n  {% for cell in cells %}\n  {% if cell.text is defined %}\n  <div class=\"text\">\n    {{ cell.text }}\n  </div>\n  {% elif cell.html is defined %}\n  <div class=\"code {% if cell.no_outputs %}no-outputs{% else %}has-outputs{% endif %}\">\n    {{ cell.html|safe }}\n  </div>\n  {% if cell.outputs is defined %}\n  <div class=\"code-outputs\">\n    {% for output in cell.outputs %}\n    {% for html in output %}\n    {{ html|safe }}\n    {% endfor %}\n    {% endfor %}\n  </div>\n  {% endif %}\n  {% endif %}\n  {% endfor %}\n</div>"
  },
  {
    "path": "packages/coldtype-core/src/coldtype/web/templates/page.j2",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\"/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n  <title>{{ title }}</title>\n  {% if atom %}<link rel=\"alternate\" type=\"application/atom+xml\" title=\"{{ title }}\" href=\"/atom.xml\">{% endif %}\n  <meta name=\"description\" content=\"{{ description }}\">\n  <meta property=\"og:title\" content=\"{{ title }}\"/>\n  <meta property=\"og:type\" content=\"website\"/>\n  {% for favicon in favicons %}{{ favicon|safe }}\n  {% endfor %}\n  <style type=\"text/css\">{% for family in fonts %}{% for font in family.fonts %}\n    @font-face {\n      {% if font[\"variations\"] %}/* {% for k, v in font[\"variations\"].items() %} {{ k }} {{ v[\"minValue\"] }} {{ v[\"maxValue\"] }} ({{ v[\"defaultValue\"] }}) {% endfor %}*/{% else %}/* static font */{% endif %}\n      font-family: '{{family.name}}Web';\n      {% if font.embedded %}\n      src: url(data:font/woff2;charset=utf-8;base64,{{font.embedded}}) format('woff2');\n      {% else %}\n      src: url('/{{str(font.woff2.relative_to(root)).replace(\"_site/\", \"\")}}?t=1') format('woff2');\n      {% endif %}\n      font-weight: {% if font.bold %}bold{% else %}regular{% endif %};\n      font-style: {% if font.italic %}italic{% else %}normal{% endif %};\n    }{% endfor %}{% endfor %}\n\n    :root { {% for family in fonts %}\n      --{{ family.variable_name }}: \"{{ family.name }}Web\", sans-serif;{% endfor %}\n    }\n\n    * { padding: 0; margin: 0; font-weight: normal; }\n    body { font-family: var(--text-font); }\n\n    #skip-to-main {\n      color: white;\n      background: black;\n      display: inline-block;\n      position: absolute;\n      top: 0px;\n      left: -100%;\n      padding: 0px;\n      z-index: 100;\n    }\n\n    #skip-to-main:focus {\n      left: 0px;\n    }\n  </style>\n  {% if info[\"style\"] %}\n  <style type=\"text/css\">\n  {{ info[\"style\"] }}\n  </style>\n  {% elif info[\"has_style\"] %}\n  <link rel=\"stylesheet\" href=\"/assets/style.css?t={{ version }}\"/>\n  {% endif %}\n  <script type=\"text/javascript\">\n    const fontdata = {};\n    {% for family in fonts %}{% for font in family.fonts %}{% if font.variations %}\n    fontdata['{{ family.name }}Web'] = {{ font.variations }};{% endif %}{% endfor %}{% endfor %}\n\n    {% for family in fonts %}{% for font in family.fonts %}{% if font.variations %}\n    function fvs_{{family.variable_name_js}}(el, {{ font.js_args() }}) {\n      el.style.fontVariationSettings = `{{ font.js_setter() }}`;\n    }\n    {% endif %}{% endfor %}{% endfor %}\n  </script>\n</head>\n<body{% if url == \"/\" %} class=\"index\"{% endif %}>\n  <header id=\"header\">\n    <a href=\"#maincontent\" id=\"skip-to-main\">Skip to main content</a>\n    {% if header %}\n    <div class=\"wrapper\">\n      {{ header|safe }}\n    </div><!-- /wrapper -->\n    {% endif %}\n  </header>\n  <main id=\"maincontent\">\n    <div class=\"wrapper\">\n    {{ content|safe }}\n    </div><!-- /wrapper -->\n  </main>\n  <footer id=\"footer\">\n    {% if footer %}\n    <div class=\"wrapper\">\n    {{ footer|safe }}\n    </div><!-- /wrapper -->\n    {% endif %}\n  </footer>\n  {% if info[\"scripts\"] %}\n  {% for script in info[\"scripts\"] %}\n  <script type=\"text/javascript\" src=\"{{ script }}?t={{ version }}\"></script>\n  {% endfor %}\n  {% endif %}\n  {% if info[\"script\"] %}\n  <script type=\"text/javascript\">\n  {{ info[\"script\"] }}\n  </script>\n  {% endif %}\n</body>\n</html>"
  },
  {
    "path": "pyproject.toml",
    "content": "[tool.uv.workspace]\nmembers = [\"packages/*\"]"
  },
  {
    "path": "release.sh",
    "content": "rm -rf dist\ncd packages/coldtype-core\nuv build\ncd ../coldtype\nuv build\ncd ../..\nuvx uv-publish"
  },
  {
    "path": "run_tests.sh",
    "content": "ADD_UI=0 uv run python -m unittest discover test/\nADD_UI=0 uv run coldtype tests -td"
  },
  {
    "path": "scripts/inline_mixins.py",
    "content": "import re\nfrom pathlib import Path\n\nrunon = Path(\"packages/coldtype-core/src/coldtype/runon\")\n_path = runon / \"_path.py\"\nmixins = runon / \"mixins\"\nout = runon / \"path.py\"\n\ncode = _path.read_text()\nall_imports = []\nall_functions = []\n\nfor mixin in mixins.glob(\"*Mixin.py\"):\n    _code = mixin.read_text()\n    cd = re.findall(r\"class [^\\:]+Mixin\\(\\)\\:\", _code)[0]\n    imports, functions = _code.split(cd)\n    all_imports.extend([n for n in imports.splitlines() if n])\n    all_functions.extend(functions.splitlines())\n\nall_functions = \"\\n\".join(all_functions)\n\nfs = []\nlast_sig = None\nmatches = re.findall(r\"[\\s]{4}def[^\\(]+\\(self[^\\)]+\\)\\:\", all_functions)\nannotated = []\n\ndef write_last(src):\n    global last_sig\n    if last_sig:\n        if \"return self\" in src:\n            last_sig = (last_sig[:-1] + \" -> \\\"P\\\":\")\n        annotated.append(last_sig)\n        annotated.append(src)\n        #commented_form = last_sig.replace(\"def \", \"def _\")\n        #annotated.append(commented_form)\n        #annotated.append(f\"{commented_form}\\n        return self\\n\\n\")\n        #print(commented_form)\n        print(last_sig.splitlines()[0])\n\nfor f in matches:\n    before, after = all_functions.split(f)\n    all_functions = after\n    write_last(before)\n    last_sig = f\n\nwrite_last(after)\nprint(len(matches))\n\nout.write_text(code\n    .replace(\"# WARNING\", '\"\"\"\\n\\n\\n\\n\\n\\n⚠️ This file was autogenerated\\nby scripts/inline_mixins.py ⚠️\\n\\n\\n\\n\\n\\n\"\"\"')\n    .replace(\"# IMPORTS\", \"\\n\".join(all_imports))\n    .replace(\"# MIXINS\", \"\\n\".join(annotated)))"
  },
  {
    "path": "scripts/keyboard_layout_converter.py",
    "content": "from coldtype import *\nfrom coldtype.renderer.keyboard import symbol_to_glfw, SHORTCUTS\n\nimport json\n\n# layouts downloaded from https://github.com/ai/convert-layout\n\nlayouts = [x for x in list(Path(\"~/Downloads/convert-layout-main\").expanduser().glob(\"*.json\")) if x.stem not in [\"package\"]]\n\nkeyboards = {l.stem:json.loads(l.read_text()) for l in layouts}\n\nfor layout in layouts:\n    print(layout)\n\nALT_LOOKUP = {\n    \"[\": \"<bracket-right>\",\n    \"]\": \"<bracket-left>\",\n    \"\\\\\": \"<backslash>\",\n}\n\nREV_ALT_LOOKUP = {v:k for k,v in ALT_LOOKUP.items()}\n\nvalid_keys = set()\n\nfor k, v in SHORTCUTS.items():\n    for n in v:\n        if n[1] in REV_ALT_LOOKUP:\n            valid_keys.add(REV_ALT_LOOKUP[n[1]])\n        else:\n            valid_keys.add(n[1])\n\nremaps = {}\n\nfor name, keyboard in keyboards.items():\n    remaps[name] = {}\n    for k, v in keyboard.items():\n        if k != v:\n            if k in valid_keys:\n                if k in ALT_LOOKUP: k = ALT_LOOKUP[k]\n                if v in ALT_LOOKUP: v = ALT_LOOKUP[v]\n                try:\n                    remaps[name][symbol_to_glfw(k)] = symbol_to_glfw(v)\n                except:\n                    print(\"UNMAPPABLE\", k, v)\n\nremaps = {k:v for k,v in remaps.items() if len(v) > 0}\n\n#print(list(remaps.keys()))\n\nimport black\nprint(black.format_str(str(remaps), mode=black.Mode(line_length=300)))\n\n#for k, remap in remaps.items():\n#    print(k, remap)\n\n@animation((100, 100))\ndef scratch(f:Frame):\n    return None"
  },
  {
    "path": "scripts/robofont_coldtype.py",
    "content": "from mojo.events import addObserver, removeObserver\nfrom defconAppKit.windows.baseWindow import BaseWindowController\nfrom vanilla import FloatingWindow, CheckBox, EditText\nfrom fontTools.pens.recordingPen import RecordingPen\nfrom pathlib import Path\nimport json\n\nDEFAULT_PATH = \"~/robofont-coldtype.json\"\n\nclass ColdtypeSerializer(BaseWindowController):\n    def __init__(self):\n        self.w = FloatingWindow((300, 68), \"Coldtype Serializer\", minSize=(123, 200))\n        self.w.globalToggle = CheckBox((10, 10, -10, 20), 'serialize?', value=True)\n        self.w.pathBox = EditText((10, 34, -10, 22),\n            text=DEFAULT_PATH,\n            callback=self.editTextCallback)\n        self.path = Path(DEFAULT_PATH).expanduser().absolute()\n        addObserver(self, \"shouldDraw\", \"fontWillSave\")\n        \n        self.setUpBaseWindowBehavior()\n        self.w.open()\n        \n        self.writeGlyph()\n    \n    def editTextCallback(self, sender):\n        self.path = Path(sender.get()).expanduser().absolute()\n    \n    def windowCloseCallback(self, sender):\n        removeObserver(self, 'fontWillSave')\n        super(ColdtypeSerializer, self).windowCloseCallback(sender)\n        \n        self.writeGlyph()\n    \n    def writeGlyph(self):\n        glyph = CurrentGlyph()\n        image = glyph.image\n        \n        print(\">>>> writeGlyph\", glyph, image)\n        \n        data_out = {\n            \"font\": CurrentFont().path,\n            \"name\": glyph.name,\n            \"image\": dict(offset=image.offset, scale=image.scale, fileName=image.__dict__[\"_wrapped\"][\"fileName\"]),\n            \"layers\": {}\n        }\n        \n        for g in glyph.layers:\n            rp = RecordingPen()\n            g.draw(rp)\n\n            contours = []\n            for c in glyph.contours:\n                contour = []\n                for pt in c.points:\n                    contour.append(dict(type=pt.type, x=pt.x, y=pt.y, smooth=pt.smooth, name=pt.name))\n                contours.append(contour)\n\n            data_out[\"layers\"][g.layer.name] = dict(\n                value=rp.value,\n                width=g.width,\n                contours=contours)\n            \n        self.path.write_text(json.dumps(data_out))\n\n    def shouldDraw(self, notification):\n        if not self.w.globalToggle.get():\n            return\n        \n        self.writeGlyph()\n\nColdtypeSerializer()"
  },
  {
    "path": "test/drawbot/db_cli.py",
    "content": "from random import random\nfrom coldtype.drawbot import *\nfrom coldtype.text.reader import StyledString, Style, Font\n\nmistral = Font.Find(\"MistralD.otf\")\n\nsave = \"test/drawbot/hello.pdf\"\n\nwith new_drawing(\"letter\", save_to=save) as (idx, r):\n    s = (StyledString(\"Hello\", Style(mistral, 300))\n        .pens()\n        .f(hsl(random(), s=1))\n        .align(r))\n    \n    print(s.attrs)\n\n    db.fill(*hsl(random(), l=0.3))\n    db.rect(*s.ambit())\n    s.chain(dbdraw)"
  },
  {
    "path": "test/drawbot/direct_import.py",
    "content": "import sys\nsys.path.insert(0, \"/Users/robstenson/Goodhertz/coldtype\")\n\nfrom coldtype.drawbot import *\n\ndp = (P()\n    .define(r=Rect(100, 100), c=75)\n    .gs(\"$r↗ ↘|$c|$r↓ ↙|$c|$r↖\")\n    .align(Rect(1000, 1000))\n    .scale(5)\n    .f(hsl(0.45))\n    .ch(dbdraw))"
  },
  {
    "path": "test/drawbot/style_test.py",
    "content": "import sys\nfrom pathlib import Path\nsys.path.insert(0, str(Path(\"~/Goodhertz/coldtype\").expanduser()))\n\nfrom coldtype.drawbot import *\n\nwith new_page() as r:\n    mistral = Font.Find(\"MistralD.otf\")\n\n    s = (StSt(\"Hello\", mistral, 300)\n        .f(hsl(0.3, s=1))\n        .align(r))\n\n    with db.savedState():\n        db.fill(None)\n        db.stroke(0)\n        db.strokeWidth(2)\n        db.rect(*s.ambit())\n\n    s.chain(dbdraw)\n\n    circle = (P()\n        .oval(r.inset(200))\n        .reverse()\n        .rotate(0))\n    s2 = (s\n        .copy()\n        .zero_translate()\n        .distribute_on_path(circle)\n        .chain(dbdraw))\n\n    print(s.f())\n    print(s2.f())\n\n    db.fontSize(24)\n    db.text(\"Mistral\", s.ambit().inset(0, -50).ps, align=\"center\")"
  },
  {
    "path": "test/source_file.py",
    "content": "from coldtype import *\nfrom .source_file_adjacent import * #INLINE\n\n@animation()\ndef test_src_animation(f):\n    return (StSt(\"COLDTYPE\",\n        \"assets/ColdtypeObviously-VF.ttf\",\n        wdth=f.e(\"linear\", 1))\n        .align(f.a.r))"
  },
  {
    "path": "test/source_file_adjacent.py",
    "content": "hello = \"world\""
  },
  {
    "path": "test/source_file_with_config.py",
    "content": "from coldtype import *\n\n# .coldtype\nWINDOW_PIN = \"SW\"\n\n@renderable()\ndef test1(r):\n    return (StSt(\"COLDTYPE\", Font.ColdtypeObviously())\n        .align(r))\n\n@renderable()\ndef test2(r):\n    return (StSt(\"COLDTYPE\", Font.MutatorSans())\n        .align(r))"
  },
  {
    "path": "test/test_geometry.py",
    "content": "import unittest\nfrom coldtype.geometry import Rect\n\nclass TestGeometry(unittest.TestCase):\n    def test_rect(self):\n        r = Rect(0, 0, 10, 10)\n        self.assertEqual(r.xywh(), [0, 0, 10, 10])\n\n        r = Rect(10, 10)\n        self.assertEqual(r.xywh(), [0, 0, 10, 10])\n\n        r = Rect(10)\n        self.assertEqual(r.xywh(), [0, 0, 10, 10])\n\n        r = Rect([0, 0, 10, 10])\n        self.assertEqual(r.xywh(), [0, 0, 10, 10])\n\n        r = Rect([10, 10])\n        self.assertEqual(r.xywh(), [0, 0, 10, 10])\n\n        r = Rect(\"letter\")\n        self.assertEqual(r.xywh(), [0, 0, 612, 792])\n    \n    def test_interpolate(self):\n        a = Rect(0, 0, 500, 100)\n        b = Rect(0, 0, 200, 100)\n        i = a.interp(0.5, b)\n        self.assertEqual(i.w, 200+(500-200)/2)\n        self.assertEqual(i.h, 100)\n        self.assertEqual(i.xy(), [0, 0])\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_helpers.py",
    "content": "import unicodedata, unittest\nfrom pathlib import Path\nfrom coldtype.helpers import glyph_to_uni, uni_to_glyph\n\n\nclass TestHelpers(unittest.TestCase):\n    def test_glyph_to_uni(self):\n        self.assertEqual(glyph_to_uni(\"A\"), 65)\n        self.assertEqual(uni_to_glyph(66), \"B\")\n        self.assertEqual(glyph_to_uni(\"noondotbelow\"), ord(\"ڹ\"))\n\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_p.py",
    "content": "import unittest\nfrom coldtype.runon.path import P\n\nfrom fontTools.pens.recordingPen import RecordingPen\n\nfrom coldtype.geometry import Point, Rect\nfrom coldtype.text import StSt, Font, Glyphwise, Style\n\n\nclass TestRunonPath(unittest.TestCase):\n    def test_init(self):\n        r = P()\n        self.assertIsInstance(r.v, RecordingPen)\n        self.assertEqual(r.val_present(), False)\n\n        r = P(P())\n        self.assertIsInstance(r.v, RecordingPen)\n        self.assertIsInstance(r[0].v, RecordingPen)\n\n        r.index(0, lambda e: e.moveTo(0, 0))\n        self.assertEqual(r.val_present(), False)\n        self.assertEqual(r[0].val_present(), True)\n        \n        r = P(Rect(50, 50))\n        self.assertEqual(r.v.value[0][-1][0], (0, 0))\n        self.assertEqual(r.v.value[-2][-1][0], (0, 50))\n        self.assertEqual(r.v.value[-1][0], \"closePath\")\n\n        r = P(P(), P())\n        self.assertEqual(len(r), 2)\n\n        r = P([P()]*3)\n        self.assertEqual(len(r), 3)\n    \n    def test_find(self):\n        r = P(\n            StSt(\"ABC\", Font.MutatorSans(), 100),\n            StSt(\"ABC\", Font.MutatorSans(), 100))\n        \n        r.î([0, 1], lambda p: p.tag(\"first\"))\n        r.î([1, 1], lambda p: p.tag(\"second\"))\n        \n        self.assertEqual(len(r.find({\"glyphName\":\"A\"})), 2)\n        self.assertEqual(r.find_({\"glyphName\":\"B\"}).tag(), \"first\")\n        self.assertEqual(r.find_({\"glyphName\":\"B\"}, index=1).tag(), \"second\")\n\n        self.assertEqual(\n            r.find_({\"glyphName\":\"B\"}).tag(),\n            r.find_(glyphName=\"B\").tag())\n        \n        self.assertNotEqual(r.find_(glyphName=\"B\"), r.find_(glyphName=\"B\", index=1))\n\n        r.find_(dict(glyphName=\"C\"), lambda e: e.tag(\"sizzler\"))\n        self.assertEqual(r[0][-1].tag(), \"sizzler\")\n        self.assertEqual(r[-1][-1].tag(), None)\n\n        self.assertEqual(len(r[-1]), 3)\n        r.find_(dict(glyphName=\"C\"), lambda e: e.delete(), index=1)\n        r.deblank()\n        self.assertEqual(len(r[-1]), 2)\n    \n    def test_collapse(self):\n        r = P(\n            StSt(\"ABC\", Font.MutatorSans(), 100),\n            StSt(\"DEF\", Font.MutatorSans(), 100))\n        \n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 3)\n        \n        r.collapse()\n        self.assertEqual(len(r), 6)\n        self.assertEqual(len(r[0]), 0)\n\n    def test_drawing_mixin(self):\n        r = P()\n        self.assertIsInstance(r._val, RecordingPen)\n        self.assertEqual(len(r._val.value), 0)\n\n        r.moveTo(0, 0)\n        r.moveTo(Point(1, 1))\n        r.moveTo((2, 2))\n\n        self.assertEqual(\n            [v[1][0] for v in r.v.value],\n            [(0, 0), (1, 1), (2, 2)])\n        \n        r = (P()\n            .moveTo(0, 0)\n            .lineTo(10, 10)\n            .lineTo(Point(0, 10))\n            .lineTo((0, 5))\n            .closePath())\n        \n        self.assertEqual(r.v.value, [\n            ('moveTo', ((0, 0),)),\n            ('lineTo', ((10, 10),)),\n            ('lineTo', ((0, 10),)),\n            ('lineTo', ((0, 5),)),\n            ('closePath', ())\n        ])\n\n        r = (P()\n            .rect(Rect(10, 10, 10, 10)))\n        \n        self.assertEqual(r.v.value, [\n            ('moveTo', ((10, 10),)),\n            ('lineTo', ((20, 10),)),\n            ('lineTo', ((20, 20),)),\n            ('lineTo', ((10, 20),)),\n            ('closePath', ())\n        ])\n\n        r = (P()\n            .oval(Rect(10, 10, 10, 10))\n            .round())\n        \n        self.assertEqual(r.v.value, [\n            ('moveTo', [(15, 10)]),\n            ('curveTo', [(18, 10), (20, 12), (20, 15)]), \n            ('curveTo', [(20, 18), (18, 20), (15, 20)]), \n            ('curveTo', [(12, 20), (10, 18), (10, 15)]), \n            ('curveTo', [(10, 12), (12, 10), (15, 10)]), \n            ('closePath', [])\n        ])\n    \n    def test_layout_mixin(self):\n        r = StSt(\"AB C\", Font.MutatorSans(), 100)\n        self.assertEqual(r[2].data(\"glyphName\"), \"space\")\n        self.assertAlmostEqual(r[2].ambit().x, 84.3, 2)\n        self.assertFalse(r[2].bounds().nonzero())\n        r.translate(100, 0)\n        self.assertAlmostEqual(r[2].ambit().x, 184.3, 2)\n    \n    def test_fx_mixin(self):\n        r = StSt(\"ABC\", Font.MutatorSans(), 100)\n\n        self.assertEqual(r[0].data(\"glyphName\"), \"A\")\n    \n        r = P(P(Rect(0, 0, 100, 100)))\n        self.assertEqual(r.ambit().y, 0)\n        r.translate(0, 100)\n        self.assertEqual(r.ambit().y, 100)\n        r.layer(1, 1)\n\n        r.translate(0, 100)\n        self.assertEqual(r.ambit().y, 200)\n    \n        r = StSt(\"B\", Font.MutatorSans(), 100)\n        \n    def test_glyphwise(self):\n        r = Glyphwise(\"ABC\", lambda _: Style(Font.MuSan(), 100))\n        self.assertIsInstance(r, P)\n\n        r = Glyphwise(\"ABC\\nDEF\", lambda _: Style(Font.MuSan(), 100))\n        self.assertIsInstance(r, P)\n\n        r = Glyphwise(\"ABC\\nDEF\", lambda g: [Style(Font.MuSan(), 100), dict(wdth=g.e)])\n        self.assertIsInstance(r, P)\n    \n    def test_mods(self):\n        r = StSt(\"ABC\", Font.MuSan(), 500, ro=1)\n        self.assertEqual(\n            r.index([1, 2]).v.value,\n            r.index(1).index(2).v.value)\n        \n        before_rotate = r.index([1, 2]).bounds()\n        before_frame = r.index([1]).ambit(tx=0, ty=0)\n\n        r.find_(dict(glyphName=\"B\"), lambda p: p.î(2, lambda c: c.rotate(-5)))\n\n        self.assertNotEqual(before_rotate, r.î([1, 2]).bounds())\n        self.assertEqual(before_frame, r.î(1).ambit())\n    \n    def test_empty(self):\n        r = P()\n        r.data(frame=Rect(0, 0, 100, 100))\n        r.collapse()\n        r.translate(10, 10)\n        #print(r)\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_pens.py",
    "content": "import unittest\nfrom random import Random\nfrom coldtype.geometry import Rect, Point\nfrom coldtype.runon.path import P\n\nfrom coldtype.color import hsl, rgb\nfrom coldtype.pens.drawablepen import DrawablePenMixin\nfrom coldtype.renderer.reader import SourceReader\nfrom coldtype.text.composer import StSt, Font\nfrom coldtype.fx.chainable import Chainable\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\nmutator = Font.Cacheable(\"assets/MutatorSans.ttf\")\n\nclass TestPens(unittest.TestCase):\n    def test_gs(self):\n        r = Rect(0, 0, 100, 100)\n        dps = P()\n        dp = (P()\n            .declare(r:=r)\n            .m(r.pnw).l(r.pne).bxc(r.psw, \"se\")\n            .ep())\n        self.assertEqual(len(dp.v.value), 4)\n        self.assertEqual(dp.v.value[-2][-1][0], Point(100, 35))\n        self.assertEqual(dp.v.value[-1][0], \"endPath\")\n        self.assertEqual(dp.unended(), False)\n        dps.append(P([dp]))\n        self.assertEqual(len(dps.tree().splitlines()), 4)\n        self.assertEqual(dps.tree().splitlines()[-1],\n            \" | - <®:P:RecordingPen(4mvs)>\")\n        \n    def test_gs_arrowcluster(self):\n        r = Rect(100, 100)\n        dp = (P().m(r.pnw).l(r.pne).l(r.pse).ep())\n        \n        self.assertEqual(len(dp.v.value), 4)\n        self.assertEqual(dp.v.value[0][-1][0], Point(0, 100).xy())\n        self.assertEqual(dp.v.value[1][-1][0], Point(100, 100).xy())\n        self.assertEqual(dp.v.value[2][-1][0], Point(100, 0).xy())\n    \n    def test_gs_relative_moves(self):\n        r = Rect(100, 100)\n        dp = (P().m(r.pnw).l(r.pnw.o(50,-50)).l(r.pnw.o(0,-50)).ep())\n        \n        self.assertEqual(len(dp.v.value), 4)\n        self.assertEqual(dp.v.value[0][-1][0], Point(0, 100).xy())\n        self.assertEqual(dp.v.value[1][-1][0], Point(50, 50).xy())\n        self.assertEqual(dp.v.value[2][-1][0], Point(0, 50).xy())\n        \n    def test_reverse(self):\n        r = Rect(100, 100)\n        dp = (P().m(r.pnw).l(r.pne).l(r.pse).ep())\n        p1 = dp.v.value[0][-1]\n        p2 = dp.reverse().v.value[-2][-1]\n        self.assertEqual(p1, p2)\n    \n    def test_transforms(self):\n        dp = (P(Rect(100, 100))\n            .data(frame=Rect(100, 100))\n            .align(Rect(200, 200)))\n        \n        self.assertEqual(dp.data(\"frame\").mxx, 150)\n        self.assertEqual(dp.v.value[-2][-1][-1][0], 50)\n\n        self.assertEqual(\n            dp.copy().rotate(45).round().v.value,\n            dp.copy().rotate(360+45).round().v.value)\n        \n        self.assertEqual(dp.copy().scale(2).ambit().w, 200)\n\n    def test_pens_ambit(self):\n        dps = (P([\n                P(Rect(50, 50)),\n                P(Rect(100, 100, 100, 100))])\n                #.print(lambda x: x.tree())\n                )\n        ram = dps.ambit()\n        self.assertEqual(ram, Rect(0, 0, 200, 200))\n\n        moves = []\n        dps.walk(lambda p, pos, _: moves.append([p, pos]))\n        self.assertEqual(moves[0][0], dps)\n        self.assertEqual(moves[0][1], -1)\n        self.assertEqual(moves[1][1], 0)\n    \n    def test_remove_blanks(self):\n        dps = (P([\n            P(Rect(50, 50)),\n            P()\n        ]))\n        self.assertEqual(len(dps), 2)\n        dps.deblank()\n        self.assertEqual(len(dps), 1)\n    \n    def test_collapse(self):\n        rr = Rect(100, 100)\n        r = P([\n            P([P([P().rect(rr)])]),\n            P([P().rect(rr)]),\n        ])\n\n        self.assertIsInstance(r[0], P)\n        self.assertIsInstance(r[0][0], P)\n\n        r.collapse()\n        self.assertIsInstance(r[0], P)\n        self.assertIsInstance(r[1], P)\n\n        r = P([\n            P([P([P().rect(rr)])]),\n            P([P().rect(rr)]),\n        ])\n\n        r2 = r.copy().collapse()\n        self.assertEqual(len(r), 2)\n\n        self.assertIsInstance(r[0], P)\n        self.assertIsInstance(r[0][0], P)\n\n        self.assertIsInstance(r2[0], P)\n        self.assertIsInstance(r2[1], P)\n\n        r = P([\n            P([P([P()])]),\n            P([P()]),\n        ])\n\n        r2 = r.copy().collapse()\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r2), 0)\n\n        r = P([\n            P([P([P()])]),\n            P([P()]),\n        ])\n\n        r2 = r.copy().collapse(deblank=False)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r2), 2)\n    \n    def test_find(self):\n        dps = P([\n            P([P([P().tag(\"find-me\").f(hsl(0.9))])]),\n            P().tag(\"not-me\"),\n            P([P().tag(\"find-me\").f(hsl(0.3))])])\n\n        self.assertEqual(dps.find(\"find-me\")[1].f().h/360, 0.9)\n        self.assertAlmostEqual(dps.find(\"find-me\")[0].f().h/360, 0.3)\n\n    def test_cond(self):\n        dps = (P([\n            (P().cond(True,\n                lambda p: p.f(rgb(1, 0, 0))))]))\n        \n        self.assertEqual(dps[0].f().r, 1)\n\n        def _build(condition):\n            return (P([\n                (P().cond(condition,\n                    lambda p: p.f(rgb(0, 0, 1)),\n                    lambda p: p.f(rgb(1, 0, 0))))]))\n        \n        self.assertEqual(_build(True)[0].f().b, 1)\n        self.assertEqual(_build(False)[0].f().r, 1)\n    \n    def test_alpha(self):\n        dps = (P([\n            (P([\n                (P().alpha(0.5))\n            ]).alpha(0.5))\n        ]).alpha(0.25))\n\n        def walker(p, pos, data):\n            if pos == 0:\n                self.assertEqual(data[\"alpha\"], 0.0625)\n            elif pos == 1 and data[\"depth\"] == 0:\n                self.assertEqual(data[\"alpha\"], 0.25)\n            elif pos == 1 and data[\"depth\"] == 1:\n                self.assertEqual(data[\"alpha\"], 0.125)\n\n        dps.walk(walker)\n    \n    def test_visibility(self):\n        dps = (P([\n            (P([\n                (P().visible(1).tag(\"visible\")),\n                (P().visible(0).tag(\"invisible\"))\n            ]))\n        ]))\n\n        def walker(p, pos, data):\n            nonlocal visible_pen_count\n            if pos == 0:\n                visible_pen_count += 1\n\n        visible_pen_count = 0\n        dps.walk(walker, visible_only=True)\n        self.assertEqual(visible_pen_count, 1)\n\n        visible_pen_count = 0\n        dps.walk(walker, visible_only=False)\n        self.assertEqual(visible_pen_count, 2)\n\n        visible_pen_count = 0\n        dps[0][0].visible(0)\n        dps.walk(walker, visible_only=True)\n        self.assertEqual(visible_pen_count, 0)\n    \n    def test_style(self):\n        src = \"\"\"\nfrom coldtype import *\n\ndef two_styles(r):\n    return (P()\n        .oval(r.inset(50).square())\n        .f(hsl(0.8))\n        .attr(\"alt\", fill=hsl(0.3)))\n\n@renderable()\ndef no_style_set(r):\n    return two_styles(r)\n\n@renderable(style=\"alt\")\ndef style_set(r):\n    return two_styles(r)\n\ndef lattr_styles(r):\n    return (P()\n        .oval(r.inset(50).square())\n        .f(hsl(0.5)).s(hsl(0.7)).sw(5)\n        .lattr(\"alt\", lambda p: p.f(hsl(0.7)).s(hsl(0.5)).sw(15)))\n\n@renderable()\ndef lattr_no_style(r):\n    return lattr_styles(r)\n\n@renderable(style=\"alt\")\ndef lattr_style_set(r):\n    return lattr_styles(r)\n\"\"\"\n\n        sr = SourceReader(None, code=src)\n        rs = sr.frame_results(0)\n        sr.unlink()\n\n        self.assertNotEqual(\n            rs[0][1][0].attr(rs[0][0].style, \"fill\"),\n            rs[1][1][0].attr(rs[1][0].style, \"fill\"))\n        \n        self.assertNotEqual(\n            rs[2][-1][0].attr(rs[2][0].style, \"fill\"),\n            rs[3][-1][0].attr(rs[3][0].style, \"fill\"))\n        \n        self.assertEqual(rs[2][-1][0].attr(rs[2][0].style, \"strokeWidth\"), 5)\n        self.assertEqual(rs[3][-1][0].attr(rs[3][0].style, \"strokeWidth\"), 15)\n\n        dpm = DrawablePenMixin()\n        dpm.dat = rs[3][-1][0]\n        attrs = [x for _, x in list(dpm.findStyledAttrs(rs[3][0].style))]\n        self.assertEqual(len(attrs), 2)\n        self.assertEqual(attrs[1][1].get(\"weight\"), 15)\n\n    def test_subsegmenting(self):\n        f1 = Font.Cacheable(\"assets/ColdtypeObviously_BlackItalic.ufo\")\n\n        shape = (StSt(\"C\", f1, 1000, wght=0.5)[0]\n            .explode()[0])\n\n        self.assertAlmostEqual(\n            shape.length()/2,\n            shape.copy().subsegment(0, 0.5).length(),\n            delta=1)\n        \n        self.assertAlmostEqual(\n            shape.length(),\n            shape.copy().subsegment(0, 1).length(),\n            delta=1)\n        \n        shape1 = (StSt(\"D\", f1, 1000, wght=0.5)[0]\n            .explode()[0])\n        \n        shape2 = shape1.copy().fully_close_path()\n\n        self.assertLess(shape1.length(), shape2.length())\n\n        self.assertAlmostEqual(\n            shape2.length()/2,\n            shape2.copy().subsegment(0, 0.5).length(),\n            delta=1)\n    \n    def test_explode(self):\n        r = Rect(1000, 500)\n        \n        o1 = (StSt(\"O\", co, 500, wdth=1).pen())\n        o2 = (StSt(\"O\", co, 500, wdth=1)\n            .pen()\n            .explode()\n            .index(1, lambda p: p.rotate(90))\n            .implode().f(hsl(0.3)).align(r))\n        \n        self.assertEqual(\n            o1.explode()[0].ambit().w,\n            o2.explode()[0].ambit().w)\n\n        self.assertAlmostEqual(\n            o1.explode()[1].ambit().h,\n            o2.explode()[1].ambit().w)\n    \n    def test_chain(self):\n        def c1(a):\n            def _c1(p:P):\n                return [a]\n            return Chainable(_c1)\n        \n        def c2(a):\n            def _c2(p:P):\n                p.data(hello=a)\n                return None\n            return Chainable(_c2)\n        \n        p1 = P() | c1(1)\n        self.assertEqual(p1, [1])\n\n        p2 = P() | c2(\"chain\")\n        self.assertTrue(isinstance(p2, P))\n        self.assertEqual(p2.data(\"hello\"), \"chain\")\n\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_pens_rendered.py",
    "content": "import unittest\nfrom coldtype.pens.skiapen import SkiaPen\n\nfrom pathlib import Path\nfrom coldtype.color import hsl\nfrom coldtype.geometry import Rect\nfrom coldtype.text.composer import StSt, Font\nfrom coldtype.runon.path import P\n\nfrom PIL import Image\nimport imagehash\nimport contextlib\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\n\nrenders = Path(\"test/renders/skia\")\nrenders.mkdir(parents=True, exist_ok=True)\n\ndef hash_img(path):\n    if path.exists():\n        return (\n            imagehash.colorhash(Image.open(path)), \n            imagehash.average_hash(Image.open(path)))\n    else:\n        return -1\n\n@contextlib.contextmanager\ndef test_image(test:unittest.TestCase, path, rect=Rect(1000, 500)):\n    img = (renders / path)\n    hash_before = hash_img(img)\n    if img.exists():\n        img.unlink()\n\n    yield(img, rect)\n    \n    hash_after = hash_img(img)\n    #test.assertEqual(hash_after, hash_before)\n    #test.assertEqual(img.exists(), True)\n\nclass TestPensRendered(unittest.TestCase):\n    def test_skia_png(self):\n        with test_image(self, \"test_skia.png\") as (i, r):\n            dp = ((ß:=P())\n                .declare(nx:=100, a:=r.inset(100, 0).subtract(200, \"N\"))\n                .m(a.psw)\n                .bxc(a.pn, a.pnw.o(nx, 0), 65)\n                .bxc(a.pse, a.pne.o(-nx, 0), 65)\n                .ep()\n                .fssw(-1, 0, 4)\n                .ups()\n                .append(StSt(\"Coldtype Cdelopty\".upper(),\n                    co, 100, wdth=0.5)\n                    .pens()\n                    .distribute_on_path(ß[0], center=-5)\n                    .f(hsl(0.5)))\n                .align(r))\n            \n            SkiaPen.Precompose(dp, r, disk=str(i))\n            self.assertEqual(len(dp), 2)\n            self.assertEqual(type(dp), P)\n    \nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_runon.py",
    "content": "import unittest\nfrom coldtype.runon.runon import * #INLINE\n\nclass TestRunon(unittest.TestCase):\n    def test_init(self):\n        r = Runon(1)\n        \n        self.assertEqual(r.v, 1)\n\n        r = Runon(Runon(1))\n        \n        self.assertEqual(r.v, None)\n        self.assertEqual(len(r), 1)\n\n        r = Runon(Runon(1), Runon(2))\n        \n        self.assertEqual(r.v, None)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(r[0].v, 1)\n        self.assertEqual(r[1].v, 2)\n\n        r = Runon([Runon(1), Runon(2)])\n        \n        self.assertEqual(r.v, None)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(r[0].v, 1)\n        self.assertEqual(r[1].v, 2)\n\n        r = Runon(3, 2, 1)\n        \n        self.assertEqual(len(r), 3)\n        self.assertEqual(r[0].v, 3)\n        self.assertEqual(r[-1].v, 1)\n\n        r.reverse()\n\n        self.assertEqual(r[0].v, 1)\n        self.assertEqual(r[-1].v, 3)\n\n        r = Runon(\n            Runon(1).data(hi=\"word\"),\n            Runon(2).tag(\"oy\"))\n        \n        self.assertEqual(len(r), 2)\n        self.assertEqual(r[0].data(\"hi\"), \"word\")\n        self.assertEqual(r[1].data(\"hi\"), None)\n        self.assertEqual(r[1].tag(), \"oy\")\n        #self.assertEqual(r[2], None)\n\n        self.assertEqual(len(r.find(\"oy\")), 1)\n        self.assertEqual(len(r.find_(\"oy\")), 0)\n        self.assertEqual(r.find_(\"oy\").tag(), \"oy\")\n\n        r.mapv(lambda p: p.update(p.v+1))\n        \n        self.assertEqual(r[0].v, 2)\n        self.assertEqual(r[1].v, 3)\n\n        r.filterv(lambda p: p.v == 3)\n        \n        self.assertEqual(r[0].v, 3)\n        self.assertEqual(r[0].tag(), \"oy\")\n\n        r.insert(0, Runon(4))\n\n        self.assertEqual(r[0].v, 4)\n\n        self.assertEqual(r.sum(), [4, 3])\n\n        self.assertEqual(len(r.find(lambda p: p.v == 3)), 1)\n        self.assertEqual(len(r.find(lambda p: p.v == 4)), 1)\n        self.assertEqual(len(r.find(lambda p: p.v == 5)), 0)\n\n        r.insert([0, 0], Runon(6))\n        r.insert([0, 0], Runon(5))\n        self.assertEqual(r[0].sum(), [4, 5, 6])\n\n        r.data(hello=\"world\")\n        r.index([0, 0], lambda e: e.attr(fill=1))\n\n        r_copy = r.copy()\n\n        self.assertEqual(r_copy[0][0].attr(\"fill\"), 1)\n\n        r.index([0, 0], lambda e: e.attr(fill=2))\n        r_copy.index([0, 0], lambda e: e.attr(fill=3))\n\n        self.assertEqual(r[0][0].attr(\"fill\"), 2)\n        self.assertEqual(r_copy[0][0].attr(\"fill\"), 3)\n\n        self.assertEqual(r_copy.data(\"hello\"), \"world\")\n        self.assertEqual(r_copy[-1].tag(), \"oy\")\n\n        r_rev1 = r.copy().reverse(recursive=0)\n        r_rev2 = r.copy().reverse(recursive=1)\n\n        self.assertEqual(r_rev1[-1].sum(), [4, 5, 6])\n        self.assertEqual(r_rev2[-1].sum(), [4, 6, 5])\n\n        r.insert([0, 0, 0], Runon(10))\n\n        utags = []\n        def walker(_, pos, data):\n            if pos >= 0:\n                utags.append(data.get(\"utag\"))\n        \n        r.walk(walker)\n        \n        self.assertEqual(utags,\n            ['0_0_0', '0_0', '0_1', '0', '1', 'ROOT'])\n\n        self.assertEqual(r.index(0).v, 4)\n        r.index(0, lambda p: p.update(40))\n        self.assertEqual(r.index(0).v, 40)\n\n        r.index([0, 0, 0], lambda p: p.update(20))\n        self.assertEqual(r.index([0, 0, -1]).v, 20)\n        r.index([0, 0, -1], lambda p: p.update(200))\n        self.assertEqual(r.index([0, 0, -1]).v, 200)\n\n        els = r.indices([-1, [0, 0, -1]])\n        self.assertEqual(len(els), 2)\n        self.assertEqual(els[0].v, 3)\n        self.assertEqual(els[0].tag(), \"oy\")\n        self.assertEqual(els[1].v, 200)\n\n        r = Runon(1)\n        utags = []\n        r.walk(walker)\n        self.assertEqual(utags, [\"ROOT\"])\n    \n    def test_attr(self):\n        r = Runon(Runon(1).attr(q=2))\n        \n        self.assertEqual(r.attr(\"q\"), None)\n        self.assertEqual(r[0].attr(\"q\"), 2)\n\n        r.index(0, lambda p: p.attr(q=3))\n\n        self.assertEqual(r[0].attr(\"q\"), 3)\n\n        r[0].lattr(\"alt\", lambda p2: p2.attr(q=4))\n        \n        self.assertEqual(r[0].attr(\"q\"), 3)\n        self.assertEqual(r[0].attr(\"alt\", \"q\"), 4)\n    \n    def test_alpha(self):\n        r = Runon(Runon(1).alpha(0.5).tag(\"leaf\"))\n        r.alpha(0.5).tag(\"root\")\n\n        alphas = {}\n        def walker(el, pos, data):\n            if pos >= 0:\n                alphas[el.tag()] = data.get(\"alpha\")\n        \n        r.walk(walker)\n\n        self.assertEqual(alphas[\"root\"], 0.5)\n        self.assertEqual(alphas[\"leaf\"], 0.25)\n        self.assertEqual(r[0].alpha(), 0.5)\n    \n    def test_logic(self):\n        r = Runon(Runon(1), Runon(2))\n\n        r.cond(True,\n            lambda p: p.data(a=\"b\", c=\"d\"))\n        \n        r.cond(False,\n            lambda p: p,\n            lambda p: p.data(x=\"z\"))\n\n        self.assertEqual(r.data(\"a\"), \"b\")\n        self.assertEqual(r.data(\"c\"), \"d\")\n        self.assertEqual(r.data(\"x\"), \"z\")\n    \n    def test_layers(self):\n        r = Runon(5)\n        r.layer(3)\n        self.assertEqual(len(r), 3)\n        \n        r.layer(2)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 3)\n\n        r = Runon(5)\n\n        self.assertEqual(r.v, 5)\n        self.assertEqual(len(r), 0)\n        self.assertEqual(bool(r), True)\n        \n        r.layerv(2)\n        self.assertEqual(r.v, None)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 0)\n        self.assertEqual(bool(r), True)\n\n        r.layerv(3)\n        self.assertEqual(r.v, None)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 3)\n\n        r = Runon(1)\n        self.assertEqual(r.v, 1)\n        self.assertEqual(r.depth(), 0)\n        \n        r.layerv(lambda p: p.v + 2)\n        self.assertEqual(r.v, None)\n        self.assertEqual(r[0].v, 3)\n        self.assertEqual(r.depth(), 1)\n        \n        r.layerv(lambda p: p.v + 2)\n        self.assertEqual(r[0].v, None)\n        self.assertEqual(r[0][0].v, 5)\n        self.assertEqual(r.depth(), 2)\n\n        r.layerv(lambda p: p.v + 2, lambda p: p.v + 3)\n        self.assertEqual(r[0][0].v, None)\n        self.assertEqual(r[0][0][0].v, 7)\n        self.assertEqual(r[0][0][-1].v, 8)\n        self.assertEqual(r.depth(), 3)\n\n        r.collapse()\n        self.assertEqual(len(r), 2)\n        self.assertEqual(r[0].v, 7)\n        self.assertEqual(r[-1].v, 8)\n\n        r = Runon(1, 2, 3)\n        r[0].data(hello=\"world\")\n        r.layerv(1, lambda e: e.update(e.v+1))\n        self.assertEqual(r[0].data(\"hello\"), None)\n\n        r = Runon(1)\n        \n        r.ups()\n        self.assertEqual(r[0].v, 1)\n        \n        r.ups()\n        self.assertEqual(r[0].v, None)\n        self.assertEqual(r[0][0].v, 1)\n        \n        r.ups()\n        r.insert(0, Runon(2))\n        self.assertEqual(r[0].v, 2)\n        self.assertEqual(r[1][0].v, None)\n        self.assertEqual(r[1][0][0].v, 1)\n        \n        r.ups()\n        self.assertEqual(len(r), 1)\n        self.assertEqual(len(r[0]), 2)\n    \n    def test_collapse(self):\n        r = Runon(Runon(Runon(1, 2), 3), Runon(4, 5))\n        r.collapse()\n        self.assertEqual(r.sum(), [1, 2, 3, 4, 5])\n        \n        r.reverse()\n        self.assertEqual(r.sum(), [5, 4, 3, 2, 1])\n        \n        r = Runon(Runon(1, 2, 3), Runon(4, 5, 6))\n        r.collapse()\n        self.assertEqual(r.sum(), [1, 2, 3, 4, 5, 6])\n    \n    def test_chain(self):\n        def c(a):\n            def _c(ru):\n                return ru.update(a)\n            return _c\n\n        r = Runon(1)\n        self.assertEqual(r.v, 1)\n        r.chain(c(5))\n        self.assertEqual(r.v, 5)\n\n        r.layerv(2)\n        r.index(1, lambda e: e.update(e.v*2))\n        self.assertEqual(r[0].v, 5)\n        self.assertEqual(r[-1].v, 10)\n\n        r.mapv(lambda e: e.update(e.v*2))\n        self.assertEqual(r[0].v, 10)\n        self.assertEqual(r[-1].v, 20)\n\n        def c2():\n            def _c(ru):\n                return ru.update(10)\n            return _c\n\n        r = Runon(1)\n        self.assertEqual(r.v, 1)\n        r.chain(c2)\n        self.assertEqual(r.v, 10)\n\n        # variant syntax\n\n        r = Runon(1, 2, 3)\n        r / (lambda p: p.update(p.v+1))\n        self.assertEqual(r.sum(), [2, 3, 4])\n\n        def ch(a):\n            def _ch(ro):\n                ro / (lambda p: p.update(p.v + a))\n            return _ch\n\n        r = Runon(1, 2, 3)\n        r | ch(2)\n        self.assertEqual(r.sum(), [3, 4, 5])\n\n        r = Runon(1, 2, 3)\n        r - ch(2)\n        self.assertEqual(r.sum(), [1, 2, 3])\n    \n    def test_inter(self):\n        r = Runon(1, 2, 3)\n        self.assertEqual(len(r), 3)\n        \n        r.interpose(Runon(10))\n        self.assertEqual(len(r), 5)\n\n        r = Runon(1, 2, 3)\n        self.assertEqual(len(r), 3)\n        self.assertEqual(len(r[0]), 0)\n\n        r.layerv(1, lambda e: e.update(e.v+1))\n        self.assertEqual(len(r), 3)\n        self.assertEqual(len(r[0]), 2)\n        self.assertEqual(r[0][0].v, 1)\n        self.assertEqual(r[0][1].v, 2)\n\n        r = Runon(3, 2, 1)\n        r.split(2)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(r.sum(), [3, 1])\n        \n        r = Runon(1, 2, 3)\n        r.split(lambda e: e.v == 2)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 1)\n        self.assertEqual(len(r[1]), 1)\n        self.assertEqual(r.sum(), [1, 3])\n\n        r = Runon(1, 2, 3)\n        r.split(lambda e: e.v == 2, -1)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 2)\n        self.assertEqual(len(r[1]), 1)\n        self.assertEqual(r.sum(), [1, 2, 3])\n\n        r = Runon(1, 2, 3)\n        r.split(lambda e: e.v == 2, 1)\n        self.assertEqual(len(r), 2)\n        self.assertEqual(len(r[0]), 1)\n        self.assertEqual(len(r[1]), 2)\n        self.assertEqual(r.sum(), [1, 2, 3])\n    \n    def test_enumerate(self):\n        r = Runon().enumerate(range(0, 5), lambda en: Runon((en.el+1)*10))\n        self.assertEqual(r.sum(), [10, 20, 30, 40, 50])\n\n        r = Runon().enumerate(range(0, 5), lambda en: Runon(en.e))\n        self.assertEqual(r.sum(), [0, 0.25, 0.5, 0.75, 1])\n\n        r = Runon().enumerate(zip([\"A\", \"B\", \"C\"], [1, 2, 3]), lambda en:\n            Runon(f\"{en.el[0]}{en.el[1]}\"))\n        \n        self.assertEqual(r[0].v, \"A1\")\n        self.assertEqual(r[-1].v, \"C3\")\n    \n    def test_add(self):\n        r = Runon(1, 2, 3)\n        r += Runon(4)\n        self.assertEqual(r.sum(), [1, 2, 3, 4])\n\n        r = Runon(1, 2, 3)\n        r2 = r + 4\n        self.assertEqual(r.sum(), [1, 2, 3])\n        self.assertEqual(r2.sum(), [1, 2, 3, 4])\n        self.assertEqual(r2[0].sum(), [1, 2, 3])\n        self.assertEqual(r2[1].sum(), [4, 4])\n    \n    def test_index(self):\n        r = Runon(1, 2, 3)\n        r.index(0, lambda e: e.tag(\"one\"))\n        self.assertEqual(r[0].tag(), \"one\")\n    \n    def test_find(self):\n        r = Runon(Runon(1, 2), Runon(1, 2, 3))\n        r.index([0, 1], lambda e: e.tag(\"alpha\"))\n        r.index([1, 1], lambda e: e.tag(\"beta\"))\n\n        self.assertEqual(\n            r.find_(lambda e: e.v == 2).tag(),\n            \"alpha\")\n        \n        self.assertEqual(\n            r.find_(lambda e: e.v == 2, index=1).tag(),\n            \"beta\")\n    \n    def test_append_insert(self):\n        # should normalize and ignore None\n\n        r = Runon(1, 2, 3)\n        r.insert(0, 10)\n        self.assertEqual(r[0].v, 10)\n\n        r.insert(0, None)\n        self.assertEqual(r[0].v, 10)\n\n        self.assertEqual(r[-1].v, 3)\n        r.append(None)\n        self.assertEqual(r[-1].v, 3)\n\n        r += None\n        self.assertEqual(r[-1].v, 3)\n\n        r = Runon(1, 2, 3, None)\n        self.assertEqual(len(r), 3)\n        self.assertEqual(r[-1].v, 3)\n\n        r = Runon(1, 2, 3, Runon(None))\n        self.assertEqual(len(r), 4)\n        self.assertEqual(r[-1].v, None)\n    \n    def test_tree(self):\n        r = Runon(1, 2, Runon(11, Runon(21, 22), 13), 3)\n        \n        rt1 = r.tree().split(\"\\n\")\n        self.assertTrue(\" | | - <®::int(22)>\" in rt1)\n        self.assertEqual(len(rt1), 11)\n\n        rt2 = r.tree(v=False).split(\"\\n\")\n        self.assertFalse(\" | | - <®::int(22)>\" in rt2)\n        self.assertEqual(len(rt2), 4)\n\n        r.î([2], lambda e: e.data(\n           a=\"b\"*20, c=\"d\"*20, e=\"f\"*20, g=\"h\"*20, i=\"j\"*20, k=\"l\"*20))\n        \n        self.assertEqual(r.tree(), \"\"\"\n <®::/4...>\n - <®::int(1)>\n - <®::int(2)>\n | <®::/3... {a=bbbbbbbbbbbbbbbbbbbb,c=dddddddddddddddddddd,e=ffffffffffffffffffff,g=hhhhhhhhhhhhhhhhhh\n       hh,i=jjjjjjjjjjjjjjjjjjjj,k=llllllllllllllllllll}>\n | - <®::int(11)>\n | | <®::/2...>\n | | - <®::int(21)>\n | | - <®::int(22)>\n | - <®::int(13)>\n - <®::int(3)>\"\"\")\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_syntax_mods.py",
    "content": "import unittest\nfrom pathlib import Path\nfrom coldtype.renderable import renderable, Action\nfrom coldtype.renderer.reader import SourceReader\n\n\ntest_src = \"\"\"\nfrom coldtype import *\n\n@renderable()\ndef test_src_function(r):\n    return (StSt(\"CDELOPTY\",\n        \"assets/ColdtypeObviously-VF.ttf\")\n        .align(r.inset(50))\n        .f(hsl(0.5, 0.7, 0.9)))\n\n@animation()\ndef test_src_animation(f):\n    return (StSt(\"CDELOPT\",\n        \"assets/ColdtypeObviously-VF.ttf\",\n        wdth=f.e(\"linear\", 1))\n        .align(f.a.r))\n\"\"\"\n\n\nclass TestSyntaxMods(unittest.TestCase):\n    def setUp(self) -> None:\n        self.sr = SourceReader(None, test_src)\n        self.sr2 = SourceReader(runner=\"special\")\n        return super().setUp()\n\n    def tearDown(self) -> None:\n        self.sr.unlink()\n        self.sr2.unlink()\n        return super().tearDown()\n    \n    def test_empty_reader(self):\n        self.assertEqual(self.sr2.filepath, None)\n        self.assertEqual(self.sr2.codepath, None)\n        self.sr2.reset_filepath(\"test/source_file.py\")\n        self.assertEqual(self.sr2.filepath.stem, \"source_file\")\n        self.assertEqual(len(self.sr2.renderables()), 1)\n        self.assertEqual(self.sr2.program[\"__RUNNER__\"], \"special\")\n        self.assertEqual(self.sr2.program[\"hello\"], \"world\")\n    \n    def test_source_with_config(self):\n        sr = SourceReader(\"test/source_file_with_config.py\")\n        sr.unlink()\n        self.assertEqual(sr.filepath.stem, \"source_file_with_config\")\n        self.assertEqual(len(sr.renderables()), 2)\n        self.assertEqual(sr.config.window_pin, \"SW\")\n    \n    def test_frame_read(self):\n        a1, _ = self.sr.frame_results(1)\n        _, res = a1\n        self.assertEqual(len(res[0]), 8)\n\n    def test_syntax_mods(self):\n        return\n        sr = self.sr\n        sr.reload(output_folder_override=\"test/renders\")\n        mod_src = sr.codepath.read_text()\n\n        self.assertIn(\".align(r.inset(50))\", test_src)\n        self.assertNotIn(\".align(r.inset(50))\", mod_src)\n        self.assertIn(\".noop()\", mod_src)\n\n        self.assertEqual(sr.program[\"__RUNNER__\"], \"default\")\n\n        renderables = sr.renderables()\n        self.assertEqual(len(renderables), 2)\n        self.assertEqual(renderables[0].codepath, sr.codepath)\n\n        r1:renderable = renderables[0]\n        r1_passes = r1.passes(None, None, [])\n        r1p1_result = r1.run_normal(r1_passes[0])\n        self.assertEqual(r1p1_result[3].glyphName, \"L\")\n\n        r2:renderable = renderables[1]\n        r2_passes = r2.passes(Action.RenderAll, None, [])\n        for idx, rp in enumerate(r2_passes):\n            rel = rp.output_path.relative_to(Path.cwd() / \"test/renders\")\n            self.assertEqual(\n                \"test_src_animation_{:04}.png\".format(idx),\n                str(rel))\n        \n        # verify that the width of the 'C' is increasing over the first half of the animation\n        r2p2_result = r2.run_normal(r2_passes[1])\n        r2p3_result = r2.run_normal(r2_passes[2])\n        r2p4_result = r2.run_normal(r2_passes[3])\n        self.assertLess(\n            r2p2_result[0].ambit().w,\n            r2p3_result[0].ambit().w)\n        self.assertLess(\n            r2p3_result[0].ambit().w,\n            r2p4_result[0].ambit().w)\n\n        renderables = sr.renderables(viewer_solos=[1])\n        self.assertEqual(len(renderables), 1)\n        self.assertEqual(renderables[0].name, \"test_src_animation\")\n    \n        # indexes over len wrap-around\n        renderables = sr.renderables(viewer_solos=[2])\n        self.assertEqual(len(renderables), 1)\n        self.assertEqual(renderables[0].name, \"test_src_function\")\n\n        renderables = sr.renderables(function_filters=[r\".*_function\"])\n        self.assertEqual(len(renderables), 1)\n        self.assertEqual(renderables[0].name, \"test_src_function\")\n\n        renderables = sr.renderables(function_filters=[r\".*_animation\"])\n        self.assertEqual(len(renderables), 1)\n        self.assertNotEqual(renderables[0].name, \"test_src_function\")\n\n        renderables = sr.renderables(class_filters=[r\".*asdf$\"])\n        self.assertEqual(len(renderables), 0)\n\n        renderables = sr.renderables(class_filters=[r\".*ation$\"])\n        self.assertEqual(len(renderables), 1)\n        self.assertEqual(renderables[0].__class__.__name__, \"animation\")\n\n        # when the pattern matches nothing, all renderables returned\n        renderables = sr.renderables(function_filters=[r\".*_should_be_nothing\"])\n        self.assertEqual(len(renderables), 2)\n    \n        #sr.reload(test_src.replace(\"-.align(\", \".align(\"))\n        mod_src = sr.codepath.read_text()\n        self.assertNotIn(\".noop()\", mod_src)\n        self.assertIn(\".align(r.inset(50))\", mod_src)\n\n        prev_codepath = sr.codepath\n        prev_filepath = sr.filepath\n        test_source_file = Path(\"test/source_file.py\")\n        sr.reset_filepath(\"test/source_file.py\")\n\n        self.assertEqual(sr.filepath.absolute(), test_source_file.absolute())\n        self.assertNotEqual(sr.codepath, prev_codepath)\n\n        self.assertTrue(not prev_filepath.exists())\n        self.assertTrue(not prev_codepath.exists())\n        self.assertTrue(sr.codepath.exists())\n\n        sr.unlink()\n\n        self.assertTrue(not sr.codepath.exists())\n        self.assertTrue(test_source_file.exists())\n\n        sr.reset_filepath(\"test/source_file\")\n        self.assertEqual(sr.filepath.suffix, \".py\")\n        self.assertEqual(sr.filepath, test_source_file.absolute())\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/test_time.py",
    "content": "import unittest\nfrom coldtype.timing.nle.ascii import AsciiTimeline\nfrom coldtype.renderable.animation import animation, Frame\nfrom coldtype.renderer.reader import SourceReader\nfrom coldtype.timing.timeable import Timeable\nfrom coldtype.timing.timeline import Timeline\nfrom coldtype.text import Font, Style, Rect\n\nat = AsciiTimeline(1, \"\"\"\n                                    |\n[a          ]\n        [b          ]\n                [c          ]\n     ]                  [d          \n\"\"\")\n\nat2 = AsciiTimeline(1, \"\"\"\n1\n        2\n                3\n                        [four  ]\n\"\"\")\n\nat3 = AsciiTimeline(1, 24, \"\"\"\n                                                    <\n        .style1\n*Oh,    hello.  •   *This   some\n                        is      t  +x  +t       •\n\"\"\")\n\nat4 = AsciiTimeline(1, 30, \"\"\"\n                                    <\n[0   ]     [0  ]     [0 ] [0   ]\n\"\"\")\n\nclass TestTime(unittest.TestCase):\n    def test_ascii_timeline_1(self):\n        self.assertEqual(at.duration, 36)\n        self.assertEqual(at[\"a\"][0].start, 0)\n        self.assertEqual(at[\"b\"][0].end, 21)\n        self.assertEqual(at[\"c\"][0].start, 16)\n        self.assertEqual(at[\"d\"][0].end, 41)\n        self.assertEqual(len(at.timeables), 4)\n\n        self.assertEqual(at.ki(\"a\", 0).e(), 0)\n        self.assertAlmostEqual(at.ki(\"a\", 4).e(loops=0), 0.0347, 3)\n        self.assertAlmostEqual(at.ki(\"a\", 4).e(loops=1), 0.8990, 3)\n\n        self.assertNotEqual(at.ki(\"b\", 20).e(loops=0, to1=0), 1)\n        self.assertEqual(at.ki(\"b\", 20).e(loops=0, to1=1), 1)\n\n        self.assertEqual(at[1].start, -1)\n        self.assertEqual(at.ki(1, 30).t.start, -1)\n\n        self.assertEqual(at.ki(\"b\", 8).io(5), 0)\n        self.assertEqual(at.ki(\"b\", 8+5).io(5), 1)\n    \n    def test_ascii_timeline_2(self):\n        self.assertEqual(at2.duration, 31)\n\n        self.assertIsInstance(at2[\"1\"][0], Timeable)\n        self.assertEqual(at2[1][0].duration, 0)\n        self.assertEqual(at2.ki(\"2\", 8).adsr(), 1)\n        self.assertEqual(at2.ki(\"2\", 0).adsr(), 0)\n        self.assertAlmostEqual(at2.ki(\"2\", 8+18).adsr([5, 20]), 0.001, 3)\n        self.assertAlmostEqual(at2.ki(\"2\", 8+18).adsr([5, 20], [\"eei\", \"qeio\"]), 0.0055, 3)\n        self.assertEqual(at2.ki(\"2\", 8+3).adsr([5, 5, 20], [\"eei\", \"qeio\"], rng=(10, -10)), -10)\n\n        at2.hold(8+18)\n        self.assertAlmostEqual(at2.ki(\"2\").adsr([5, 20], [\"eei\", \"qeio\"]), 0.0055, 3)\n    \n    def test_ascii_timeline_3(self):\n        from coldtype.timing.sequence import ClipTrack, ClipGroup, Clip, ClipType\n\n        self.assertEqual(at3.duration, 52)\n        self.assertEqual(at3.fps, 24)\n\n        ct = at3.words\n        self.assertIsInstance(ct, ClipTrack)\n        self.assertIsInstance(ct.styles, Timeline)\n        self.assertEqual(len(ct.styles), 1)\n        self.assertEqual(ct.styles[0].name, \"style1\")\n\n        cg:ClipGroup = ct.currentGroup(0)\n        self.assertEqual(len(cg.clips), 3)\n        self.assertEqual(cg.clips[0].type, ClipType.ClearScreen)\n        self.assertEqual(cg.clips[0].text, \"Oh,\")\n        self.assertEqual(cg.clips[1].type, ClipType.Isolated)\n        self.assertEqual(cg.clips[1].text, \"hello.\")\n        self.assertEqual(cg.clips[-1].type, ClipType.EndCap)\n        self.assertEqual(cg.clips[-1].text, \"\")\n\n        cg:ClipGroup = ct.currentGroup(16)\n        self.assertEqual(cg.duration, 0)\n\n        cg:ClipGroup = ct.currentGroup(19)\n        self.assertEqual(cg.duration, 0)\n\n        cg:ClipGroup = ct.currentGroup(20)\n        self.assertNotEqual(cg.duration, 0)\n\n        cg:ClipGroup = ct.currentGroup(28)\n        self.assertEqual(len(cg.clips), 7)\n        self.assertEqual(cg.clips[0].type, ClipType.ClearScreen)\n        self.assertEqual(cg.clips[-1].type, ClipType.EndCap)\n        self.assertEqual(cg.clips[-1].text, \"\")\n\n        def styler(c):\n            if \"style1\" in c.styles:\n                return c.text, Style(Font.RecursiveMono(), 150)\n            else:\n                return c.text.upper(), Style(Font.MutatorSans(), 150)\n\n        cgp = cg.pens(Frame(28, at3), styler, Rect(1080, 1080))\n        self.assertEqual(len(cgp), 1)\n        self.assertEqual(len(cgp[0]), 4)\n        self.assertEqual(cgp[0].data(\"line_text\"), \"This is some txt\")\n        self.assertEqual(cgp[0][0][0].data(\"position\"), 1)\n        self.assertEqual(cgp[0][1][0].data(\"position\"), 0)\n        self.assertEqual(cgp[0][2][0].data(\"position\"), -1)\n        self.assertEqual(cgp[0][1][0][-2].glyphName, \"S.closed\")\n    \n    def test_ascii_timeline_ec(self):\n        self.assertEqual(at4.duration, 36)\n\n        self.assertEqual(at4.ki(0, 0).ec(\"l\", rng=(0, 90)), 0)\n        self.assertEqual(at4.ki(0, 10).ec(\"l\", rng=(0, 90)), 90)\n        self.assertEqual(at4.ki(0, 35).ec(\"l\", rng=(0, 90)), 360)\n    \n    def test_animation(self):\n        src = \"examples/animations/alphabet.py\"\n        sr = SourceReader(src).unlink()\n        anim:animation = sr.renderables()[0]\n        \n        self.assertEqual(anim.duration, 26)\n        \n        for i in range(0, anim.duration):\n            p = anim.passes(None, None, indices=[i])[0]\n            res = anim.run_normal(p)\n            gn = chr(65+i)\n            if gn == \"I\":\n                gn = \"I.narrow\"\n            self.assertEqual(res[1][0][0].glyphName, gn)\n            if i == 13:\n                self.assertAlmostEqual(res[1][0][0].f().h/360, 0)\n\nif __name__ == \"__main__\":\n    unittest.main()"
  },
  {
    "path": "test/visuals/.gitignore",
    "content": "_test_pen_to_code_output.py\n_test_data_src_src.txt"
  },
  {
    "path": "test/visuals/test_color_palette.py",
    "content": "from coldtype.test import *\nfrom coldtype.fx.skia import Skfi, mod_pixels, precompose\n\ndef r10(x):\n    return int(round(x / 150.0)) * 150\n\ndef lut(rgba):\n    r, g, b, a = rgba\n    if a < 100:\n        a = 0\n    if r > 100:\n        return 255, 0, 100, 255\n    elif g > 100:\n        return 0, 255, 200, 255\n    elif b > 100:\n        return 0, 155, 255, 255\n    else:\n        a = 0\n    return (r, g, b, a)\n\ndef contrast_cut(mp=127, w=5):\n    ct = bytearray(256)\n    for i in range(256):\n        if i < mp - w:\n            ct[i] = 0\n        elif i < mp:\n            ct[i] = int((255.0/2)*(1-(mp-i)/w))\n        elif i == mp:\n            ct[i] = 127\n        elif i < mp + w:\n            ct[i] = int(127+(255.0/2)*((i-mp)/w))\n        else:\n            ct[i] = 255\n            #ct[i] = randint(0, 255)\n    return ct\n\nct = bytearray(256)\nfor i in range(256):\n    x = (i - 96) * 255 // 1\n    ct[i] = min(255, max(0, x))\n\n@animation(timeline=Timeline(120))\ndef restricted_colors(f):\n    c = (StSt(\"COLD\", co, 500, wdth=0.5, ro=1).align(f.a.r))\n    \n    cap_c = (c\n        .copy()\n        .f(0)\n        .attr(skp=dict(\n           Shader=skia.PerlinNoiseShader.MakeFractalNoise(0.01, 0.01, 2, 5)))\n        .ch(precompose(f.a.r))\n        .attr(skp=dict(\n            ImageFilter=skia.BlurImageFilter.Make(5, 5),\n            ColorFilter=Skfi.as_filter(\n                contrast_cut(f.e(\"l\", 0, r=(50, 190)), 10)\n                , a=0, r=1, g=1, b=1),\n        ))\n        .ch(mod_pixels(f.a.r, 0.1, lambda c: [r10(x) for x in c]))\n        )\n\n    #print(cap_c + P(f.a.r))\n    #return None\n    return cap_c + P(f.a.r).difference(c).f(0)"
  },
  {
    "path": "test/visuals/test_gs.py",
    "content": "from coldtype.test import *\n\n@renderable((500, 500))\ndef test2_(r):\n    return (P()\n        .declare(r:=r.inset(50), cf:=65)\n        .m(r.pw).l(r.ps).l(r.pn)\n        .bxc(r.pe, r.ps, 45)\n        .bxc(r.pn, \"sw\", cf)\n        .bxc(r.ps.o(-130, 0), r.pe, cf+10)\n        .f(hsl(0.9,l=0.8)).s(0).sw(4)\n        .declare(a:=Line(r.pnw, r.pse))\n        .line(a)\n        .oval((r.ecy & a).o(100, 100)))\n\n@renderable((500, 500))\ndef test3_(r):\n    return (P()\n        .declare(r:=r.inset(180), c:=335)\n        .m(r.pw).bxc(r.pe, r.pn, c)\n        .bxc(r.pw, r.ps, c).cp()\n        .f(hsl(0.7, l=0.9)).s(0).sw(4)\n        .rotate(90))\n\n@renderable((500, 500))\ndef test4_(r):\n    return (P()\n        .declare(r:=r.inset(150), x:=r.ee, y:=r.ee.o(50, 0))\n        .line(x).line(y).oval((r.en & y).o(0, 50))\n        .declare(r:=r.inset(-20))\n        .m(r.pnw).bxc(r.ps, \"SW,NE\", 175).cp()\n        #.gs(\"(r:=$rI-20)↖ r↓|↙↗|175\")\n        .f(None).s(0).sw(4))"
  },
  {
    "path": "test/visuals/test_image_font.py",
    "content": "from coldtype import *\nfrom coldtype.img.skiaimage import SkiaImage\nfrom coldtype.fx.skia import skia, precompose\n\nlh = Font.Find(\"liebe\")\nttfont = lh.font.ttFont\n\nsbix = ttfont[\"sbix\"]\nprint(sbix.strikes.keys())\n#max_ppem = min(sbix.strikes.keys())\nmax_ppem = 512\nstrike = sbix.strikes[max_ppem]\n\nglyphs = {}\nfor bitmap in strike.glyphs.values():\n    if bitmap.graphicType == \"png \":\n        glyphs[bitmap.glyphName] = bitmap\n\n@renderable(bg=0)\ndef test_leibeheide(r):\n    txt = (StSt(\"Okey\", lh, int(512), metrics=\"a\")\n        .align(r, ty=1)\n        .f(0)\n        .s(0)\n        .sw(117)\n        .mapv(lambda p: p.s(hsl(random()))))\n    \n    #print(txt[0]._val.value)\n    #return P(txt[0]) + P(txt[0].ambit()).fssw(-1, 0, 1)\n\n    imgs = P()\n    for pen in txt:\n        g = glyphs[pen.glyphName]\n        if g.originOffsetX != 0 or g.originOffsetY != 0:\n            raise Exception(\"non-zero origin\")\n        \n        print(g.glyphName)\n        img = skia.Image.MakeFromEncoded(g.imageData)\n        di = SkiaImage(img)\n        #di.write(\"test.png\")\n        imgs.append(di.translate(pen.ambit(tx=1).x, pen.ambit(ty=1).y))\n    \n    return P(\n        #txt.frameSet(),\n        txt,\n        #DP(txt[0].ambit(tx=1, ty=1)).f(0, 0.1),\n        #DP(imgs[0].bounds()).f(hsl(0.3, a=0.3)),\n        imgs.ch(precompose(r)).blendmode(BlendMode.Cycle(36))\n        )\n    \n    #return txt[0].align(r).skeleton()\n    return txt.translate(0, 660).f(0)#.align(r)\n    print(txt.ambit(), DP(txt.ambit()).align(r).ambit())\n    return DP(txt.ambit())"
  },
  {
    "path": "test/visuals/test_midi_ctrl.py",
    "content": "from coldtype import *\nfrom coldtype.midi.controllers import LaunchControlXL\n\n@animation((1080, 1080), bg=1, rstate=1)\ndef render(f, rstate):\n    nxl = LaunchControlXL(rstate.midi)\n    \n    return P(\n        (P(f.a.r).f(Gradient.V(f.a.r,\n            hsl(nxl(20, 0.25), a=0.5),\n            hsl(nxl(10, 0.45), a=0.5)))),\n        (StSt(\"MIDI\", Font.MutatorSans()\n            , fontSize=20+nxl(12, 0.25)*500\n            , wdth=nxl(11, 0.25)\n            , wght=nxl(21)\n            , tu=-250+nxl(22)*500\n            , r=1\n            , ro=1)\n            .align(f.a.r, tv=1)\n            .f(1)))"
  },
  {
    "path": "test/visuals/test_reader_mod.py",
    "content": "from coldtype.test import *\n\n@test((1000, 350))\ndef test_xstretch(r):\n    st = Style.StretchX(20, debug=1,\n        A=(200, 230),\n        B=(1500, 190),\n        C=(200, 290))\n    style = Style(mutator, 500, mods=st, wght=0.25)\n    return (StyledString(\"ABC\", style)\n        .pen()\n        .align(r)\n        .scale(0.5)\n        .f(hsl(0.2, a=0.1))\n        .s(hsl(0.5))\n        .sw(2))\n\n@test((1000, 350))\ndef test_xstretch_slnt(r):\n    st = Style.StretchX(20, debug=1,\n        L=(500, (400, 750/2), -14),\n        O=(1000, (385, 750/2), -14))\n    return (StSt(\"LOL\", co, 500, mods=st)\n        .align(r)\n        .scale(0.5)\n        .fssw(hsl(0.2, a=0.1), hsl(0.5), 2))\n\n@test((1000, 400))\ndef test_ystretch(r):   \n    st = Style.StretchY(20, debug=1, E=(500, 258))\n    style = Style(mutator, 300, mods=st, wght=0.5)\n    return (StyledString(\"TYPE\", style)\n        .pen()\n        .align(r, tx=1, ty=1)\n        .f(hsl(0.2, a=0.1))\n        .s(hsl(0.5))\n        .sw(2))\n\n@test((1000, 400))\ndef test_ystretch_slnt(r):\n    st = Style.StretchY(20, debug=1,\n        E=(500, (258, 750/2), 35))\n    style = Style(co, 300, mods=st, wght=0.5)\n    return (StyledString(\"TYPE\", style)\n        .pen()\n        .align(r, tx=1, ty=1)\n        .f(hsl(0.2, a=0.1))\n        .s(hsl(0.5))\n        .sw(2)\n        )"
  },
  {
    "path": "tests/_img_only.py",
    "content": "from coldtype import *\n\n@animation((540, 540), bg=None)\ndef scratch(f):\n    res = (StSt(\"ASDF\", Font.MuSan(), 150, wght=f.e(\"eeio\", 1), wdth=0)\n        .align(f.a.r)\n        .f(0)\n        .insert(0, lambda p: P(p.ambit(ty=1).inset(-20))\n            .fssw(-1, 0, 1)\n            .attr(dash=[5, 2])))\n    \n    return res"
  },
  {
    "path": "tests/test_color.py",
    "content": "from coldtype.test import *\n\n@test()\ndef test_interp(r):\n    a = hsl(0.1).hsl_interp(0, hsl(0.9))\n    assert a.hp == pytest.approx(0.1)\n\n    b = hsl(0.1).hsl_interp(1, hsl(0.9))\n    assert b.hp == pytest.approx(0.9)\n\n    c = hsl(0.2).hsl_interp(0.5, hsl(0.6))\n    assert c.hp == pytest.approx(0.4)\n\n    m = Scaffold(r).cssgrid(\"a a a\", \"a\", \"a b c\")\n\n    return (P(\n        P().rect(m[\"a\"]).f(a),\n        P().oval(m[\"b\"]).f(b),\n        P(m[\"c\"]).f(c)))\n\n@test()\ndef test_adjust(r):\n    m = Scaffold(r).numeric_grid(10, 1)\n    return (P().enumerate(m, lambda x: P()\n        .roundedRect(x.el.r, 0.5, scale=False)\n        # 1 for l will erase hue information\n        # a current limitation of the Color class\n        # which stores r,g,b channels\n        .f(hsl(0.6, 0.6, 0.99)\n            .adj(-x.e))))\n\n\n@test()\ndef test_theme_backfill(r):\n    p1 = P().rect(r.take(0.5, \"N\").inset(20)).fssw(Theme(hsl(0), alt=hsl(0.6)), -1, 1)\n    p2 = P().rect(r.take(0.5, \"S\").inset(20)).fssw(-1, Theme(hsl(0), alt=hsl(0.6)), 3)\n    assert p2.styles()[\"alt\"][\"stroke\"][\"color\"] == hsl(0.6)\n    assert p2.styles()[\"alt\"][\"fill\"].a == 0\n    return p1, p2"
  },
  {
    "path": "tests/test_drawbot.py",
    "content": "from coldtype.test import *\nfrom coldtype.osutil import on_mac\n\nnot_mac = not on_mac()\n\ntry:\n    from coldtype.drawbot import *\nexcept ModuleNotFoundError:\n    if not_mac:\n        print(\"Skipping drawBot test (mac-only)\")\n    else:\n        print(\"Must install drawBot\")\n\nif on_mac():\n    @drawbot_renderable((800, 100), bg=1, render_bg=0)\n    def test_setup(r):\n        txt = StSt(\"ASDF\", Font.RecMono(), 100).align(r).ch(dbdraw)\n        assert txt.depth() == 1\n        assert txt.ambit().round() == Rect(278, 15, 240, 70)\n        return txt\n\n    @drawbot_renderable((800, 200), bg=1, render_bg=0)\n    def test_gs_pen(r):\n        rr = Rect(0, 0, 100, 100)\n        dp = (P()\n            .declare(c:=75)\n            .m(rr.pne).bxc(rr.ps, \"se\", c)\n            .bxc(rr.pnw, \"sw\", c).cp()\n            .align(r)\n            .scale(1.2)\n            .f(hsl(0.3, a=0.1))\n            .s(hsl(0.9))\n            .sw(5)\n            .ch(dbdraw))\n        \n        assert len(dp.v.value) == 4\n        assert type(dp) == P\n\n    @drawbot_renderable((800, 300), bg=1, render_bg=0)\n    def test_distribute_on_path(r):\n        script = Font.RecMono()\n\n        s = (StSt(\"Hello\", script, 100)\n            .f(hsl(0.7, s=1))\n            .align(r)\n            .chain(dbdraw))\n        \n        with db.savedState():\n            db.fill(None)\n            db.stroke(0)\n            db.strokeWidth(3)\n            db.rect(*s.ambit())\n\n        circle = P().oval(r.inset(100, 20)).rotate(0)\n        s2 = (s.copy()\n            .zero()\n            .distribute_on_path(circle)\n            .chain(dbdraw))\n        \n        s2a = (P(s2.ambit(tx=1, ty=1)).fssw(-1, hsl(0.9, a=0.3), 10) | dbdraw)\n\n        with db.savedState():\n            db.fill(None)\n            db.stroke(0)\n            db.strokeWidth(2)\n            db.oval(*circle.ambit())\n        \n        assert s.f() == s2.f()\n        assert s2a.ambit(tx=1, ty=1).round() == Rect(403, 19, 265, 114)"
  },
  {
    "path": "tests/test_fonts.py",
    "content": "from coldtype.test import *\nfrom coldtype.text.font import FontmakeCache\n\n@test()\ndef test_instances(r):\n    font = Font.MutatorSans()\n    instances = font.instances(scaled=True)\n    \n    assert len(instances) == 6\n\n    out = StyledString(\"HIHI\", Style(font, 100, instance=\"BoldCondensed\"))\n\n    assert out.variations[\"wdth\"] == instances[\"BoldCondensed\"][\"wdth\"]*1000\n    assert out.variations[\"wght\"] == instances[\"BoldCondensed\"][\"wght\"]*1000\n\n    return out.pens().align(r).f(0)\n\n@test()\ndef test_fontmake(r):\n    out = P()\n\n    src = \"assets/ColdtypeObviously_CompressedBlackItalic.ufo\"\n    font = Font.Fontmake(src)\n    \n    out.append(StSt(\"COLD\", font, 100))\n    \n    assert list(FontmakeCache.keys())[0] == Path(src)\n    assert isinstance(font, Font)\n\n    src = \"assets/ColdtypeObviously.designspace\"\n    font = Font.Fontmake(src)\n\n    out.append(StSt(\"TYPE\", font, 100))\n\n    assert Path(font.path).suffix == \".ttf\"\n    assert list(FontmakeCache.keys())[1] == Path(src)\n    assert isinstance(font, Font)\n\n    assert len(out) == 2\n    assert len(out[0]) == 4\n    assert len(out[1]) == 4\n    \n    assert out[0][0].data(\"glyphName\") == \"C\"\n    assert out[-1][-1].data(\"glyphName\") == \"E\"\n\n    return out.stack(10).align(r)"
  },
  {
    "path": "tests/test_fx.py",
    "content": "from coldtype.test import *\nfrom coldtype.fx.xray import *\n\nr = Rect(1000, 1000)\n\n@test(250)\ndef test_lookup(_r):\n    out = P()\n\n    t = StSt(\"A\", Font.MutatorSans(), 1000).pen().fssw(-1, 0, 2)\n    lk = skeletonLookup(t)\n    t.attach(out)\n    \n    assert len(lk[\"moveTo\"]) == 4\n    assert len(lk[\"lineTo\"]) == 16\n    assert len(lk[\"curveOn\"]) == 0\n    assert len(lk[\"qCurveOn\"]) == 0\n\n    t = StSt(\"B\", Font.MutatorSans(), 1000).pen().fssw(-1, 0, 2)\n    lk = skeletonLookup(t)\n    t.attach(out)\n    \n    assert len(lk[\"moveTo\"]) == 2\n    assert len(lk[\"lineTo\"]) == 14\n    assert len(lk[\"curveOn\"]) == 0\n    assert len(lk[\"qCurveOn\"]) == 23\n\n    t = StSt(\"C\", Font.MutatorSans(), 1000, wght=1).pen().fssw(-1, 0, 2)\n    lk = skeletonLookup(t)\n    t.copy().layer(None, skeleton()).attach(out)\n    \n    assert len(lk[\"moveTo\"]) == 1\n    assert len(lk[\"lineTo\"]) == 6\n    assert len(lk[\"curveOn\"]) == 0\n    assert len(lk[\"qCurveOn\"]) == 24\n\n    return out.distribute().scale(0.25).align(_r)"
  },
  {
    "path": "tests/test_glyphwise.py",
    "content": "from coldtype.test import *\n\n\ndef _test_glyph_kerning(font_path, kern):\n    txt = \"AVAMANAV\"\n    ss = StSt(txt, font_path, 100, wdth=0, kern=kern)\n    gw = Glyphwise(txt, lambda g: Style(font_path, 100, wdth=0, kern=kern, ro=1))\n    gwo = Glyphwise(txt, lambda g: Style(font_path, 100, wdth=0, kern=(not kern), ro=1))\n\n    assert len(ss) == len(txt)\n    assert ss[0].glyphName == \"A\"\n    assert ss[-1].glyphName == \"V\"\n    assert len(gw) == len(txt)\n    assert ss[0].glyphName == \"A\"\n    assert ss[-1].glyphName == \"V\"\n\n    assert ss.ambit() == gw.ambit()\n    assert ss.ambit() != gwo.ambit()\n    return ss, gw\n\n@test(150)\ndef test_format_equality(r):\n    fnt = \"OhnoFatfaceVariable.ttf\"\n    return (P(\n        *_test_glyph_kerning(fnt, False),\n        *_test_glyph_kerning(fnt, True))\n        .stack()\n        .scale(0.5)\n        .align(r))\n\n@test(100)\ndef test_ligature(r):\n    clarette = Font.Find(\"ClaretteGX.ttf\")\n    gl = (Glyphwise([\"fi\", \"j\", \"o\", \"ff\"],\n        lambda g: Style(clarette, 200, wdth=g.i/3))\n        .align(r))\n    \n    assert len(gl) == 4\n    assert gl[0].glyphName == \"f_i\"\n    assert gl[-1].glyphName == \"f_f\"\n    \n    #return gl.scale(0.5)\n\n    gl2 = (Glyphwise2(\"fijoff\",\n        lambda g: Style(clarette, 200, wdth=g.i/3))\n        .align(r))\n    \n    assert len(gl2) == 4\n    assert gl2[0].glyphName == \"f_i\"\n    assert gl2[-1].glyphName == \"f_f\"\n\n    gl3 = (Glyphwise2(\"fijoff\",\n        lambda g: Style(clarette, 200, wdth=g.i/3)\n        , multiline=1)\n        .align(r))\n    \n    assert len(gl3) == 1\n    assert len(gl3[0]) == 4\n    \n    return gl2.scale(0.25)\n\n@test(160)\ndef test_variable_args(r):\n    fnt = Font.Find(\"OhnoFatfaceV\")\n    out = P()\n    \n    (Glyphwise(\"FATFACE 1 ARG\", lambda g:\n        Style(fnt, 100, wdth=g.e))\n        .attach(out))\n    \n    es = []\n    def print_e(g):\n        es.append(g.e)\n        return Style(fnt, 100, opsz=g.e, wdth=1-g.e)\n    \n    (Glyphwise(\"FATFACE 2 ARG\", print_e)\n        .attach(out))\n    \n    assert es[0] == 0\n    assert es[1] == pytest.approx(0.083333333333)\n    assert es[-1] == 1\n\n    return out.stack(10).align(r)\n\n@test()\ndef test_newline(r):\n    _r = Rect(1080, 300)\n    fnt = Font.Find(\"OhnoFatfaceV\")\n    \n    gs = (Glyphwise(\"FATFACE\\nFACEFAT\", lambda g:\n        Style(fnt, g.i*10+50, wdth=g.e))\n        .align(_r))\n    \n    assert gs[0][0].ambit().xy() == [305.21250000000003, 172.05]\n    assert gs[1][-1].ambit().xy() == [656.3775, 58.650000000000006]\n    \n    assert gs[0][-1].glyphName == \"E\"\n    assert gs[1][-1].glyphName == \"T\"\n    return gs.align(r)\n\n@test(150)\ndef test_newline_onechar(r):\n    fnt = Font.MutatorSans()\n    _r = Rect(1080, 300)\n    \n    gs = (Glyphwise(\"T\\nYPE\", lambda g:\n        Style(fnt, 150-g.i*20, wdth=1-g.e))\n        .xalign(_r)\n        .lead(20)\n        .align(_r)\n        )\n    \n    assert gs[0][0].ambit().xy() == pytest.approx([454.5, 153.0])\n    assert gs[1][-1].ambit().xy() == [629.56, 42.0]\n    assert gs[0][0].glyphName == gs[0][-1].glyphName\n    assert gs[0][0].glyphName == \"T\"\n    assert gs[1][-2].glyphName == \"P\"\n\n    return gs.scale(0.5).align(r)\n\n@test()\ndef test_kp(r):\n    fnt = Font.Find(\"OhnoFatfaceV\")\n    _r = Rect(1080, 300)\n\n    gs_no_kp = (Glyphwise(\"FATFACE\", lambda g:\n        Style(fnt, 250, wdth=1-g.e, ro=1))\n        .align(_r)\n        .fssw(-1, 0, 1))\n    \n    gs_kp = (Glyphwise(\"FATFACE\", lambda g:\n        Style(fnt, 250, wdth=1-g.e, kp={\"A/T\":-250}, ro=1))\n        .align(_r)\n        .fssw(-1, 0, 1))\n    \n    kp_sw = gs_kp[2].ambit().psw\n    no_kp_sw = gs_no_kp[2].ambit().psw\n\n    assert kp_sw != no_kp_sw\n    assert kp_sw.y == no_kp_sw.y\n\n    return (P(gs_kp, gs_no_kp)\n        .stack(10)\n        .align(r)\n        .scale(0.5))\n\n@test()\ndef test_tu(r):\n    fnt = Font.Find(\"OhnoFatfaceV\")\n    _r = Rect(1080, 300)\n\n    gs_no_tu = (Glyphwise(\"FATFACE\", lambda g:\n        Style(fnt, 250, wdth=1-g.e, ro=1))\n        .align(_r)\n        .fssw(-1, 0, 1))\n    \n    gs_tu = (Glyphwise(\"FATFACE\", lambda g:\n        Style(fnt, 250, wdth=1-g.e, tu=-50, ro=1))\n        .align(_r)\n        .fssw(-1, 0, 1))\n\n    assert gs_tu.ambit().w < gs_no_tu.ambit().w\n\n    return P(gs_no_tu, gs_tu).stack(10).align(r).scale(0.5)\n\n@test(80)\ndef test_multistyle(r):\n    def styler1(g):\n        return Style(Font.MutatorSans(), 100, wdth=0)\n    \n    def styler2(g):\n        return [\n            Style(Font.MutatorSans(), 100, wdth=0),\n            Style(Font.MutatorSans(), 100, wdth=g.e),\n        ]\n    \n    g1 = (Glyphwise(\"ASDF\", styler1)\n        .fssw(-1, 0, 1))\n    \n    g2 = (Glyphwise(\"ASDF\", styler2)\n        .fssw(-1, 0, 1))\n    \n    assert g1.ambit().w == g2.ambit().w\n    assert g1.ambit(tx=1).w != g2.ambit(tx=1).w\n\n    assert g1[-1].glyphName == \"F\"\n    assert g2[-1].glyphName == \"F\"\n    assert g2[-1].data(\"frame\").w == g1[-1].data(\"frame\").w\n    assert g1[-1].ambit(tx=1).w == 28.0\n    assert g2[-1].ambit(tx=1).w == 86.0\n\n    return P(g1, g2).distribute().track(100).align(r).scale(0.5)\n\n@test(150)\ndef test_multiline(r):\n    def styler(g):\n        return Style(Font.MutatorSans(), 120,\n            meta=dict(idx=g.i))\n    \n    gw = (Glyphwise(\"AB\\nCD\\nEF\", styler))\n\n    assert len(gw) == 3\n    gw.collapse()\n    assert len(gw) == 6\n\n    for idx, g in enumerate(gw):\n        assert g.data(\"idx\") == idx\n\n    gw2 = (Glyphwise(\"ABC\", styler, multiline=1))\n    \n    assert len(gw2) == 1\n    gw2.collapse()\n    assert len(gw2) == 3\n\n    for idx, g in enumerate(gw2):\n        assert g.data(\"idx\") == idx\n    \n    gw3 = (Glyphwise(\"ABC\", styler, multiline=0))\n    assert len(gw3) == 3\n    gw3.collapse()\n    assert len(gw3) == 3\n\n    for idx, g in enumerate(gw3):\n        assert g.data(\"idx\") == idx\n    \n    return (P(gw, gw2, gw3)\n        .distribute()\n        .track(20)\n        .align(r)\n        .scale(0.5))\n\n@test(10)\ndef test_no_reverse(r):\n    def styler(g):\n        return Style(Font.MutatorSans(), 120, r=1)\n    \n    with pytest.raises(Exception) as context:\n        (Glyphwise(\"AB\\nCD\\nEF\", styler))\n    \n    assert \"r=1 not possible\" in str(context.value)\n    return None\n\n@test(100)\ndef test_multistyle_stst(r):\n    stst = (StSt(\"COLD\\nCOLD\", [\n        Style(Font.MuSan(), 30, wght=1),\n        Style(Font.ColdObvi(), 40, wght=1)])\n        .xalign(r)\n        .align(r))\n    \n    assert stst[0][0].glyphName == \"C\"\n    assert stst[-1][-1].glyphName == \"D\"\n\n    print(len(stst[0][0]._val.value))\n    assert len(stst[0][0]._val.value) == 32\n    assert len(stst[1][0]._val.value) == 32\n    \n    return stst"
  },
  {
    "path": "tests/test_i18n.py",
    "content": "from coldtype.test import *\nimport unicodedata\n\nco = Font.ColdObvi()\nmutator = Font.MutatorSans()\n\nzh = Font.Cacheable(\"assets/Noto-unhinted/NotoSansCJKsc-Black.otf\")\n\nlatin_font = Font(\"assets/Noto-unhinted/NotoSans-Black.ttf\")\narabic_font = Font.Find(\"GretaArabicCompressedAR-Heavy.otf\")\nar_light = Font.Find(\"GretaArabicCondensedAR-Light.otf\")\nhebrew_font = Font.Find(r\"GretaSansCondensedH\\+L\\-Medium\\.otf\")\n\nfnt_en = Font.Cacheable(\"assets/SourceSerif4-VariableFont_opsz,wght.ttf\")\n\nr = Rect(1000, 500)\n\ndef gn_to_c(gn):\n    return chr(int(gn.replace(\"uni\", \"\"), 16))\n\ndef gn_to_uniname(gn):\n    return unicodedata.name(gn_to_c(gn))\n\n@test()\ndef test_mixed_lang_slug(_r):\n    out = P()\n\n    obv = Style(co, 300, wdth=1, wght=0, lang=\"en\")\n    style = Style(zh, 300, lang=\"zh\")\n    dps = (Slug(\"CO同步\", style, obv)\n        .fit(r.w-100)\n        .pens()\n        .align(r, tx=1))\n    \n    assert dps[-1].ambit().round() == Rect([657,138,300,220])\n    \n    assert dps[0].glyphName == \"C\"\n    assert dps[1].glyphName == \"O\"\n    assert dps[2].glyphName == \"cid12378\"\n    assert dps[3].glyphName == \"cid23039\"\n    assert dps.depth() == 1\n\n    dps.attach(out)\n\n    dps = (Slug(\"CO同步\", style, obv)\n        .fit(r.w-100)\n        .pens(flat=False)\n        .align(r, tx=1))\n    \n    assert dps[0].data(\"lang\") == \"en\"\n    assert dps[0][0].glyphName == \"C\"\n    assert dps[0][1].glyphName == \"O\"\n\n    assert dps[1].data(\"lang\") == \"zh\"\n    assert dps[1][0].glyphName == \"cid12378\"\n    assert dps[1][1].glyphName == \"cid23039\"\n\n    assert dps.depth() == 2\n\n    dps.attach(out)\n\n    return out.stack(100).align(_r).scale(0.25)\n\n@test(100)\ndef test_mixed_lang_stst(_r):\n    out = P()\n\n    dps = (StSt(\"CO同步TY\", zh, 300,\n        lang=\"zh\",\n        fallback=Style(co, 300, wdth=1, wght=0, lang=\"en\"),\n        fit=r.w-100)\n        .align(r, tx=1))\n    \n    dps[1].translate(10, 0)\n    dps.attach(out)\n    \n    assert dps[1][-1].ambit().w == 300\n    \n    assert dps[0].data(\"lang\") == \"en\"\n    assert dps[0][0].glyphName == \"C\"\n    assert dps[0][1].glyphName == \"O\"\n    \n    assert dps[1].data(\"lang\") == \"zh\"\n    assert dps[1][0].glyphName == \"cid12378\"\n    assert dps[1][1].glyphName == \"cid23039\"\n\n    assert dps[2].data(\"lang\") == \"en\"\n    assert dps[2][0].glyphName == \"T\"\n    assert dps[2][1].glyphName == \"Y\"\n\n    return out.align(_r).scale(0.25)\n\n@test()\ndef test_rtl_multiline_stst(_r):\n    out = P()\n\n    txt = 'Limmmm/Satلل\\nوصل الإستيرِو'\n    arabic = Style(ar_light, 150, lang=\"ar\", bs=-1,\n        fallback=Style(latin_font, 100, fill=(\"hr\", 0.5, 0.5)))\n    \n    dps = StSt(txt, arabic, leading=30).xalign(r).align(r)\n\n    dps.attach(out)\n\n    lgn = dps[-1][-1][-1].glyphName\n    lc = gn_to_c(lgn)\n    \n    assert unicodedata.name(lc) == \"ARABIC LETTER WAW\"\n    assert dps[-1][-1][-1].ambit().round() == Rect([707,148,42,87])\n    \n    assert dps[0][0][0].glyphName == \"L\"\n    assert dps[0][1][-1].glyphName == \"uniFEDF\"\n\n    return out.align(_r).scale(0.65)\n\n@test((100))\ndef test_hebrew(_r):\n    out = P()\n\n    hebrew = Style(hebrew_font, 130)\n    slug = Slug('קומפרסיה ועוד', hebrew)\n    dps = slug.pens().align(r, tx=1).attach(out)\n\n    assert gn_to_c(dps[-1].glyphName) == \"ק\"\n    assert dps[-1].ambit().round() == Rect([719,212,52,76])\n\n    return out.align(_r).scale(0.75)\n\n@test()\ndef test_multidir_seg_string(_r):\n    txt = \"+بوابة\"\n\n    latin = Style(latin_font, 130, fill=(\"hr\", 0.5, 0.5))\n    arabic = Style(arabic_font, 150, lang=\"ar\", bs=-1)\n    seg = SegmentedString(txt, dict(Arab=arabic, Latn=latin)).pens()\n    slug = Slug(txt, arabic, latin).pens()\n\n    dps = P([\n        seg.align(r, tx=1).translate(0, 100),\n        slug.align(r, tx=1).translate(0, -100)])\n    \n    assert dps[0][-1].glyphName == \"plus\"\n    assert gn_to_uniname(dps[0][0].glyphName) == \"ARABIC LETTER TEH MARBUTA FINAL FORM\"\n    assert dps[1][0].glyphName == \"plus\"\n    assert gn_to_uniname(dps[1][1].glyphName) == \"ARABIC LETTER TEH MARBUTA FINAL FORM\"\n\n    return dps.align(_r).scale(0.5)\n    \n@test(150)\ndef test_combine_slugs(_r):\n    s1 = Slug(\"YO\", Style(co, 300, wdth=1)).pens()\n    line = P().rect(Rect(100, 20))\n    s2 = Slug(\"OY\", Style(co, 300, wdth=0)).pens()\n    shape = P().oval(Rect(100, 100))\n    dps = P([s1, line, s2, shape]).distribute().align(r, tx=1)\n    assert dps.ambit().round() == Rect([127,138,737,225])\n    assert dps[1].ambit().round() == Rect([540,138,100,20])\n\n    return dps.align(_r).scale(0.5)\n\n@test(120)\ndef test_language_specific_forms(_r):\n    out = P()\n    txt = StSt(\"ríjks\", fnt_en, 350, lang=\"NLD\").attach(out)\n    \n    assert txt[1].glyphName == \"iacute\"\n    assert txt[2].glyphName == \"uni0237\"\n    txt = StSt(\"ríjks\", fnt_en, 350).attach(out)\n    assert txt[1].glyphName == \"iacute\"\n    assert txt[2].glyphName == \"j\"\n\n    return out.distribute().track(100).align(_r).scale(0.25)\n\n@test(120)\ndef test_korean_fallback(_r):\n    txt = Slug(\"사이드체인 HPF\", Style(zh, 72), Style(fnt_en, 72, fill=hsl(0.3)), print_segments=True).pens().align(_r)\n    \n    assert txt[0].glyphName == \"cid52858\"\n    assert txt[-1].glyphName == \"F\"\n    \n    return txt\n\n@test(120)\ndef test_language_specific_ufo(_r):\n    hershey_gothic = Font.Find(\"Hershey-TriplexGothicGerman.ufo\")\n    txt = StSt(\"Grieß\".upper(), hershey_gothic, 200, tu=-100)\n    assert len(txt) == 6\n    assert txt[-1].glyphName == \"S\"\n    assert txt[-2].glyphName == \"S\"\n\n    return txt.outline(2).align(_r).scale(0.5)"
  },
  {
    "path": "tests/test_pens.py",
    "content": "from coldtype.test import *\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\nmutator = Font.Cacheable(\"assets/MutatorSans.ttf\")\n\n@test()\ndef test_scaleToRect(_r):\n    r = Rect(1000, 500)\n    dps = P([\n        (StSt(\"SPACEFILLING\", mutator, 50)\n            .align(r)\n            .f(hsl(0.8))\n            .scaleToRect(r.inset(100, 100), False)),\n        (StSt(\"SPACEFILLING\", mutator, 50)\n            .align(r)\n            .f(hsl(0.5))\n            .scaleToWidth(r.w-20)),\n        (StSt(\"SPACEFILLING\", mutator, 50)\n            .align(r)\n            .f(hsl(0.3))\n            .scaleToHeight(r.h-50))])\n    \n    assert dps[0].ambit(tx=1).w == pytest.approx(r.inset(100).w)\n    assert dps[0].ambit(ty=1).h == pytest.approx(r.inset(100).h)\n    assert dps[1].ambit(tx=1).w == pytest.approx(r.w-20)\n    assert dps[2].ambit(ty=1).h == r.h-50\n    \n    return dps.align(_r).scale(0.5)\n\n@test(10)\ndef test_underscore_method(r):\n    p1 = P(r.take(0.5, \"E\"))\n    p1_a1 = p1.ambit()\n    p1.___align(r) # this should do nothing\n    p1_a2 = p1.ambit()\n    p1.align(r)\n    p1_a3 = p1.ambit()\n\n    assert p1_a1 == p1_a2\n    assert p1_a1 != p1_a3\n    assert p1_a2 != p1_a3\n\n    return p1\n\n@test(100)\ndef test_distribute_and_track(_r):\n    dps = P()\n    rnd = Random(0)\n    r = Rect(1000, 500)\n\n    for _ in range(0, 11):\n        dps += (P()\n            .rect(Rect(100, 100))\n            .f(hsl(rnd.random(), s=0.6))\n            .rotate(rnd.randint(-45, 45)))\n    dps = (dps\n        .distribute()\n        .track(-50)\n        .reverse()\n        .understroke(s=0.2)\n        .align(r)\n        )\n    \n    assert len(dps) == 11\n    assert dps.ambit(tx=1).round().w == 830\n\n    return dps.align(_r).scale(0.5)\n\n@test()\ndef test_track_to_rect(_r):\n    r = Rect(1000, 500)\n    text = (StSt(\"COLD\", co, 300, wdth=0, r=1)\n        .align(r)\n        .track_to_rect(r.inset(50, 0), r=1))\n    \n    assert text[0].glyphName == \"D\"\n    assert text[-1].ambit().round().x == 50\n    assert text[0].ambit().round().x == 883\n\n    return text.align(_r).scaleToRect(_r.inset(10))\n\n@test()\ndef test_distribute_oval(_r):\n    r = Rect(1000, 500)\n    txt = (StSt(\"COLDTYPE \"*7, co, 64,\n        tu=-50, r=1, ro=1, strip=True)\n        .distribute_on_path(P()\n            .oval(r.inset(50))\n            .reverse()\n            .repeat())\n        .fssw(hsl(0.9), 0, 3, 1))\n\n    assert len(txt) == 62\n    \n    x, y = txt[-1].ambit().xy()\n    assert round(x) == 500\n    assert round(y) == 50\n\n    txt.unframe().align(_r).scale(0.35, point=_r.pc)\n\n    return (P(\n        P(txt.ambit()).f(hsl(0.3, 1)),\n        txt))\n\n@test()\ndef test_distribute_path_lines(_r):\n    r = Rect(1080, 1080).inset(200)\n    p = (P().m(r.psw).l(r.pn).l(r.pse).ep())\n\n    lockup = (StSt(\"COLDTYPE\",\n        Font.MutatorSans(), 220, wght=.4, wdth=0.5)\n        .distribute_on_path(p)\n        .align(r, ty=1, tx=1)\n        .f(0))\n\n    x, y = lockup[3].ambit().xy()\n\n    assert lockup[3].glyphName == \"D\"\n    assert round(x) == 454\n    assert round(y) == 690\n\n    x, y = lockup[-1].ambit().xy()\n\n    assert lockup[-1].glyphName == \"E\"\n    assert round(x) == 792\n    assert round(y) == 312\n\n    return P(p, lockup).align(_r).scale(0.25)\n\n@test((800, 100))\ndef test_stack(_r):\n    sr = Rect(50, 50)\n\n    res = (P(\n        P().oval(sr).f(hsl(0.5)).tag(\"A\"),\n        P().oval(sr).f(hsl(0.7)).tag(\"B\"),\n        P().oval(sr).f(hsl(0.9)).tag(\"C\"))\n        .stack(10))\n\n    assert res.find_(\"C\").ambit().y == 0\n    assert res.find_(\"B\").ambit().y == 60\n    assert res.find_(\"A\").ambit().y == 120\n\n    return res.align(_r).scale(0.5)\n\n@test((800, 100))\ndef test_stack_and_lead(_r):\n    sr = Rect(50, 50)\n\n    res = (P(\n        P().oval(sr).f(hsl(0.5)).tag(\"A\"),\n        P().oval(sr).f(hsl(0.7)).tag(\"B\"),\n        P().oval(sr).f(hsl(0.9)).tag(\"C\"))\n        .stack(10)\n        .lead(10))\n\n    assert res.find_(\"C\").ambit().y == 0\n    assert res.find_(\"B\").ambit().y == 70\n    assert res.find_(\"A\").ambit().y == 140\n\n    return res.align(_r).scale(0.5)\n\n@test((800, 150))\ndef test_projection(r):\n    return (P().rect((300, 300))\n        .difference(P().rect((-150, -150, 300, 300)))\n        .layer(\n            λ.castshadow(-35, 200).f(hsl(0.1, 1)),\n            λ.project(-35, 200).f(hsl(0.9, 0.8)),\n            λ.f(hsl(0.3, 0.6)))\n        .align(r)\n        .scale(0.25))\n\n@test((800, 150))\ndef test_plural_boolean(r):\n    r = r.square()\n    res = (P(\n        P(r),\n        P().oval(r.inset(10)),\n        P().oval(r.inset(20)))\n        .intersection()\n        .f(0))\n\n    assert res.ambit() == r.inset(20)\n    \n    return res\n\n@test((800, 150), solo=0)\ndef test_to_code(r):\n    res = P(r.square().inset(5)).f(hsl(0.3)).data(hello=\"world\")\n    encoded = res.to_code()\n    res2 = eval(encoded)\n    \n    assert res2.data(\"hello\") == \"world\"\n    assert res.data(\"hello\") == res2.data(\"hello\")\n    assert res.f() == res2.f()\n\n    res3 = P(res, res2).distribute().track(2).align(r)\n    res4 = eval(res3.to_code())\n\n    assert len(res3) == len(res4)\n    assert res3.tree() == res4.tree()\n    assert res3[0].f() == res4[0].f()\n\n    res4.f(hsl(0.9))\n\n    assert res3.f() != res4.f()\n    assert res3[0].f() != res4[0].f()\n\n    return P(res3, res4).distribute().track(10).align(r)\n\n@test((800, 150))\ndef test_gridlayer(r):\n    res = (P().rect(Rect(30, 30))\n        .gridlayer(3, 3, 10, 10)\n        .align(r))\n    \n    res2 = (P().rect(Rect(30, 30))\n        .layer(3)\n        .spread(10)\n        .layer(3)\n        .stack(10)\n        .align(r))\n    \n    assert res.ambit() == res2.ambit()\n    \n    assert len(res) == 3\n    assert len(res[0]) == 3\n    assert len(res[0][0]) == 0\n    assert len(res[0][0]._val.value) == 5\n\n    res.mapvch(lambda b, p: p.f(hsl(0.65 if b else 0.85)))\n\n    assert res[0][0].f().h/360 == pytest.approx(0.85)\n    assert res[0][1].f().h/360 == pytest.approx(0.65)\n\n    res.mapvrc(lambda r, c, p: p.rotate(45 if r == 1 and c == 1 else 0))\n\n    assert res[0][0].ambit().w == res[0][1].ambit().w\n    assert res[1][0].ambit().w != res[1][1].ambit().w # the rotated one has a bigger ambit\n    assert res[2][0].ambit().w == res[2][1].ambit().w\n\n    return res\n\n@test((800, 200))\ndef test_dash_line(r):\n    return (P().line([(_r:=r.inset(30)).psw, _r.pne])\n        .fssw(-1,0,6)\n        .dash([15, 10.0], -9))"
  },
  {
    "path": "tests/test_reader.py",
    "content": "from coldtype.test import *\nfrom coldtype.osutil import on_mac, on_windows\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\nmutator = Font.Cacheable(\"assets/MutatorSans.ttf\")\nr = Rect(1000, 500)\n\n@test(150)\ndef test_fit(_r):\n    inset = 150\n    ri = r.inset(inset, 0)\n    out = P([\n        P(ri).f(hsl(0.7, a=0.1)),\n        (StSt(\"COLD\", co, 500,\n            wdth=1, fit=ri.w, annotate=True)\n            .fssw(-1, hsl(0.7), 2)\n            .align(r))])\n    \n    assert ri.w == round(out[1].ambit().w)\n    assert out[1]._stst.variations[\"wdth\"] == 379\n\n    return out.align(_r).scale(0.25)\n\n@test(120)\ndef test_style_mod(r):\n    style = Style(co, 250, wdth=1, annotate=True)\n    a = StSt(\"CLDTP\", style)\n    b = StSt(\"CLDTP\", style.mod(wdth=0))\n    \n    assert a._stst.variations[\"wdth\"] == 1000\n    assert b._stst.variations[\"wdth\"] == 0\n\n    return P(a, b).stack(10).scale(0.25).align(r)\n\n@test(150)\ndef test_fit_height(r):\n    style = Style(co, 250, wdth=1, annotate=True)\n    a = StSt(\"CLDTP\", style)\n    b = StSt(\"CLDTP\", style.mod(fitHeight=300))\n    \n    assert a._stst.fontSize == 250\n    assert b._stst.fontSize == 400\n\n    return P(a, b).stack(10).align(r).scale(0.25)\n\n@test()\ndef test_kern_pairs(_r):\n    style = Style(co, 250, wdth=1, annotate=True)\n    a = StSt(\"CLD\", style)\n    b = StSt(\"CLD\", style.mod(kp={\"C/L\":20, \"L/D\":100}))\n    \n    assert a[1].ambit().x == 155.75\n    assert b[1].ambit().x == 155.75 + 20*(250/1000)\n    assert a[2].ambit().x == 273.5\n    assert b[2].ambit().x == 273.5 + 20*(250/1000) + 100*(250/1000)\n\n    return P([a, b]).stack(10).fssw(-1, 0, 1).scale(0.5).align(_r)\n\n@test(80)\ndef test_normalize(_r):\n    style = Style(\"asdf\", 100)\n    font_path = Path(style.font.path).relative_to(Path(\".\").absolute())\n\n    assert font_path == Path(\"packages/coldtype-core/src/coldtype/demo/RecMono-CasualItalic.ttf\")\n\n    assert style.font.names()[0] == \"Rec Mono Casual Italic\"\n    assert style.font.names()[1] == \"Rec Mono Casual\"\n\n    if on_mac():\n        style = Style(\"Times\", 100)\n        assert style.font.path.name == \"Times.ttc\"\n    elif on_windows():\n        style = Style(\"times\", 100)\n        assert style.font.path.name == \"times.ttf\"\n    \n    return StSt(\"Hello\", style).align(_r).f(0)"
  },
  {
    "path": "tests/test_rect.py",
    "content": "from coldtype.test import *\n\n@test((250, 250), solo=0)\ndef test_contains(r):\n    r0 = r.take(150, \"SW\").offset(10)\n    r1 = r.take(50, \"NE\").offset(-10)\n    r2 = r.take(50, \"SW\").offset(20)\n    r3 = r.take(50, \"S\").take(50, \"CX\")\n    r4 = r.take(50, \"W\").take(50, \"CY\")\n    r5 = r0.take(50, \"NE\")\n    \n    assert r0.contains(r1) == False\n    assert r0.contains(r2) == True\n    assert r0.contains(r3) == False\n    assert r0.contains(r4) == False\n    assert r3.contains(r4) == False\n    assert (r5 in r0) == True\n    \n    return P(P(x) for x in [r0,r1,r2,r3,r4,r5]).fssw(-1, 0, 1)\n\n@test((250, 250))\ndef test_fit(r):\n    r1 = P(r.take(20, \"NE\"))\n    assert r1.ambit().w == 20\n    assert r1.ambit().x == 250-20\n    \n    rs = (r1.layer(\n        1,\n        lambda p: p.align(r, \"E\"),\n        lambda p: p.align(r, \"SE\"),\n        lambda p: p.align(r, \"S\"),\n        lambda p: p.align(r, \"SW\"),\n        lambda p: p.align(r, \"W\"),\n        lambda p: p.align(r, \"NW\"),\n        lambda p: p.align(r, \"N\"),\n    ))\n\n    assert len(rs) == 8\n    assert rs.ambit().w == 250\n    assert rs.ambit().h == 250\n    assert rs[3].ambit().y == 0\n    assert rs[5].ambit().x == 0\n    \n    return rs\n\n@test((250, 250), solo=0)\ndef test_align_text(r):\n    txt = (StSt(\"Hello\\nWorld\\nLonger Line\", Font.RecMono(), 32)\n        .xalign(r, \"E\"))\n    \n    assert txt[0].ambit().y == pytest.approx(64.8)\n    assert txt[1].ambit().y == pytest.approx(32.4)\n    assert txt[2].ambit().y == 0\n\n    assert txt[0].ambit().x == pytest.approx(155.98, rel=1e-4)\n    assert txt[1].ambit().x == pytest.approx(154.84, rel=1e-4)\n    assert txt[2].ambit().x == pytest.approx(40.47, rel=1e-4)\n\n    return txt\n\n@test((250, 250), solo=0)\ndef test_aspects(r:Rect):\n    ri = r.inset(20)\n\n    r45 = ri.fit_aspect(4, 5)\n    assert r45.w == 168\n    assert r45.h == ri.h\n\n    r54 = ri.fit_aspect(5, 4)\n    assert r54.w == ri.w\n    assert r54.h == r45.w\n\n    r169 = ri.fit_aspect(16, 9)\n    assert r169.w == ri.w\n    assert r169.h == 118.125\n\n    return (P(\n        P(r45),\n        P(r54),\n        P(r169),\n        )\n        .fssw(-1, 0, 1))\n"
  },
  {
    "path": "tests/test_richtext.py",
    "content": "from coldtype.test import *\nfrom coldtype.text.richtext import RichText\n\nf1 = Font.ColdtypeObviously()\nf2 = Font.MutatorSans()\n\n@test()\ndef test_preserve_space(_r):\n    r = Rect(1200, 300)\n    rt = RichText(r, \"HELLO[i] COLDTYPE\", dict(\n        i=Style(f2, 200, wdth=0, wght=1),\n        default=Style(f1, 200, wdth=0))).align(r)\n\n    assert rt[0][0].data(\"txt\") == \"COLDTYPE\"\n    assert rt[0][1].data(\"txt\") == \"HELLO \"\n\n    assert rt[0][1][0].glyphName == \"space\"\n    assert rt[0][1][-1].glyphName == \"H\"\n\n    assert rt[0][0][0].glyphName == \"E\"\n    assert rt[0][0][-1].glyphName == \"C\"\n\n    space_width = rt[0][1][0].ambit(tx=0).w\n    assert space_width == 50\n\n    assert rt[0][1].ambit(tx=0).w - space_width > rt[0][1].ambit(tx=1).w\n    \n    return rt.align(_r).scale(0.5)\n\n@test()\ndef test_ligature(_r):\n    clarette = Font.Find(\"ClaretteGX.ttf\")\n\n    txt = \"fi¬joff≤asdf≥\"\n    r = Rect(1080, 300)\n    \n    gl = (RichText(r, txt,\n        dict(\n            default=Style(clarette, 200),\n            asdf=Style(clarette, 200, wdth=1)),\n        tag_delimiters=[\"≤\", \"≥\"],\n        visible_boundaries=[\"¶\"],\n        invisible_boundaries=[\"¬\"])\n        .align(r))\n    \n    assert gl[0][0].data(\"style_names\")[0] == \"asdf\"\n    assert len(gl[0][1].data(\"style_names\")) == 0\n    assert gl[0][0][0].glyphName == \"f_f\"\n    assert gl[0][1][0].glyphName == \"f_i\"\n    \n    return gl.align(_r).scale(0.5)"
  },
  {
    "path": "tests/test_scaffold.py",
    "content": "from coldtype.test import *\n\nfrom coldtype.runon.runon import RunonSearchException, RunonException\n\n\n@test((500, 250))\ndef test_auto_recursion(r):\n    l = Scaffold(r)\n    assert l.depth() == 0\n    assert l.v == l.r\n    assert l.v == l.rect\n\n    l.divide(0.5, \"N\")\n    assert l.depth() == 1\n    assert l.rect.w == 500\n    assert l.rect.h == 250\n    assert l[0].rect.w == 500\n    assert l[0].rect.h == 250/2\n    assert l[1].rect.h == 250/2\n\n    l.divide(200, \"W\")\n    assert l.depth() == 2\n    assert l.rect.w == 500\n    assert l.rect.h == 500/2\n    assert l[0].rect.w == 500\n    assert l[0].rect.h == 250/2\n    assert l[1].rect.h == 250/2\n    assert l[0][0].rect.w == 200\n    assert l[1][0].rect.w == 200\n    \n    l[1][1].subdivide(3, \"W\")\n    assert l[1][1][1].rect.w == 100\n\n    return P(l[0])\n\n@test((500, 250))\ndef test_duck(r):\n    l = Scaffold(r)\n    l.grid(2, 2, \"abcd\")\n\n    assert l.val_present() == False\n    assert l[0].tag() == \"a\"\n    assert l[-1].tag() == \"d\"\n\n    txt = (StSt(\"ASDF\", Font.MutatorSans(), 50))\n    assert txt.ambit().x == 0\n    \n    txt1 = txt.copy().align(l[\"b\"])\n    txt2 = txt.copy().align(l[\"b\"].rect)\n    \n    assert txt.ambit().x == 0\n    assert txt1.ambit().x == 333.725\n    assert txt2.ambit().x == 333.725\n\n    return txt1, P(l[0])\n\n@test((500, 250))\ndef test_cssgrid(_r):\n    l = (Scaffold(Rect(_r))\n        .cssgrid(r\"auto 30%\", r\"50% auto\", \"x y / z q\",\n            x=(\"200 a\", \"a a\", \"a b / a c\"),\n            c=(\"a a\", \"a a\", \"g a / i a\"),\n            q=(\"a a\", \"a a\", \"q b / c d\")))\n    \n    assert l.depth() == 3\n    assert l[\"x\"] is not None\n    assert l[\"x/c\"] is not None\n    assert l[\"x/c/a\"] is not None\n    \n    assert l.get(\"x/c/q\") is None\n\n    with pytest.raises(RunonSearchException) as context:\n        l[\"x/c/z\"]\n\n    assert l[\"x/a\"] != l[\"x/c/a\"]\n    assert l[\"x/c/a\"] != l[\"a\"]\n    assert l[\"q\"] != l[\"q/q\"]\n\n    return P(l[\"x/a\"]) + P(l[\"q\"])\n\n@test((500, 500))\ndef test_cssgrid_regexs(r):\n    # vulf compressor adv (mini)\n\n    s = Scaffold(r).cssgrid(\"a a a\", \"a 100 60\", \"a || b || c _/ d d d _/ e e e\", {\n            r\"^[abc]\": (\"a a\", \"a 30\", \"a b _/ c c\"),\n            \"d\": (\"a 60\", \"a a\", \"a b / c d\")})\n\n    assert s[\"a\"].r.w == 166\n    assert s[\"a/b\"].r.w == s[\"b/b\"].r.w - 1\n    assert s[\"a/b\"].r.w != s[\"d/b\"].r.w\n    assert s[\"d/b\"].r.w == 60\n\n    assert s[\"a\"].depth() == 1\n    assert s[\"d\"].depth() == 1\n    assert s[\"e\"].depth() == 0\n\n    assert s[\"a/a\"].depth() == 0\n\n    return P(\n        P(s[\"a/b\"]),\n        P(s[\"b/b\"]),\n        P(s[\"c/b\"]),\n        P(s[\"d/b\"]),\n        P(s[\"e\"]))\n\n@test((500, 250))\ndef test_cssgrid_nested(r):\n    s = Scaffold(r).cssgrid(\"a a a\", \"a a a\", \"a b c / d e f / g h i\", {\n        \"a\": (\"a a\", \"a a\", \"a b / c d\"),\n        \"a/b\": (\"a a a\", \"a\", \"a b c\"),\n        r\"h|i\": (\"a a\", \"a\", \"a b\"),\n    })\n\n    assert s[\"a/b/b\"].r == Rect(110.00,209.00,28.00,41.00)\n    assert s[\"h/b+i/a\"].r == Rect(249.00,0.00,167.00,84.00)\n\n    return P(\n        P(s[\"a/b/b\"]).f(0),\n        P(s[\"h/b+i/a\"]).f(hsl(0.65)),\n        )\n\n@test((500, 250))\ndef test_wildcards(r):\n    s = Scaffold(r).cssgrid(\"a a\", \"a a\", \"a b / c d\", {\n        \".*\": (\"a a\", \"a a\", \"a b / c d\"),\n        \".*/.*\": (\"a a\", \"a\", \"a b\"),\n    })\n    \n    assert s.depth() == 3\n    assert len(s) == 4\n    assert len(s[\"a\"]) == 4\n    assert len(s[\"a/a\"]) == 2\n    assert len(s[\"a/a/a\"]) == False\n    assert len(s.match(\"a\")) == 1\n    assert len(s.match(\"a/a\")) == 1\n    assert len(s.match(\"a/a/.*\")) == 2\n\n    s2 = s.copy().collapse()\n    \n    assert len(s2) == 32\n    assert len(s2.match(\"a\")) == 16\n    assert len(s2.match(\"b\")) == 16\n\n    return P(\n        P(s[\"a/a/a\"]).f(hsl(0.5)),\n        P(s[\"c/b/b\"]).f(hsl(0.07, 0.7)),\n        P(s[\"d/d/b\"]).f(hsl(0.8)),\n    )\n\n@test((500, 500))\ndef test_labeled_grid(r):\n    ri = r.inset(20)\n    s = Scaffold.AspectGrid(ri, 4, 5)\n    assert s.r.w < ri.w\n    assert s.r.h == ri.h\n    assert len(s) == 20\n    assert s[0].tag() == \"0|4\"\n    assert s[-1].tag() == \"3|0\"\n    return s.view()\n\n@test((500, 500), solo=0)\ndef test_numeric_grid(r):\n    ri = r.inset(20)\n    s = Scaffold(ri).numeric_grid(5, gap=4, annotate_rings=1)\n    \n    assert len(s) == 81\n    assert len(s.cells()) == 25\n\n    assert s[\"2|2\"].data(\"ring\") == 0\n    assert s[\"2|2\"].data(\"ring_e\") == 0\n    assert s[\"3|2\"].data(\"ring\") == 1\n    assert s[\"4|1\"].data(\"ring\") == 2\n    assert s[\"4|4\"].data(\"ring_e\") == 1\n    \n    p = (P().enumerate(s.cells(), lambda x: P()\n        .oval(x.el.r)\n        .f(0)\n        .up()\n        .append(StSt(x.el.tag(), Font.JBMono(), 24, wght=1)\n            .f(1)\n            .align(x.el.r))\n        .tag(x.el.tag())))\n\n    assert p.find_(\"4|4\").ambit().pne == ri.pne\n    assert p.find_(\"0|0\").ambit().psw == ri.psw\n    assert p.find_(\"0|4\").ambit().pnw == ri.pnw\n    assert p.find_(\"4|0\").ambit().pse == ri.pse\n\n    assert s[\"0|1*3|2\"].r == s[\"0|1+2|2\"].r\n    \n    assert s[\"-1|-1\"].r == s[\"4|4\"].r\n    assert s[\"0|-1*3|-2\"].r == s[\"0|4+2|3\"].r\n\n    return p"
  },
  {
    "path": "tests/test_src_macro.py",
    "content": "from coldtype.test import *\n\nco = Font.Cacheable(\"assets/ColdtypeObviously-VF.ttf\")\nmutator = Font.Cacheable(\"assets/MutatorSans.ttf\")\nr = Rect(1000, 500)\n\n# assert 4j == 0.1016 # see .coldtype.py for magic\n\n# @test(150)\n# def test_src_macro(_r):\n#     return (P(\n#             StSt(\"4j\", Font.RecMono(), fs:=60),\n#             StSt(str(4j), Font.RecMono(), fs))\n#         .stack(20)\n#         .align(_r)\n#         .f(hsl(0.9)))"
  },
  {
    "path": "tests/test_text.py",
    "content": "from coldtype.test import *\n\ntf = Path(__file__).parent\n\ndef _test_glyph_names(r, font_path):\n    ss = StSt(\"CDELOPTY\", font_path, 300, wdth=0).align(r)\n    assert len(ss) == 8\n    assert ss[0].glyphName == \"C\"\n    assert ss[-1].glyphName == \"Y\"\n    return ss\n\n@test((800, 150))\ndef test_format_equality(r):\n    _r = Rect(800, 300)\n\n    ttf = _test_glyph_names(_r, Font.ColdtypeObviously())\n    otf = _test_glyph_names(_r, \"assets/ColdtypeObviously_CompressedBlackItalic.otf\")\n    ufo = _test_glyph_names(_r, \"assets/ColdtypeObviously_CompressedBlackItalic.ufo\")\n    ds = _test_glyph_names(_r, \"assets/ColdtypeObviously.designspace\")\n\n    # TODO why isn't the ttf version equal to these?\n    assert ufo[0].v.value == ds[0].v.value\n    assert ufo[-1].v.value == ds[-1].v.value\n\n    return P([\n        ttf, otf, ufo, ds\n    ]).fssw(-1, hsl(0.5, a=0.1), 3).scale(0.5).align(r)\n\n@test((800, 100))\ndef test_space(r):\n    _r = Rect(2000, 1000)\n\n    txt = StSt(\"A B\", Font.MutatorSans(), 1000)\n    space = txt[1]\n    assert space.glyphName == \"space\"\n    assert space.ambit().w == 250\n    assert txt.ambit().w == 1093\n    assert space.ambit().x == 400\n    txt.align(_r, tx=1)\n    assert space.ambit().x == 863.5\n\n    txt = StSt(\"A B\", Font.MutatorSans(), 1000, space=500)\n    space = txt[1]\n    assert space.glyphName == \"space\"\n    assert space.ambit().w == 500\n    assert txt.ambit().w == 1093+250\n    assert space.ambit().x == 400\n    txt.align(_r, tx=1)\n    assert space.ambit().x == 863.5-(250/2)\n\n    return txt.scale(0.1).align(r)\n\n@test((800, 100))\ndef test_static_fonts(r):\n    _r = Rect(1200, 300)\n    f1 = Font.ColdtypeObviously()\n    co = (StSt(\"CDELOPTY\", f1, 200)\n        .align(_r))\n    \n    assert co.ambit(tx=0).w == pytest.approx(998.8)\n    assert co.ambit(tx=1).w == pytest.approx(1018.8, 1)\n    assert len(co) == 8\n    assert f1.font.fontPath.stem == \"ColdtypeObviously-VF\"\n\n    return co.align(r).scale(0.5)\n\n@test((800, 100))\ndef test_color_font(r):\n    txt = StSt(\"C\", \"PappardelleParty-VF.ttf\", 100, palette=2)\n    assert len(txt) == 1\n    assert len(txt[0]) == 3\n    assert txt[0][0].glyphName == \"C_layer_0\"\n    assert txt[0][-1].glyphName == \"C_layer_2\"\n    assert txt[0][0].f().h == pytest.approx(176.666, 2)\n\n    txt = StSt(\"COLDTYPE\", \"PappardelleParty-VF.ttf\", 100)\n    assert txt[0][0].f().h == pytest.approx(196.318, 2)\n\n    return txt.align(r)\n\n@test((800, 150))\ndef test_narrowing_family(r):\n    _r = Rect(1080, 300)\n    style = Style(\"Nikolai-Bold.otf\", 200, narrower=Style(\"Nikolai-NarrowBold.otf\", 200, narrower=Style(\"Nikolai-CondBold.otf\", 200)))\n\n    out = P()\n\n    txt = StSt(\"Narrowing\", style, fit=_r.w)\n    assert int(txt.ambit().w) == 928\n    out.append(txt.align(r))\n\n    txt = StSt(\"Narrowing\", style, fit=_r.w-200)\n    assert int(txt.ambit().w) == 840\n    out.append(txt.align(r))\n\n    txt = StSt(\"Narrowing\", style, fit=_r.w-400)\n    assert int(txt.ambit().w) == 733\n    out.append(txt.align(r))\n\n    txt = StSt(\"Narrowing\", style, fit=_r.w-600)\n    assert int(txt.ambit().w) == 733\n    out.append(txt.align(r))\n\n    return out.stack(10).scale(0.25).align(r)\n\n@test((800, 150))\ndef test_unstripped_text(r):\n    st1 = StSt(\"HELLO\\n\", Font.MutatorSans(), 100, strip=True)\n    assert len(st1) == len(\"HELLO\")\n    st2 = StSt(\"HELLO\\n\", Font.MutatorSans(), 100)\n    assert len(st2) == 2\n    st3 = st2.collapse().deblank()\n    assert len(st3) == len(st1)\n    st4 = StSt(\"\\n\\nHELLO\\n\", Font.MutatorSans(), 100, strip=True)\n    assert len(st4) == len(\"HELLO\")\n    st5 = StSt(\"\\n\\nHEL\\nL\\nO\\n\", Font.MutatorSans(), 100, strip=True)\n    assert len(st5) == 3\n\n    return st5.scale(0.5).align(r)\n\n@test((800, 10))    \ndef test_zero_font_size(r):\n    s = Style(Font.ColdtypeObviously(), 0)\n    assert s.fontSize == 0\n\n    s = Style(Font.ColdtypeObviously(), -1)\n    assert s.fontSize == 0\n\n    s = Style(Font.ColdtypeObviously(), -1000)\n    assert s.fontSize == 0\n\n    st = StSt(\"COLD\", Font.ColdtypeObviously(), 0)\n    assert len(st) == 4\n    assert st[0].glyphName == \"C\"\n    assert st[-1].glyphName == \"D\"\n\n    return None\n\n@test((800, 120))\ndef test_strict_multiline_stst(r):\n    out = P()\n\n    st = (StSt(\"COLD\", Font.ColdtypeObviously(), 100,\n        multiline=1)\n        .attach(out))\n    \n    assert len(st) == 1\n    assert len(st[0]) == 4\n\n    st = (StSt(\"COLD\\nTYPE\", Font.ColdtypeObviously(), 100,\n        multiline=1).attach(out))\n    \n    assert len(st) == 2\n    assert len(st[1]) == 4\n\n    st = (StSt(\"COLD\\nTYPE\", Font.ColdtypeObviously(), 100,\n        multiline=0).attach(out))\n    \n    assert len(st) == 2\n    assert len(st[1]) == 4\n\n    return (out.distribute().track(10)\n        .map(lambda i,p: p.f(hsl(i*0.2)))\n        .scale(0.5)\n        .align(r))\n    \n@test((800, 80))\ndef test_depth(r):\n    out = P()\n\n    st = (StSt(\"These are some words\", Font.RecursiveMono())).attach(out)\n    assert st.depth() == 1\n\n    st = (StSt(\"These are some words\", Font.RecursiveMono(), multiline=1)).attach(out)\n    assert st.depth() == 2\n\n    st = P([(StSt(\"These are some words\", Font.RecursiveMono(), multiline=1))]).attach(out)\n    assert st.depth() == 3\n\n    st = (StSt(\"These are some words\\nbut now on multiple lines\\nisn't that interesting\", Font.RecursiveMono())).attach(out)\n    assert st.depth() == 2\n\n    return (out\n        .distribute()\n        .track(10)\n        .align(r)\n        .scale(0.5)\n        .map(lambda i,p: p.f(hsl(i*0.2))))\n\n@test((800, 100), solo=1)\ndef test_word_splitting(r):\n    st = (StSt(\"These are some words\", Font.RecursiveMono()))\n\n    assert st.depth() == 1\n    assert st[0].glyphName == 'T'\n    assert len(st) == 20\n\n    st = st.wordPens(consolidate=True)\n\n    assert st.depth() == 1\n    assert st[0].data(\"word\") == 'T/h.italic/e.italic/s.italic/e.italic'\n    \n    assert len(st) == 4\n    \n    st = (StSt(\"These are some words\", Font.RecursiveMono(), multiline=1))\n\n    assert st.depth() == 2\n    assert st[0][0].glyphName == 'T'\n    assert len(st[0]) == 20\n\n    st = st.wordPens(consolidate=True)\n    assert st.depth() == 2\n    assert st[0][0].data(\"word\") == 'T/h.italic/e.italic/s.italic/e.italic'\n    assert len(st[0]) == 4\n\n    st = (StSt(\"These are\\nsome words\", Font.RecursiveMono()))\n\n    assert st.depth() == 2\n    assert st[0][0].glyphName == 'T'\n    assert len(st[0]) == 9\n\n    st = st.wordPens(consolidate=True)\n    assert st.depth() == 2\n    assert st[-1][-1].data(\"word\") == 'w.italic/o/r.italic/d.italic/s.italic'\n    assert len(st[0]) == 2\n\n    return st.align(r)"
  },
  {
    "path": "tests/test_versions.py",
    "content": "from coldtype.test import *\n\n@test((800, 150), rstate=1)\ndef test_versions_sidecar(r, rs):\n    assert rs.renderer.source_reader.config.restart_count == 0\n    assert __VERSION__[\"key\"] == \"test_color\"\n    assert len(__VERSIONS__) == 15 # i.e. number of visual tests in this folder"
  },
  {
    "path": "tests/test_versions_versions.py",
    "content": "from coldtype import *\n\nVERSIONS = {}\nfor file in sorted(__sibling__(\".\").glob(\"*.py\")):\n    if not file.stem.startswith(\"_\"):\n        VERSIONS[file.stem] = dict(file=file)"
  },
  {
    "path": "upload_docs.sh",
    "content": "aws s3 --region us-east-1 sync --cache-control no-cache --exclude \"*\" --include \"*.html\" docs/notebooks/site s3://coldtype.goodhertz.com\naws s3 --region us-east-1 sync docs/notebooks/site s3://coldtype.goodhertz.com"
  }
]